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