今日も引き続きXOOPS サイトの作業。

カレンダーモジュール pical の警告を出さないように、timezone の設定を php.ini ファイルに書き加える。(こちら を参照。) するとたちまち問題発生。爆弾 Fatal error で XOOPS_ROOT_PATH の class/database/databasefactory.php 内にあるとおりデータベースにアクセスできないという。今日はこれの処理に半日近くかかった。かたつむり 原因は差し込んだ php.ini 内の mysql のソケットの指定が正しくなかったこと。こんな脱力ブログ で解決策を発見。何とか夕 方5時にして解決。

残り1時間で phpMyAdmin にアクセス制限のための .htaccess を設置。だいたいMacOSX でサーバ稼業のページ の解説通りでよいがいくつか変更点もある。
  1. /etc/appache2/httpd.conf 内の AllowOverride のうち None を All に変えるのは phpMyAdmin のある Library/Webserver/Documents ディレクトリに対するところだけでよい。
  2. 同ページでphpMyAdminがあるディレクトリというのは php ファイルが並ぶ phpMyAdmin フォルダなので要注意。
  3. また同ページでは FTPソフト Fugu を使って ``.''付き(不可視ファイル)にしているが、Fugu も fetch も Snow Leopard に安定対応していないので使えない。実は CotEditor で名前を変えて保存すればそれだけでよい。
なお不可視ファイルを表示するにはこちらのサイト に ある方法を使う。
今日は朝5時に起きて昨日からの XOOPS サイト復旧の続き。

まずは龍司さんのブログ から OhMyGodHelpMe.class.php を取ってきて放り込んでみるとエラーメッセージが表示されるようになった。ニコニコ調べると一番上に d3blog のエラーメッセージがある。d3blog 関連で検索してみると、hodaka さんのこんな指摘 を発見。早速実行してみると和子のページが復旧。これで私のページの方も原因が php にあることに気づく。調べてみると Snow Leopard からは php が ver.5.3.? に上がっている らしい。先の mysql の件もこれが原因? XOOPS Cube フォーラムのこちらのページ に従って modules/legacy/kernel/Legacy_Module.class.php を変更すると完全復旧。

一息ついて朝風呂(11時過ぎだが)を浴びる。

あとはよく見るとカレンダーモジュール pical がワークしない。しかし原因が php と分かってしまえば検索の範囲は一気に狭まる。さっそくエラーメッセージをよく読むと ver.5.3 では使われなくなったコマンド eregi が引っかかっているようだ。そこでこちらのインストラクション に従って eregipregmatch @ @i で置き換える。これでカレンダーも表示されるように。ただしカレンダーの上にたくさんのエラーメッセージが表示される。

それで今度はMarijuana さんのページ に従って、/etc/php.ini (デフォルトでは書き込み権限がないので適宜変更する) を開いて500行前後にある error_reporting 段落 (コメントアウトされている文の塊)の最後にerror_reporting = E_ALL & ~E_DEPRECATEDを付け加える。

最後にエラー表示させる目的で放り込んだ OhMyGodHelpMe.class.php を取り出すのを忘れないように。
今日の内容は元々 Yahoo ブログに書いていたのを諸般の理由でこちらに移したものだ。今後はこちらに書きためていきたい。諸般の事情というのはまあ使い勝手が少し気に入らなかったというわけだ。

自分の Macbook でさんざん試したので満を持したつもりで職場の Mac Pro のシステムを Snow Leopard にアップした。ソフトなどは徐々に整備していくから慌てることもない。と思ったところが Mac Pro に載せている XOOPS Cube Legacy サイトにアクセスできない。fatal error どうのこうのというエラーメッセージが出ていてどうもデータベースが働いていないようだ。

データベースは mysql を使っている。結構以前のものを使っているので新しいシステムに対応していないのかもと思い、早速 こちらのページ を参考にさせてもらいながら mysql-5.1.46-osx10.6-x86_64.dmg をダウンロードしてインストール。

インストーラーパッケージでインストールすると /usr/local 以下に mysql-5.1.46-osx10.6-x86_64 としてインストールされ、以前インストールした mysql-5.0.67-osx10.5-x86 にはこれまで蓄積したデータベースだけが data フォルダとして残る。何も考えずインストールしてもこれまで蓄積したデータベースが失われることはない。 次にこのデータベースを新しい mysql-5.1.46-osx10.6-x86_64 に移すことを考える。

デフォルトでは mysql はユーザーとして mysql と _mysql を用意してくれる。ところが Mac の root user は私なので、何も考えずにドラッグドロップで data フォルダをコピーすると所有者が私になってしまい、mysql はデータベースの中身を見ることができない。面倒だがコマンドライン cp -p -R でコピーした。(-p は所有者を変えない、-R はフォルダの中身まで適用、というオプションらしい。) これで XOOPS root path の mainfile.php の XOOPS_DB_USER と XOOPS_DB_PATH を新しいものに変更すると何とか XOOPS Cube Legacy サイトが表示できた。

ところが帰宅してから管理画面に行こうとすると、画面が真っ白になってしまう。
(続く)