█ 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" を復活させるには -質問の追加
2015年10月15日 at 13:40
返信遅れてすいません。
サイトをコピーした時に不具合が発生したのであれば、
サイトコピー時の不具合の可能性が大きいかと思っていましたが、
ちょっと気になったのですが、コピー元とコピー先の concrete5 サイトの MySQL データベースを同じものを使われていますか?
それであれば、壊れる原因の一つになります。
Re: 突然消失した "サイト全体の Header Navigation" を復活させるには -質問の追加
2015年11月3日 at 21:46
SessionHandler::read():
たまたま、上記エラーが自分が環境構築しているサーバでも発生したので、
結果と合わせて、報告します。
自分の場合は、concrete5のインストール途中で、上記メッセージが出ましたが、
原因は、phpがセッション管理情報をOSのファイル上に書き出すのですが、
その書き出し先のディレクトリにphp(自分の場合はphp-fpm)の実行ユーザー(グループ)が、
書き込み権限を持っていない為でした。
phpinfo()
で、セッション管理情報の書き出し先ディレクトリを確認し、該当ディレクトリの所有グループをnginxに変更し、エラー対応しました。
ですので、厳密にはconcrete5の不具合というよりは、phpを実行する為の環境準備ができていなかった事に成ります。
Your post has been saved and will be published after approval by the forum moderator.
koji
Re: 突然消失した "サイト全体の Header Navigation" を復活させるには -質問の追加
phpMyAdmin を使ってapache localhost:80 サイトの MySQL データベース名 conc572 の複製を作成する。
phpMyAdminにログインする。
http://localhost/phpmyadmin/
左メニューより、複製対象のデータベース名 conc572 を選択する。
上部メニューより、「操作」を選択する。
Copy database to: を操作する。
操作-1:構造とデータ を選択する。
操作-2:テキストボックスに nginx localhost:8888 サイト用の新しいデータベース名 conc575 を入力する。
操作-3:実行ボタンを押す。
以下の通りダイアログが現れ複製デーダベースが作成された。
「データベース conc572 を conc575 にコピーしました。」
結果
apache 駆動 concrete5.7.5.1 の mysql データベースは conc572 で、
nginx 駆動 concrete5.7.5.2 の mysql データベースは conc575 となり、
(nginx 駆動concrete5.7.5.1 の名称をconcrete5.7.5.2 に変更)
各々別々の mysql データベースはを使うこととなった。
つまり、MySQL データベースを複製して分けただけなのでデータベースの内容は全く同じものです。
問題点
オートナビが消失してしまった。
そのことがトラブルの原因の一つであると考え、目下新規にデータベース(今までのような複製ではなく)を作成し concrete5.7.5.2 をインストール(今までのようなアップデートではなく)したサイトを作成し検討中です。
nginx:8888 サイトとして起動させたところ通常通りの表示で管理画面も操作出来ます。
しかし、localhost:8888 で画像スライダーの写真をアップロード出来ないので、concrete5.7.5.2 を apache 駆動 localhost:80 で開き画像スライダーの写真を4枚アップロードし、4画像スライダーを作成しました。
nginx では管理が apache の様には滑らかにいかないところがあるようです。
更に、nginx で Blog を復元中ですが未だ滞っているところがあり完成していません。
ここまでのところ、「サイト全体の Header Navigation」は健在です。
トラブルの起こっているサイトは放棄するのが賢明(その原因は知りたいのですが)でしょうか。
よろしくお願いいたします。