以前作った Windows + PHP + mySQL のシステムが Linux 上で動かない問題。結局 PHP のソースを EUC にして,MySQLの文字コードも EUC にしたところ動くようになった。あとは本番環境で動くか,なのだが,そこは YN 氏にお願いするとして,ここではインストールメモだけ残しておく。
PHP + MySQL 環境を RedHat Linux に作成。PHP は既に入っているので MySQL だけ入れればいいかと思ったら php-mysql のバージョンが合わずにうまくいかなかったので apache,PHP,MySQLをソースからインストール。
apache(httpd-2.0.46.tar.gz)インストール
// make ./configure --enable-shared=max --enable-module=most make make install // httpd.conf DirectoryIndex に index.php を追加 AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps // 起動 /usr/local/apache2/bin/apachectl start
mysql(mysql-4.0.13.tar.gz)インストール
// make ./configure --with-charset=ujis --with-extra-charsets=all --with-mysqld-user=mysql --prefix=/usr/local/mysql make make install // 設定 scripts/mysql_install_db chown -R root /usr/local/mysql chown -R mysql /usr/local/mysql/var chgrp -R mysql /usr/local/mysql cp support-files/my-medium.cnf /etc/my.cnf // 起動 /usr/local/mysql/bin/safe_mysqld --user=mysql & // データベース作成 mysqladmin -u root password (パスワード) mysqladmin -u root -p create (データベース名) mysql -u root -p mysql grant all privileges on (データベース名).* to (ユーザ名)@localhost identified by '(パスワード)'; mysql -u (ユーザ名) -p (データベース名)
php(php-4.3.2.tar.gz)インストール
// make ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql
InnoDB: Error: log file .ib_logfile1 is of different size 0 0 bytes InnoDB: than specified in the .cnf file 0 5242880 bytes!
というエラー。これは何度もインストールしてファイルサイズの整合性が失われたせいで,
ib_logfile ibdata
を削除して直った。
PHPからMySQL接続時に
/var/lib/mysql/mysql.sock
に接続できないというエラー。これは MySQL の設定と PHP の設定が合っていないため。今回は PHP 側の設定を直して,DB接続時のサーバを
localhost から localhost:/tmp/mysql.sock
にした。
php コマンドで直接 .php を起動すると
File 'NONEXISTENT/charsets/?.conf' not found (Errcode: 2) Character set '#12' is not a compiled character set and is not specified in the 'NONEXISTENT/charsets/Index' file
というエラーが出てくるのだが,今のところ実行には影響していない模様。ujis.conf がない,という意味のようだが,未解決。