Re: 突然消失した "サイト全体の Header Navigation" を復活させるには -仮の解決
█ apache - concrete5.7.5.2 と nginx - concrete5.7.5.2 を同時に起動し操作したときの挙動を調べる。
▋ apache とnginx の設定状況
▋ localhost:80
/Volumes/LaCie/Library/WebServer/Documents/concrete5.7.5.2
Apache/2.4.16 (Unix) - PHP Variables
MySQL データベース名:conc5751
▋ localhost:8888
/Volumes/LaCie/Sites/WebServer/Documents/concrete5.7.5.2
nginx/1.8.0 - PHP Variables
MySQL データベース名:conc5752
█ PHP のセッショントラブルについて研究する。
▋ 問題のセッショントラブルログ
▋ localhost:80 に変更してサイトを開いたときに表示された /sess_ 。
An unexpected error occurred.
SessionHandler::read(): open(/var/tmp//sess_k8gfo1sg408kd99r331j12l7e3, O_RDWR) failed: Permission denied (13)
そこで以下のように修正した。
現行
Owner: jibun(501) - jibun
Group: wheel (0) - System Group
修正
Owner: _www(70) - World Wide Wev Server
Group: wheel (0) - System Group
▋ localhost:8888 を起動すると以下の /sess_ が表示された。
An unexpected error occurred.
SessionHandler::read(): open(/var/tmp//sess_ukibv4q3n5nraedji3gib1ehg3, O_RDWR) failed: Permission denied (13)
そこで以下のように修正した。オーナーの変更が逆になっている。
現行
Owner: _www(70) - World Wide Wev Server
Group: wheel (0) - System Group
修正
Owner: jibun(501) - jibun
Group: wheel (0) - System Group
█ php のセッショントラブルの原因と思われる php の存在とその相違。
▋ apache - php
場所:/usr/bin
作成日:2015年9月17日木曜日 16:07
変更日:2015年9月17日木曜日 16:07
共有とアクセス権
システム: 読み・書き
wheel:........読み出しのみ
everyone: ..読み出しのみ
▋ nginx - php
場所:/usr/local/Cellar/php56/5.6.13_3/bin
作成日:2015年9月22日火曜日 11:07
変更日:2015年9月26日土曜日 20:09
共有とアクセス権
(自分): 読み・書き
admin: .......読み出しのみ
everyone: ..読み出しのみ
█ php.ini が二つ存在し使われていると考えられるので、その比較をすると以下の通り。
▋ apache と nginx の比較
apache - php ..................................................................nginx - php
/private/etc/php.ini ........................................................./usr/local/etc/php/5.6/php.ini
901extension=php_pspell.dll .........................................無し
1007 pdo_mysql.default_socket= /tmp/mysql.sock ......無し
1156 mysql.default_socket = /tmp/mysql.sock .............無し
1215 mysqli.default_socket = /tmp/mysql.sock ............無し
1556 session.hash_function = 0 .....................................session.hash_function = 1
1729 ;mbstring.language = Japanese ............................mbstring.language = neutral
1736 ;mbstring.internal_encoding = ...............................mbstring.internal_encoding = UTF-8
█ セッショントラブルの研究結果
php.ini を操作したり、localhost:80 - apache 、localhost:8888 - nginx をしばらく操作した結果、セッショントラブルが起こらなくなった。
apache - phpinfo() と nginx - phpinfo() を調べてみると、両方の Configuration File が同じになっていることが分かった。
▋ apache - phpinfo()
Server APIApache 2.0 Handler
Virtual Directory Supportdisabled
Configuration File (php.ini) Path/usr/local/etc/php/5.6
Loaded Configuration File/usr/local/etc/php/5.6/php.ini
▋ nginx - phpinfo()
Server APIFPM/FastCGI
Virtual Directory Supportdisabled
Configuration File (php.ini) Path/usr/local/etc/php/5.6
Loaded Configuration File/usr/local/etc/php/5.6/php.ini
仮の解決
サイト全体の Header Navigation が消失する現象、PHP のセッショントラブルが生ずる現象は起きなくなった。
前者は MySQL の複製が原因であり、後者は設定内容の違う PHP 使用が原因と考えられるが、確証は未だない。
多摩勉強会/遠藤
Re: 突然消失した "サイト全体の Header Navigation" を復活させるには -質問の追加
たまたま、上記エラーが自分が環境構築しているサーバでも発生したので、
結果と合わせて、報告します。
自分の場合は、concrete5のインストール途中で、上記メッセージが出ましたが、
原因は、phpがセッション管理情報をOSのファイル上に書き出すのですが、
その書き出し先のディレクトリにphp(自分の場合はphp-fpm)の実行ユーザー(グループ)が、
書き込み権限を持っていない為でした。
phpinfo()
で、セッション管理情報の書き出し先ディレクトリを確認し、該当ディレクトリの所有グループをnginxに変更し、エラー対応しました。
ですので、厳密にはconcrete5の不具合というよりは、phpを実行する為の環境準備ができていなかった事に成ります。