先日、手元にあるphpMyAdmin でSQL を整形してもらおうと思い、久しぶりにVMware Server2 上で常に待っているBlueOnyx 上のサイトの1つにアクセスした。
BlueOnyx には管理画面からphpMyAdmin にアクセスできるのだが、どうも調子が悪い状態が続いていて、インストールしてから一度もお目見えしたことがない。仕方なく、個別のサイトに必要な時にFTP 転送している。で、何処にインストールしているのかすっかり忘れているので適当なサイトにアクセスし、/phpMyAdmin と入力したところ、エラーが表示された。
スポンサードリンク
phpMyAdmin - Error Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly. : http://www.testsc2.com/phpMyAdmin/
BlueOnyx でのPHP セッションに関する問題はいくつかあり、たしか解決のために一部変更していた気がする。BlueOnyx は悪い意味で非常に親切だから、変更を亡き者にしてくれるなど徹底した管理体制を持っている。これがServersman@VPS でも顕著に現れるのだが。
幾つか試したところ、以下の記述を削除したらphpMyAdmin にアクセスできた。
/tmp/:/var/lib/php/session/:/home/.sites/39/site9/
しかしあまり適切な状態とは思えなかったので、そのサイトにアクセスしてみたところ、エラーが表示されている。このサイトはSoyCMS2 で構築されているようだ。
Warning: session_start(): open(/var/lib/php/session/sess_ea24isscgqt93a1hr38kmf9jn5, O_RDWR) failed: Permission denied (13) in /home/.sites/39/site9/web/sc2t3/soy/lib/soy2_build.php on line 76 : http://www.testsc2.com/sc2t3/admin/login
リロードするとセッション番号が変わっている。こういう場合、ディレクトリにデータが保存できていないことが多い。
Warning: session_start(): open(/var/lib/php/session/sess_d4g6daestejpc5ip4ameghpip3, O_RDWR) failed: Permission denied (13) in /home/.sites/39/site9/web/sc2t3/soy/lib/soy2_build.php on line 76 : http://www.testsc2.com/sc2t3/admin/login
PHP がバージョンアップされたときに “/var/lib/php/session” のパーミッションが 775 (drwxrwx—) に変更されたような感じで、それにより、セッションを利用する PHP ページを表示しようとしたときに、そのディレクトリーにセッション情報を書き込むことができなくなり、エラーが発生していた様子です。(中略)ただ、おそ らくは PHP をアップデートしたときに設定される権限の方が安全のように思うので、可能であれば Apache での実行権限を調整するなど、何らかの方法で、PHP セッション情報を保存するためのディレクトリーに 775 権限でも書き込めるように調整するのが良いかもしれません。(「EZ-NET: PHP のセッション処理でエラーになる」より引用)
仕方なくBlueOnyx にSSH でアクセスして状態を確かめる。
[root@localhost ~]# ls /var/lib/php/session/ -lha
total 92K
drwxrwx---. 2 root apache 4.0K Jan 1 07:53 .
drwxr-xr-x. 3 root root 4.0K Nov 3 13:23 ..
-rw------- 1 apache apache 107 Jan 1 07:53 sess_4f92a04c9bcd07458d414b0dd3a7fa4b
-rw------- 1 testsc2 site9 1.9K Oct 26 11:41 sess_6tnqjt42bra4osmabp9l3o3l92
-rw------- 1 apache apache 18K Oct 8 01:32 sess_8cc1f571fdc835e4406c6fd0033c654ced07a2d6
-rw------- 1 apache apache 107 Oct 5 12:16 sess_8e2bcfb8acb4715a53c2b3d1b146ca12
-rw------- 1 testbc site10 578 Oct 5 14:54 sess_aa4j3oftssgtbvlp5v7j5mesv0
-rw------- 1 apache apache 18K Oct 5 12:16 sess_b5a051b550ba8743925a94918b3a77138f5c097f
-rw------- 1 apache apache 18K Jan 1 07:53 sess_c6ff2cc70d2746762907596c3a20929a31e78c4d
-rw------- 1 apache apache 107 Oct 8 01:32 sess_d7bac8f76a28a58adeb5da09b37becda
-rw------- 1 testbc site10 348 Oct 15 01:44 sess_fkqgd2srcrsv85vmkuvhjr81g7
この状態はエラーになる典型パターンだった気がする。
[root@localhost ~]# ls /var/lib/php/ -lha
total 12K
drwxr-xr-x. 3 root root 4.0K Nov 3 13:23 .
drwxr-xr-x. 32 root root 4.0K Oct 21 16:33 ..
drwxrwx---. 2 root apache 4.0K Jan 1 07:53 session
上位ディレクトリを確認すると、確かに参考文献の言うとおりパーミッションが変わっている。
参考文献の言うとおりにコマンドを実行する。
[root@localhost ~]# chmod 777 /var/lib/php/session/
問題は解決し、サイトやphpMyAdmin にアクセス・ログインできたが、参考文献の言うとおり正しい解決策とは言えないかもしれない。
コメント