(BaserCMS3.0.1) トップページ、indexページのみ、『コントローラがありません』とエラーが出ます
| cocoa > (BaserCMS3.0.1) トップページ、indexページのみ、『コントローラがありません』とエラーが出ます @ 2014/2/18 1:35 |
|---|
|
お世話になっております。
BaserCMS3.0.1を、無事インストールできました。 しかし、index.phpページだけが、エラーで表示されません。 環境は次の通りです。 coreserver(core miniです。) baserCMS3.0.1 PHP 5.2(インストール時に表示された、現在のPHPバージョン 5.3.27) MySQL 5.1.22-rc PHPセーフモードはoff デバッグモードにしてみたら、次の通りに表示されました。 どこを修正すれば良いでしょうか? お分かりの方がいらっしゃいましたら、教えていただけると大変ありがたいです。 どうぞよろしくお願い致します。 |
| cocoa > Re: (BaserCMS3.0.1) トップページ、indexページのみ、『コントローラがありません』とエラーが出ます @ 2014/2/18 17:45 |
|---|
|
その後、
色々と試しています。 core.php install.php 等に、 を入れてみると。。。 やはり、index.phpページが、index.php/index.php/ となります。 http://nextat.co.jp/staff/archives/42 ページを参考に、 を入れてみると、 CSSが読み込まれなくなります。 バージョンが違うのでNGだったのでしょうか。 (でも、テーマによっては、もともと、CSSが読めないものがあります。) 何故、ホームページだけが読めないのか、よく分かりません。 http://Myサイト/でアクセスすると、 トップページ自体は見られます。 http://Myサイト/index.phpへアクセスすると、 表示されているURLは、http://Myサイト/index.php/ですが、 本文などが表示されるべきところに、 と表示されます。 一度、indexページだけ、削除して、indexというページ名で作り直して保存しましたが、 状況は変わりません。 インストール・セットアップ > coreserverでインストール時にエラーでstep2から進めません の投稿で、最後にコメントを下さった、オージェバングさんのサイトでは、 このようなエラーは出ていないようなのですが、基本的に同じcore-mini(または、coreserver)サーバーでも、 色々と違いがあるのでしょうか? 2系でやってきたことも確認しながら、書き換えてはUPしてみますが、 一向に状況が変わりません。 お分かりになる方がいらっしゃいましたら、 ヒントでも教えていただけると、大変ありがたいです。 どうぞよろしくお願い致します。 |
| n1215 > Re: (BaserCMS3.0.1) トップページ、indexページのみ、『コントローラがありません』とエラーが出ます @ 2014/2/18 18:23 |
|---|
|
cocoa 様
スマートURLをオンにしているのかオフにしているのか (または.htaccessとApp/webroot/.htaccessの状態を) 教えていただけますか? configのApp.baseurlの値だけでは状況が把握しづらいのです。 またphp.iniは編集できる環境でしょうか? cgi.fix_pathinfoの値の修正で なんとかなるのではないかと予想しているのですが。 core serverは契約時期によって設定が違うというような情報もありますので。 ●追記 参考に挙げられているページですが、 そのページではWebサーバとして、一般のレンタルサーバでよく使われるApacheではなくnginxを利用しています。 症状は似ていますが構成が違うので下手に参考にしないほうが良いです。 baserCMSが利用しているCakePHPはCGI関連の環境変数PATH_INFOをURLの解析とルーティングに利用しています。 実はPHPは元々PATH_INFOをCGIの仕様通りに正しく解釈していないため、 PATH_INFOを正しく修正するための設定項目があります。 ApacheとCGI版PHPを利用している場合はこの修正の設定が適用されていて cgi.fix_pathinfo=1 となっているのが一般的かと思います。 デフォルト値が0となっているサーバでは、 値を1に変更するとインストール時の問題が解決することもあります。 (PHPのバージョンによって設定の違うサーバもあるのでやっかいです) ちなみに参考記事でのnginx+PHP-FPM利用時はcgi.fix_pathinfo=0と 真逆の設定が必要になっています。 Twitter: @n_1215 |
| cocoa > Re: (BaserCMS3.0.1) トップページ、indexページのみ、『コントローラがありません』とエラーが出ます @ 2014/2/18 22:11 |
|---|
|
n1215さま
詳細のコメントありがとうございます! スマートURLは、(試してみましたが、やはり上手く行きませんでしたので。。。) OFFです。 php.iniですが、 検索してみたところ、 Baserではありませんが、concrete5をCoreserverへのインストールガイドが、 見つかり、参考にしました。 http://concrete5-japan.org/help/install/hosting/coreserver/ php.iniに、 cgi.fix_pathinfo = 0 を書いて、UPロードして試す。 cgi.fix_pathinfo = 1 を書いて、UPロードして試す。。。 とやってみましたが、エラーになって全く表示されませんでした。 (.htaccessと同様、http://Myドメイン/ に置いて見ました。) 何か、設定の仕方が悪いのでしょうか? |
| n1215 > Re: (BaserCMS3.0.1) トップページ、indexページのみ、『コントローラがありません』とエラーが出ます @ 2014/2/19 0:15 |
|---|
|
cocoa 様
今一度、詳細な環境を確認させて頂いていいでしょうか? 環境 ==================== 1.baserCMSの設置場所 ホームページの公開ディレクトリ(以下はpublic_htmlとでも書きます)の直下 ※public_htmlがhttp://Myドメイン/ のルートに対応するディレクトリ 2..htaccessの設定 ●public_html/.htaccess mod_rewriteの設定なし ●public_html/app/webroot/.htaccess mod_rewriteの設定なし 3.App.baseUrlの設定 ●public_html/app/config/install.php App.baseUrlの設定は$_SERVER['SCRIPT_NAME'] この状態でpublic_html/php.iniにcgi.fix_pathinfoの設定を記述すると画面が全く表示されないということでよろしいでしょうか。 追加で数点確認させてください。 確認事項 ======================== 1.public_html直下においてあるbaserCMSと無関係のファイルの有無 こちらは今までのやりとりに見当たらなかったので教えていただきたいのですが、 index.htmlなどは設置されていないでしょうか? 2.php.iniへの設定の可不可 public_html/php.iniへcgi.fix_pathinfo以外の設定を行うとどうなるでしょうか? この場合も画面が全く表示されない(恐らくインターナルサーバーエラー?)でしょうか? 例えばdisplay_errors = Onなど 参考:http://www.coreserver.jp/help/index.php/phpcgi/ 3.phpinfo baserCMS管理画面の[システム設定] > [環境情報] から閲覧できるphpinfo()の出力情報はどうなっているでしょうか? ・PHPのバージョンと実行方式(PHP 5.3.xx CGIなど) ・(CGIないしFastCGIの項目があれば)cgi.fix_pathinfoの値 ・CakePHPがURLの解析に利用する各環境変数 _SERVER["PATH_INFO"] _SERVER["PHP_SELF"] _SERVER["SCRIPT_NAME"] _SERVER["REQUEST_URI"] _SERVER['HTTP_X_REWRITE_URL'] 4.DirectoryIndexの設定 ApacheのDirecotryIndexの設定はどうなっているかわかりますでしょうか? もしくは、.htaccessに Twitter: @n_1215 |
| cocoa > Re: (BaserCMS3.0.1) トップページ、indexページのみ、『コントローラがありません』とエラーが出ます @ 2014/2/19 22:22 |
|---|
|
n1215さま
遅くなってしまいまして、申し訳ありません。 自分なりに、教えていただいたことは、順番に試したり、調べたりもしています。 とりあえず、 次の通りになります。 ======== 環境 ======== 1.baserCMSの設置場所 public_html/Myドメイン/ になります。 表だっては、http://Myドメイン/ です。 public_html/Myドメイン ・・・今回の(baserCMS 3.0.1)セーフモード Off、MySQL利用 一応、public_html/以下、他に、baserCMS2、OpenPNE2等あります。 public_html/Myドメイン1(baserCMS 2.1.2)セーフモード Off、MySQL利用 public_html/Myドメイン2(baserCMS 2.1.2)セーフモード Off、MySQL利用 public_html/sub.Myドメイン3(OpenPNE v2.14.9)MySQL利用 public_html/sub.Myドメイン4(OpenPNE v2.14.9)MySQL利用 public_html/Myドメイン5(BlognPlus2.5.6)セーフモード On、DB= text版で利用 public_html/Myドメイン6(BlognPlus2.5.4)セーフモード On、DB= text版で利用 public_html/sub.Myドメイン7(Web Diary Professional Ver 4.72)DB= text版で利用 public_html/sub.Myドメイン8(Web Diary Professional Ver 4.72)DB= text版で利用 2..htaccessの設定 ●public_html/Myドメイン/.htaccess public_html/以下には、他のドメインも置いてありますので。。。 mod_rewriteの設定なしです。 ●public_html/Myドメイン/app/webroot/.htaccess mod_rewriteの設定なし ★.htaccessの中身は、全てコメントアウトです。 3.App.baseUrlの設定 ●public_html/Myドメイン/app/config/install.php App.baseUrlの設定は$_SERVER['SCRIPT_NAME'] public_html/Myドメイン/php.iniにcgi.fix_pathinfo を記述すると、エラーになります。 ======== 確認事項 ======== 1. public_html/Myドメイン/ 内に、index.html は置いていません。 ★(ダウンロードした)BaserCMSのソースだけです。 2. public_html/Myドメイン/php.ini へ display_errors = On を記述すると、次のエラーになります。 3. phpinfo baserCMS環境 スマートURL: OFF 設置フォルダ: /virtual/MyID/public_html/マイドメイン/ セーフモード:Off データベース: MySQL baserCMSバージョン: 3.0.1 CakePHPバージョン: 2.4.3 PHP環境 以上です。 現在、このスレッドの最初に上げたエラー内容に沿って、 エラー画面の通り(これ↓です。)記述し、 app/Controller/Index.phpController.php にUPしました。 AppController.php lib/Baser/Controller/AppController.php を、app/Controller/ へコピーしました。 今は、 http://Myドメイン/ または、 http://Myドメイン/index.php へアクセスするとドメイントップページが見られます。 http://Myドメイン/index.php/ だとエラーになります。 (ヘッダー、フッター等は表示されています。 選択しているテーマは、デモページのままなので、 (ホーム以外) 会社案内 サービス 新着情報 お問い合わせ アイコンの使い方 サイトマップ の各ページは、表示されています。 以上です。 とりあえず、 この『ホーム』ページのエラーを無くしたいです。 どうぞよろしくお願い致します。 |
| n1215 > Re: (BaserCMS3.0.1) トップページ、indexページのみ、『コントローラがありません』とエラーが出ます @ 2014/2/20 1:20 |
|---|
|
cocoa 様
確認ありがとうございます。 質問事項が長くなってしまってすみません。 なるほど、ドメインが複数あるのですね。 まず初めに、エラーメッセージには見つからないとありますが、 Index.phpControllerなる奇妙なコントローラは作成すべきではないです。 トップページも固定ページの1つという扱いなので、 baserCMS側で用意されているPagesControllerで処理されるのが正常なはず。 管理画面のphpinfoのページではPATH_INFOその他環境変数は正常のように見えますね。 php.iniで簡単に修正できたら儲けものかと思っていましたが、 どうやらphp.iniの設定も一苦労なサーバのようですし、 横着はやめてもう少し原因を正確に見極める方向で考えます。 ヘッダーやフッターが表示されているなら テーマの/public_html/Myドメイン/app/webroot/theme/nada-icons/Layouts/default.phpを書き換えて (管理画面からでもいじれるかと思います) トップページに3通りのURLでアクセスした時の環境変数の違いを確かめてみましょうか。 の直下に下記コードを突っ込んでみてください。 単に環境変数の値を名前付きで表示するだけのものです。 この状態でページにアクセスすると環境変数の値が最上部に出ます。 参考までに、先ほどローカルの仮想マシンで(公式のVagrant Boxを利用して) baserCMS3.0.1をインストールして試したところ下記のようになりました。 ●http://example.com/ PATH_INFO: PHP_SELF:/index.php REQUEST_URI:/ SCRIPT_NAME:/index.php ●http://example.com/index.php PATH_INFO: PHP_SELF:/index.php REQUEST_URI:/index.php SCRIPT_NAME:/index.php ●http://example.com/index.php/ PATH_INFO:/ PHP_SELF:/index.php/ REQUEST_URI:/index.php/ SCRIPT_NAME:/index.php Twitter: @n_1215 |
| cocoa > Re: (BaserCMS3.0.1) トップページ、indexページのみ、『コントローラがありません』とエラーが出ます @ 2014/2/20 1:56 |
|---|
|
n1215さま
早速、ありがとうございます。 とりあえず、 appc/ontroller/ Index.phpController.php AppController.php は、削除しました。 教えていただいた通りにやってみました。 ●http://Myドメイン/ PATH_INFO: PHP_SELF:/index.php REQUEST_URI:/ SCRIPT_NAME:/index.php ●http://Myドメイン/index.php PATH_INFO: PHP_SELF:/index.php REQUEST_URI:/index.php SCRIPT_NAME:/index.php ●http://Myドメイン/index.php/ PATH_INFO: PHP_SELF:/index.php REQUEST_URI:/index.php/ SCRIPT_NAME:/index.php ●http://Myドメイン/index.php/service PATH_INFO:/service PHP_SELF:/index.php/service REQUEST_URI:/index.php/service SCRIPT_NAME:/index.php 以上の通りになりました。 追記)) ●http://Myドメイン http://Myドメイン/ (admin 編集用のヘッダが見えている) PATH_INFO: PHP_SELF:/index.php REQUEST_URI:/ SCRIPT_NAME:/index.php ●http://Myドメイン/index.php (admin 編集用のヘッダが見えている) PATH_INFO: PHP_SELF:/index.php REQUEST_URI:/index.php SCRIPT_NAME:/index.php ●http://Myドメイン/index.php/ (admin 編集用のヘッダがない) PATH_INFO: PHP_SELF:/index.php REQUEST_URI:/index.php/ SCRIPT_NAME:/index.php よろしくお願い致します。 |
| cocoa > Re: (BaserCMS3.0.1) トップページ、indexページのみ、『コントローラがありません』とエラーが出ます @ 2014/2/20 19:45 |
|---|
|
お世話になります。
その後、 自分でも、思いつくことを全部試してみています。 index.phpページがまともに表示されないのなら、 そのページだけ外して、別の名前で、『ホーム』をクリックしたときに表示できれば、と考えて、 そちらも、試しているのですが、 これも何故か、上手くいかず、表示は一向に変わりません。 他のページは表示されているので(今のところ、保存もできるようなので。。。) 『ホーム』ボタン部分の名前を変えて、 別名のページが表示されれば、何とか使えるのではと考えているのですが、 如何でしょうか? どこをどうやっても、これ以上、前に進まないので、 Ver3は諦めた方が良いのでしょうか? (でも、同じ、core-miniサーバーで、立ち上げている方もいるのに、どうしてなのかが、一向にわかりません。。。) |
| n1215 > Re: (BaserCMS3.0.1) トップページ、indexページのみ、『コントローラがありません』とエラーが出ます @ 2014/2/20 23:38 |
|---|
|
cocoa様
お待たせしました。 やはりhttp://Myドメイン/index.php/ でのアクセス時だけPATH_INFOとPHP_SELFの値がズレてますね。 できればサーバの設定(.htaccessかphp.ini)で解決したかったのですが、 サーバの設定が詳しく分からない以上 アプリケーションのほうで無理やり何とかする方法しか思いつかないです。 とりあえず以下を試してもらえますでしょうか。 ●方針 Network/CakeRequestクラスの_url()メソッド (簡単に書くとスマートURLのオンオフの差異を吸収しつつ CakePHPにどのページがリクエストされたかを判断するためのものです) を修正します。 ●修正するファイル ディレクトリの中を探してみると CakePHPのディレクトリ内 → lib/Cake/Network/CakeRequest.php baserCMSのディレクトリ内 → lib/Baser/Network/CakeRequest.php と2つありますが、CakePHPのデフォルトのものをbaserCMSは上書きして利用しているので実際に使われているのは後者です。 HelperやViewのようにapp/ディレクトリ以下に同じファイルを配置して上書きできると思っていたらどうやら出来ないみたいです。 あらかじめファイルのバックアップを取っておいて(本当は大変よろしくないですが) lib/Baser/Network/CakeRequest.phpを書き換えます。 ●修正内容 baserCMSが上書きしている部分のうち1箇所をCakePHP本来の動作に戻すだけです。 262行目辺りからになります。 この中の4行目のコメントアウトを解除、6行目をコメントアウトします これでいかがでしょうか? 今回はコメントで書かれている"サブディレクトリ設置時"にはあたらないはずなので 戻しても他には問題ないと思います。多分。 Twitter: @n_1215 |
| cocoa > Re: (BaserCMS3.0.1) トップページ、indexページのみ、『コントローラがありません』とエラーが出ます @ 2014/2/21 1:16 |
|---|
|
n1215さま
教えて頂いた通りに、 lib/Baser/Network/CakeRequest.php のバックアップを取ってから、 書き換えました。 結果、きちんと表示されるようになりました! ありがとうございます! 更に、 スマートURLの設定も、再度、行ってみたところ、 これまで上手くいった試しがなかったのに(2系の時も。。) スマートURLも使えるようになりました!! 特に、Ver3系の情報は、まだまだ少なかったため、 検索をかけても、新しい情報が見つかりませんでした。 毎回、色々と考えて下さり、ご回答下さったことに、心より感謝申し上げます。 BaserCMS3.0.1を利用しての、サイト構築は、まだまだこれからですので、 また、問題が生じることも出てくるかもしれませんが、 めげずに、構築していきたいと思います。 本当にありがとうございました(^_^) |
| n1215 > Re: (BaserCMS3.0.1) トップページ、indexページのみ、『コントローラがありません』とエラーが出ます @ 2014/2/21 1:39 |
|---|
|
cocoa 様
インストール・セットアップに投稿されてからもう10日以上……長かったですね。 根気強い作業お疲れ様です。 いろいろと調べたので自分の勉強にもなりました。 2系から3系へのデータ移行もなかなかの難関のようですが、 こちらは公式サイトその他(先ほど調べたらちょうどTwitterにも体験記が……)に詳しい情報があるので ぜひその調子で頑張ってください。 最後に一点だけ。 3.0.1に含まれるバグを17件(?)フィックスした3.0.2が月末あたりにリリース予定のようです。 http://project.e-catchup.jp/projects/basercms/roadmap 今回の対処法はbaserCMS本体のアップデートの際に元に戻る可能性が大いにありますのでご留意ください。 その場合は同じ書換を行っていただければひとまずは動くかとは思います。 Twitter: @n_1215 |
| cocoa > Re: (BaserCMS3.0.1) トップページ、indexページのみ、『コントローラがありません』とエラーが出ます @ 2014/2/21 2:34 |
|---|
|
n1215さま
更に、バグフィックスの情報、ありがとうございます。 気をつけてみます。 また、アップデートの際にも、各ファイルのバックアップなど確認してから、 行いたいと思います。 忘れない間に、覚え書きをメモします! |


