MySQL + Apache + PHP

· FreeBSD

久々のサーバーメンテの忘備メモ。アップデートする時にハマったことや注意点など。
とはいっても、同じ鯖上にメモ残しても、落ちるときは一緒なので意味がないのだけど。

FreeBSD の ports を使う場合は、
MySQL→Apache→PHP の順で入れていくと連携する。

[1] MySQL
/usr/ports/database/mysql55-server/

MySQL-6.0系統はいったん開発中止になってしまったので、現状ではMySQL-5.5.xがよい。
make する前に、Makefile を vi で編集して、文字コードを明示的に、UTF8にすべき。

#.if defined(WITH_CHARSET) && ${WITH_CHARSET} != “”

CONFIGURE_ARGS+=–with-charset=utf8 ←※EUCはujis。 SJISはsjis、UTF8はutf8。

#.endif

#.if defined(WITH_XCHARSET) && ${WITH_XCHARSET} != “”

CONFIGURE_ARGS+=–with-extra-charset=all

#.endif

*設定ファイル
/etc/my.cnf

[mysqld]
character_set_server = utf8   ※default-character-setはサポートされなくなった。起動でひっかかる。

skip-character-set-client-handshake

skip-networking

[mysqldump]

default-character-set = utf8

[mysql]

default-character-set = utf8

*RAM1GB以上あるならば、以下のデフォルト設定を使用するのがよい。
/usr/local/share/mysql/my-huge.cnf

*文字コードの確認

% /usr/local/bin/mysql -u root -p 

mysql> status

Server characterset:   utf8

Db      characterset:   utf8

Client  characterset:   utf8

Conn.  characterset:  utf8

mysql> show variables like ‘char%’;

character_set_client           utf8

character_set_connection   utf8

character_set_database     utf8

character_set_filesystem   binary

character_set_results        utf8

character_set_server         utf8

character_set_system      utf8

*パスワード未設定チェック

mysql> select user,host,password from mysql.user;

root     loalhost         [password]

root    domain.com   [password]

root    127.0.0.1       [password]

user    localhost       [password]

user    %                 [password]

[2] Apache
/usr/ports/www/apache22/

*設定ファイル
/usr/local/etc/apache22/httpd.conf
/usr/local/etc/apache22/extra/

[3] PHP
/usr/ports/lang/php5-extensions/

*make config

[X] GD

[X] ICONV

[X] MBSTRING

[X] MCRYPT

[X] MYSQL

[X] PDO

[X] XML

*設定ファイル
/usr/local/etc/php.ini

user_dir = public_html   ※DocumentRoot以外の、ユーザディレクトリでもPHPの動作を有効に。

[4] PHPMyAdmin
/usr/ports/databases/phpmyadmin/

*設定ファイル
/usr/local/www/phpMyAdmin/config.inc.php

$cfg[‘blowfish_secret’] = ‘任意の文字列; // use here a value of your choice

$i=0;

$i++;

$cfg[‘Servers’][$i][‘auth_type’] = ‘cookie’;

*Webログイン画面では、rootで入らないと特権操作ができない。

[5] Awstats

/usr/ports/www/awstats/

*設定ファイル
/usr/local/www/awstats/cgi-bin/awstats.conf

[6] ImageMagick
/usr/ports/graphics/ImageMagick/

MTで必要とされる画像処理パッケージ。
Portsでのインストールにおける注意点は、「PDFサポートを無効にする」こと。
PDFを有効にすると、依存関係でGhostScript8 の makeでコケる。

*make config

[X] IMAGEMAGICK_16BIT_PIXEL

[X] IMAGEMAGICK_FFTW

[X] IMAGEMAGICK_JPEG

[X] IMAGEMAGICK_JPEG2000

[X] IMAGEMAGICK_LQR

[X] IMAGEMAGICK_PERL

[X] IMAGEMAGICK_PNG

[X] IMAGEMAGICK_TESTS

[ ] IMAGEMAGICK_PDF   ※今回の鬼門はPDF→GhostScript8 だった。

[7] OpenSSH
/usr/ports/security/openssh-portable/

インストール時のオプションで、
 OPENSSH_OVERWRITE_BASE=yes
を指定すると、既存のsshdを上書きし、/usr/local/sbin/sshd ではなく /usr/sbin/sshd として作成される。

設定ファイル一式は、/usr/local/etc/ssh に入る。

*make config

[X] PAM

[X] TCP_WRAPPERS

[X] LIBEDIT

[X] KERBEROS

[X] OVERWRITE_BASE   ※既存のsshdを、新しいもので上書きする。

*設定ファイル
/usr/local/etc/ssh/sshd_config (FreeBSDネイティブの、/etc/ssh/sshd_config は無効。)

HostKey /usr/local/etc/ssh/ssh_host_rsa_key   ※公開鍵の指定

HostKey /usr/local/etc/ssh/ssh_host_dsa_key

*バージョン確認

% ssh -V 

[8] DenyHosts
/usr/ports/security/denyhosts/

*設定ファイル
/usr/local/etc/denyhosts.conf