突然消失した "サイト全体の Header Navigation" を復活させるには -質問の追加

2015年10月9日 at 16:39

質問の追加 :
編集モードで "空の サイト全体の Header Navigation エリア" にブロック - ナビゲーション”オートナビ”を追加するにはどうすれば良いでしょうか。

追加質問の背景
localhost/concrete5.7.5.1/index.php (concrete5.7.5.1 使用)
localhost:8888/index.php (concrete5.7.5.2 使用)
編集モードで "空の サイト全体の Header Navigation エリア" にはブロックを追加することは出来ないが、”空の列(縦)の1〜4 エリア”にはブロック - ナビゲーション”オートナビ”を追加することが容易に出来ます。
以下に添付
以下に・サイトの修正  -追加


最初の質問 :
突然、サイト全体の Header Navigation が消失しました。
復活させる方法がわかりません。
”コンテンツを追加”からナビゲーション - オートナビ を "空の サイト全体の Header Navigation エリア" にドロップすると、次のようなアラートが出て先に進みません。

オートナビを追加
call_user_func_array() expects parameter 1 to be a valid callback, class 'Concrete\Core\Permission\Key\AddBlockBlockTypeKey' does not have a method 'canAddBlock'

method 'canAddBlock' を持つにはどのようにすればよいでしょうか。
ヒントがあればお教えください。

タグ:

Re: 突然消失した "サイト全体の Header Navigation" を復活させるには

2015年10月9日 at 16:43
どうもです。

その現象が起こる前に何かされていると思います。

・使用バージョン
・使っているテーマ
・使っているアドオン

と、正常に操作ができていたと思われるステップからエラーが怒るまでに行ったサイトの修正などを教えてもらえると助かります。
 

Re: 突然消失した "サイト全体の Header Navigation" を復活させるには

2015年10月9日 at 22:43
・使用バージョン concrete5.7.5.1 , concrete5.7.5.2
・使っているテーマ Elemental Elemental
・使っているアドオン なし       なし

・サイトの修正  -追加

追加事項 -はじめ
MySQL データを複製する前の元データを concrete5.7.5.2 を使って操作していました。
concrete5.7.5.2 についての資料を見ました。
http://translate.google.co.jp/translate?hl=ja&sl=en&u=https://www.concrete5.org/community/forums/5-7-discussion/can-not-add-any-block-to-globalarea/&prev=s...
追加事項 -おわり

apache localhost:80 サイトを作成した後、同じ concrete5.7.5.1 を使った nginx localhost:8888 サイトを TCP/IP 通信で作成、両者でブログを書込み表示が出来た。
nginx localhost:8888 を socket 通信のサイトに変更し、両方を同時に起動し相互に操っているうち色々なトラブルに遭う。
そこで apache localhost:80 サイトをコピーして nginx localhost:8888 サイトを独立させたが同じ MySQL データを使っているのでトラブルは止まなかった。
この nginx localhost:8888 サイトの concrete5.7.5.1 を concrete5.7.5.2 にしたが一部のトラブル以外は未解決であった。
そこで更に、apache localhost:80 サイトの MySQL データを複製して nginx localhost:8888 サイトで分離して使うことにした。
すると、サイト全体の Header Navigation が消失する現象が現れた。しかし MySQL データを複製する前に既に生じていたのかもしれない。
apache, nginx 両サイトともログイン出来るので管理画面でシステム設定などをかなりいじっているが、ここに違和感は生じていない。
http://localhost:80/index.php/blog とすると blog が表示される。
http://localhost:8888/index.php/blog とすると blog が表示される。
時々次のようなことが起こっている。
http://localhost/concrete5.7.5.1/index.php
An unexpected error occurred.
SessionHandler::read(): open(/var/tmp//sess_fepp0r323qsgpj6b986bmi8q97, O_RDWR) failed: Permission denied (13)
username(501) - username 現行
_www(70) - World Wide Wev Server に修正する。
再読み込みは効くようになったがナビゲーションが表示されていない。
概略以上の通りです。
どうぞよろしくお願いいたします。
 

Re: 突然消失した "サイト全体の Header Navigation" を復活させるには -質問の追加

2015年10月11日 at 21:45
kojiです。

今日10月11日22時50分突然 localhost:8888 に下記の通り(添付)のアラートが表示されました。
なお、localhost/concrete5.7.5.1/index.php の方は今まで通り開けています。
どうなっているのか見当がつきません。

またのお越しをお待ちしております。
このサイトは現在メンテナンス中です。
This site is currenly down for maintenance.

どなたか教えていただければ幸いです。
 

Re: 突然消失した "サイト全体の Header Navigation" を復活させるには -質問の追加

2015年10月15日 at 13:40
返信遅れてすいません。

サイトをコピーした時に不具合が発生したのであれば、
サイトコピー時の不具合の可能性が大きいかと思っていましたが、

ちょっと気になったのですが、コピー元とコピー先の concrete5 サイトの MySQL データベースを同じものを使われていますか?

それであれば、壊れる原因の一つになります。
 

Re: 突然消失した "サイト全体の Header Navigation" を復活させるには -質問の追加

2015年10月15日 at 22:06
お尋ねの、コピー元とコピー先の concrete5 サイトの MySQL データベースを同じものを使われていますか? については以下の通りです。

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」は健在です。
トラブルの起こっているサイトは放棄するのが賢明(その原因は知りたいのですが)でしょうか。

よろしくお願いいたします。
 

Re: 突然消失した "サイト全体の Header Navigation" を復活させるには -仮の解決

2015年10月19日 at 13:17
█ 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年11月3日 at 21:46
SessionHandler::read():


たまたま、上記エラーが自分が環境構築しているサーバでも発生したので、
結果と合わせて、報告します。

自分の場合は、concrete5のインストール途中で、上記メッセージが出ましたが、
原因は、phpがセッション管理情報をOSのファイル上に書き出すのですが、
その書き出し先のディレクトリにphp(自分の場合はphp-fpm)の実行ユーザー(グループ)が、
書き込み権限を持っていない為でした。

phpinfo()
で、セッション管理情報の書き出し先ディレクトリを確認し、該当ディレクトリの所有グループをnginxに変更し、エラー対応しました。

ですので、厳密にはconcrete5の不具合というよりは、phpを実行する為の環境準備ができていなかった事に成ります。