2003/06/29 - PHP問題解決

以前作った 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 がない,という意味のようだが,未解決。

コメントする