File 'NONEXISTENT/charsets/?.conf' not found (Errcode: 2)

xoopsを移行しようと思い作業を進めていたら表題のエラーがapacheのエラーログに吐かれていました。
ググッたところ、どうもphpをconfigureしたときのmysqlライブラリパスが原因とのこと。http://dreamer.linux-site.net/modules/bwiki/index.php?MySQL%CD%F8%CD%D1%A5%AC%A5%A4%A5%C9


そういえば、mysql入れる前にphp入れてますた。。
ってことで、phpを上書き再インストール。
ところが今度はapacheが起動しなくなってしまった。

  • logs/error_log
    • [warn] pid file /usr/local/apache/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run?
  • apacheを起動できるようにするために

httpd.confのphp関連を軒並みコメントアウトすれば起動できます。けど根本的な解決にはもちろんならず。

    • #LoadModule php4_module libexec/libphp4.so
    • #AddModule mod_php4.c


対処が分からず、MySQL(4.1.11)はインストール済みなので、Apache(1.3.33)とphp(4.3.11)を再インストールしました。
apacheをDSOにして、phpは別途インストール。このときmysqlライブラリパスは指定せずデフォルトでしました。ということでphpは、/usr/local/mysql/include と /usr/local/mysql/lib を参照します(するはず)。mysqlのprefixを変更している場合は変更が必要のようです。


ところが今度はxoopsのデータが化ける(涙。
元データはxoopsのバックアップから取得 => ujis(EUC_JP)
移行元のmysqlは"--with-charset=utf8"でconfigure、
/etc/my.cnf上でそれぞれ"--default-charset=ujis"としていました。
以前は上手く入っていたのに、何でかEUCのバックアップファイルがUTF8でリストアされてしまう。。
SHOW VALIABLESで確認しても下記のようになっているのに。

    • character_set_client | ujis |
    • character_set_connection | ujis |
    • character_set_database | ujis |
    • character_set_results | ujis |
    • character_set_server | ujis |
    • character_set_system | utf8 |


ちなみにmysqlのコマンドは↓

    • mysql -D データベース名(xoops) -u ユーザ名 -p -f < バックアップファイル名


仕方がないのでMySQLもインストールからやり直した。
configure時"--with-charset=ujis"。utf8 => ujis にしちゃいました。
とりあえずxoops(apache1.3 + php4.3.11 + mysql4.1.11)は移行したけど、アカウント情報(user.php)が動かないんだよなぁ〜。ウ〜ン。


まぁ、MySQLの起動・停止、権限周りの勉強になったのでよしとしましょう。するしかない。