自宅サーバでxoopsをインストールしようとして、ウィザードに従って入力していくとデータベースサーバに接続できません
というページが現れる。ここで相当迷った。何故、接続ができないのかという理由が検討もつかなかったので。xoopsにつながらないのなら、普通のphpプログラムからはつながるかどうかというのをテストしてみることにした。testdb.phpとか適当なファイルを作成して、
<?php //データベース接続情報 $dbHost = "localhost"; $dbUser = "xoops"; $dbPass = "xoopspass"; $dbName = "xoops"; $db = mysqli_connect( $dbHost, $dbUser, $dbPass ); mysqli_query($db,"SET NAMES sjis"); mysqli_select_db( $db, $dbName ) or die("データベース" . $dbName . "との接続に失敗しました。"); $query = "SELECT aaa " . " FROM xoops"; $result = mysqli_query( $db, $query ) or die("データの読み込みに失敗しました:n " . mysqli_error( $db ) ); ?>
と書き込んでからブラウザでこのファイルにアクセスする。失敗すればエラーの原因がわかり、成功したらaaaなんていう列は無いと怒られる。それで表示テストをしてみたところ、案の定mysqlへの接続に失敗し、その原因はmysql.socketが見つからないというものだった。私の場合はmysqlをインストールした際にmy.cnfでsocketの場所を変更してmysqlを稼動させていた。しかし、phpの標準ではmysql.socketは/var/run/mysqld/mysql.sockになければならないことになっていた。(環境によっては変わる) この情報はphpinfo()によっても確認することができる。したがってやることはこのmysql.socketの正しい場所をphp.iniへ設定するということになる。
mysql.default_socket =
mysqli.default_socket =
という2箇所がphp.iniに存在するので、そこへ実際のmysql.socketがある場所を設定する。その後apacheを再起動して、ブラウザでphpinfo()を確認する。正しく変更がされていればmysqlへ接続ができるようになる。
その後、xoopsは無事インストールできたのだけれど、問題が発生した。このxoopsというcmsツール、一体何をしたらいいのかわからない。参考書が必要なくらいに難解となっている。高機能掲示板を作りたいだけなのだけれど、これほど覚えることが多いと参ってしまう。javaで自作した方が長期的に見た場合マシかと思ってしまう・・・。