別のXOOPSのテストサイトで、下記のようなエラー表示が出てしまいました。
——————————–
This page cannot be displayed due to an internal error.
If you are the administrator of this site, please visit the Xoops Troubleshooting Page for assistance.
Error [Xoops]: Unable to connect to database in file class/database/databasefactory.php line 34
——————————–
結論から先に書きますが、phpMyAdmin に入るためのパスワードを変更してしまったからでした。
変更前のパスワードに戻したところ、このエラー表示は消えて、無事元のXOOPSのトップ画面が表示されるようになりました。
——————————–
今回のエラー表示を検索エンジンで調べたところ、公式サイトを含めてたくさんのサイトが出てきました。
ということは、このエラー表示に悩まされている人が多いということだと思います。
また、たくさんのサイトは出てきたのですが、解決まで非常に時間がかかってしまいました。
そこで、今回の解決までの道筋を順を追ってご報告しようと思います。
——————————–
【きっかけ】
テストサイトでも、WordPressを使っているのですが、管理者で書き込みができなくなってしまいました。
そこで、MySQLの再起動をしてみたのですが、やはり書き込みはできませんでした。
ならば、phpMyAdminに入って、WordPressの箇所を確認しようとしたのですが、パスワードがわからなくなってしまいました。
そこで、「パスワードを変更」して、新しいパスワードでphpMyAdmin にアクセスしました。
内容をいろいろ確認したあとに、ログアウトしてテストサイトにアクセスしたところ、上のエラー表示がでるようになりました。
——————————–
【解決までに遠回りした理由】
今考えると、パスワードを変更した直後にエラー表示が出たので、エラーの直前の作業=「パスワード変更」を疑うべきでした。
しかし、もともと、WordPressに不具合が出ていましたし、phpMyAdminにはアクセスできましたので、「パスワード変更はうまくいった」、「原因は他にあるはずだ」、と思い込んでしまっていました。
しかも、phpMyAdminにアクセスして、XOOPSのdatabaseを確認していたら、次のようなエラー表示が出ていたのです。
——————————–
エラー
phpMyAdmin の独自機能であるリレーション機能を処理するためのリンクテーブルが有効になっていません。これを解決するには ここ をクリックして原因を発見してください。
↓
サーバー: localhost – データベース: xoops_
PMA Database … OK ではありません。[ ドキュメント ]
リレーション機能 無効
——————————–
——————————–
そうか、やはり、database がうまく動作していないのだ、と思い、検索エンジンで「リレーション機能 無効」を検索したところ、これまた、公式サイトをはじめ、たくさんのサイトが出てきたのです。
ところが、探してもみつからない「config.inc.php」の設定のこととか、いろいろな異なる内容の回答があって、よく理解できませんでした(^_^;
そこで、この点の回答を探すのにまた、時間がかかってしまったというわけです。
——————————–
【解決の糸口】
テストサイトとここのサイトのサーバーは、同じコースですので、試しに、ここのサイトのphpMyAdminの同一個所を見てみました。
なんと、全く同じ内容の「エラー」が出ているではありませんか。
ということは、テストサイトが表示されなくなったのは、別の原因だ、ということになります。
ちなみに、公式サイトに「このメッセージは、出てもまったく問題ないです。」という回答がありました。
http://jp.xoops.org/modules/newbb/viewtopic.php?topic_id=3392&forum=17&post_id=18202
XOOPSのキャッチフレーズに、「約 5 分でインストールできる」、とあります。
共有サーバーをまっさらにするなどの作業がありますので、さすがに5分は無理ですが、かなり短い時間でインストールはできるようになりましたので、いっそのことインストールのやり直しをしてしまおうか、とも思い出しました。
そして、XOOPSのインストールの手順書を見ているときに、「はっ」と気づきました。
XOOPSのインストール作業の途中でいくつか情報を入力する箇所があるのですが、その一つに「データベースバスワード」があったということにです。
「データベースバスワード」は、「mainfile.php」に書き込まれますが、該当個所は、「******」のようにマスクはかかっていません。
そこで、サイト上にある「mainfile.php」が見られたり書き換えられたら大変なことになりますので、まず最初に、「mainfile.php」のパーミッションの変更をするように警告が出るのでした!
——————————–
【解決-まとめ】
早速、FTPでテストサイトにアクセスして、「mainfile.php」をダウンロードして「データベースバスワード」が何だったか確認をしました。
そうでした、「**********」が「データベースバスワード」でした。
そこで、サーバーの管理画面に入って、「mainfile.php」に記載されている「データベースバスワード」に戻しました。
このもともとのパスワードでphpMyAdminにアクセスできることを確認して、テストサイトにアクセスしましたら、無事、エラー表示は消えて、XOOPSのトップ画面が表示されておりました。
ふ~、めでたしめでたし、であります。
おっと、まだ、テストサイトでWordPressの書き込みができない原因を突き止めないといけませんが、まずは、今回の大きなトラブルの原因と対策がわかりましたので、先にご報告させてもらいました。
まだまだ、XOOPSに関しては、パソコン初心者ですねぇ(^_^;
——————————–
テストサイトのWordPressの書き込みは、できるようになっていました。