インストール後、管理ページ等が404エラーになって表示されない

今回初めてBaserCMSを導入を試みています。

最新ファイルを「Ver4.3.0」をダウンロード後、サーバーにアップしインストールまでは問題なく進みます。
その後動作テストも問題いありません。
動作テストはChrome、FireFoxの両方で行いました。

問題が出るのはインストールしてから数時間から半日が経過してからです。
「baserCMSインストール完了」メールに書かれている管理アドレスにアクセスすると404接続エラーが表示され、
ほかのコンテンツページもindexページ以外は全て「404 NOT FOUND 見つかりませんでした」、となります。
既に二度、インストールを最初からやり直していますが二度とも同じ状況になっています。
インストール後の動作確認以降全く操作していない状態で突然こういった状態になるのでどこにエラーの原因あるのかわからず困っています。
解決策をアドバイスいただけないでしょうか、よろしくお願い致します。

■サーバー環境(KAGOYAマネージド専用サーバー)
PHP:7.1.24
Apache:2.4.33
MySQL:5.6.36
インストールディレクトリ:ルート/basercms

/basercms/app/Config/install.php の

Configure::write('debug', 0);

Configure::write('debug', 2);
に変更して再度アクセスしていただけますでしょうか?
エラー等表示されれば共有いただけると幸いです。

お返事ありがとうございます。

/basercms/app/Config/install.phpの
Configure::write(‘debug’, 2);
に、変更した結果です。

<管理画面>
変わらず404接続エラーです。

インストール完了時に送られてくるメールに記述されているログイン情報の
管理画面アドレスを利用していますがこのアドレスが間違っているのでは
ないでしょか。
「/basercms」にファイルを格納しているので

(1)https://www.xxxx.xx.jp/admin/users/login

ではなく

(2)https://www.xxxx.xx.jp/basercms/admin/users/login

に、なるのではないかと思います。
但し、現状で「basercms/」を加えた(2)のアドレスでアクセスすると
リダイレクトを繰り返し
http://www.xxxx.xx.jp/の後に「admin/users/ログインID/」が永遠と
繰り返された下記のようなアドレスが表示される状態になります。
https://www.xxxx.xx.jp/basercms/admin/users/ログインID/admin/users/ログインID/admin/users/ログインID…

<コンテンツページ>
https://www.xxxx.xx.jp/basercms/
は、デフォルトのサンプルページが表示されます。
そこから別のページに移動した場合に下記のようなエラーが表示されます。

PagesController にメソッドがありません
エラー: アクション me_admin が、コントローラ PagesController に定義されていません

エラー: PagesController::me_admin() を app/Controller/PagesController.php に作成してください。

<?php class PagesController extends AppController {

public function me_admin() {

}

}


注意: このエラーメッセージをカスタマイズしたい場合は、 app/View/Errors/missing_action.ctp を作成してください

Stack Trace
CORE/Cake/Routing/Dispatcher.php line 193 → Controller->invokeAction(CakeRequest)
CORE/Cake/Routing/Dispatcher.php line 167 → Dispatcher->_invoke(PagesController, CakeRequest)
ROOT/index.php line 123 → Dispatcher->dispatch(CakeRequest, CakeResponse)

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

サブディレクトリにbaserCMS配置ということで、
こちらのページは参考になりますでしょうか?
http://wiki.basercms.net/サブディレクトリに設置したい

もしくは、/basecms フォルダ下のファイルをルートディレクトリ直下に配置するのもいいかと思います。

お返事ありがとうございます。

アドバイスいただいた方法を試してみましたが解決には至りませんでした。

■(baserCMSの設置フォルダ)/.htaccessの変更

RewriteEngine on
RewriteBase /sub_directory
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]

上記のように変更したところ
コンテンツページは

403接続エラー
Forbidden

と、接続エラーが表示されます。

管理画面は、
https://サイトアドレス/basercms/admin/users/login
https://サイトアドレス/admin/users/login
ともに、

404接続エラー
FILE_NOT_FOUND

と、接続エラーが表示されます。

また、元からある「.htaccess」に修正を加えたものでもエラーは出ます。

<修正したもの>
Allow from all
RewriteEngine on
RewriteBase /basercms
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.) app/webroot/$1 [L]
RewriteRule ^(.
)$ index.php [QSA,L]

コンテンツサイト

403接続エラー
Forbidden

管理画面
https://サイトアドレス/basercms/admin/users/loginの場合

404接続エラー
FILE_NOT_FOUND

https://サイトアドレス/admin/users/loginの場合

このサイトにアクセスできませんサイトアドレスの
サーバーの IP アドレスが 見つかりませんでした。
サイトドメイン admin users login を Google で検索してください
ERR_NAME_NOT_RESOLVED

■(baserCMSの設置フォルダ)/app/webroot/.htaccessについて
/appに「webroot」フォルダが存在しませんでしたので「.htaccess」と共に
手動で作成しました。
.htaccessにはページに記述されていた通り

Allow from all
RewriteEngine on
RewriteBase /sub_directory/app/webroot
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]

を、記述しました。
この.htaccessを設置しても特に変化はありませんでした。

「インストール完了後に初期状態に戻したい場合」に従って初期化も試みてみましたが

このサイトにアクセスできませんサイトアドレス の
サーバーのIP アドレスが見つかりませんでした。
サイトドメイン basercms index php を Google で検索してください
ERR_NAME_NOT_RESOLVED

と、エラーが出て実行できませんでした。
実行アドレス:http://サイトアドレス/basercms/index.php/index.php/installations/reset

ルートに設置し直すというのも手ではあると思うのですが古いコンテンツのフォルダやファイルが
あるのでbaserCMSはきちんとフォルダにまとめておきたいのです。

アドバイス、よろしくお願いします。

こんにちは。
今回は設置しているディレクトリが/basercmsとのことですので、
.htaccessに記載すべきは

Allow from all
RewriteEngine on
RewriteBase /basercms
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]

になるかと思います。/sub_directoryになっていませんでしょうか?
こちらでもう一度試していただけないでしょうか。

ご回答ありがとうございます

iwamotoさん、すみません。
RewriteBaseの部分ですが私の記述ミスです。
ページ内のものをそのままコピペして返信しまったので/sub_diectoryと
したままになっていました。
実際には/basercmsとなっています。

その上で/basercms直下の.htaccessを

と、しましたが

「投稿3」と同じ結果になりました。

お手数お掛けしますが引き続きアドバイスよろしくお願い致します。

1 Like

bitさん
ご検証ありがとうございます。
こちらの方で最新版のbasercmsを私のローカル環境にてディレクトリ/basercmsにinstallし、再現を試みましたが、半日ほど経過してもコンテンツには正常にアクセスできました。
.htaccessについてはデフォルトのものをそのまま使用しています。

Allow from all
RewriteEngine on
#RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]

また、ダウンロード版につきましてはapp/webrootディレクトリが存在しませんので、app/webrootの指定は不要です。

インストール完了時に送られてくるメールに記述されているログイン情報の
管理画面アドレスを利用していますがこのアドレスが間違っているのでは
ないでしょか。
「/basercms」にファイルを格納しているので
(1) https://www.xxxx.xx.jp/admin/users/login
ではなく
(2) https://www.xxxx.xx.jp/basercms/admin/users/login
に、なるのではないかと思います。

に関してはおっしゃる通りで、http://***.localhost/admin/user/loginが表示されていました。
こちらについてはバグですので、basercmsのgithubにissueを送らせていただきます。

1 Like

また、再現しませんでしたので確認ですが、app/Config/install.phpConfigure::write('BcEnv.siteUrl', は正常に設定されているでしょうか?(例えば、httpsになっていない等)
ご確認よろしくお願いします。

1 Like

インストール完了時に送られてくるメールに記述されているログイン情報の
管理画面アドレスを利用していますがこのアドレスが間違っているのでは
ないでしょか。
「/basercms」にファイルを格納しているので
(1) https://www.xxxx.xx.jp/admin/users/login
ではなく
(2) https://www.xxxx.xx.jp/basercms/admin/users/login
に、なるのではないかと思います。

に関して、basercmsのコアにプルリクエストを投げています!
次回バージョンより修正が反映されるかと思います。

1 Like

お返事ありがとうございます。

iwamotoさん、完了メールで送られてくる管理画面アドレスの件ありがとうございます。

Configure::write('BcEnv.siteUrl'ですが
'https://サイトアドレス/basercms/'となっています。

ちなみにConfigure::write('debug', 2);として、運用しております。

お手数お掛けしますがよろしくお願い致します。

@bit さん
再現させようとした環境で二日ほど経過したのですが正常に動作しております。
もう一度このトピックを見直してみたところ、.htaccessを

baserCMSの設置フォルダ)/.htaccessの変更
RewriteEngine on
RewriteBase /sub_directory
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
上記のように変更したところ

と変更されているようですが、実際にはダウンロード版にはwebrootディレクトリは存在せず、デフォルトのまま

Allow from all
RewriteEngine on
#RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]

http://localhost/basercmsにて僕の環境では動いています。
もしデフォルトで動かないようであれば
#RewriteBase /の部分を
RewriteBase /basercmsに変更されてみてください。
もし他にカスタマイズ等されておらず、動かない状態が続くようであればサーバーの設定も確認する必要があるかと思います。
よろしくお願いします。

1 Like

お返事遅くなり申し訳ありません。
仕事上のパートナーさんに複数のサーバーにbaserCMSをインストールされた方が
いらっしゃったのでその方に見ていただいたところ、
/basercms/app/Config/install.phpの

7: Configure::write(‘BcEnv.siteUrl’, ‘https://サイトアドレス/basercms/’);
8: Configure::write(‘BcEnv.sslUrl’, ‘’);

10:Configure::write(‘BcApp.adminSsl’, false);

が、おかしいということで

7: Configure::write(‘BcEnv.siteUrl’, ‘http://サイトアドレス/basercms/’);
8: Configure::write(‘BcEnv.sslUrl’, ‘https://サイトアドレス/basercms/’);

10: Configure::write(‘BcApp.adminSsl’, true);

に修正して頂きました。
これによって正常に設定画面にログインできるようになりページの表示も出来るようになりました。

色々といじってしまったのでフォルダ名を変えてファイルを再アップロードしデータベース名も別のものにしてインストールを行ったのですが、理由はわかりませんが今度はインストール後、時間をおいても全く問題はおきず正常に動作しています。
アップロードしたファイルもエラーを起こしていたファイルと全く同じものです。
サイト全体の.htaccessやサーバー自体の設定は全くいじっていないので何故全く同じ手順でインストールを行っているのにエラーを起こさなくなったのかはわかりません。
エラーにならなくなったのは上記の修正をしていただいた後からです。
上記の修正はあくまで/basercms内にだけ作用するものだと思いますのでこの作業が影響したものとは思えませんが起点になっているのは確かです。
修正作業前は何度もファイル&データベースを削除してはゼロからインストールを行ってもエラーになっていたのでこの場にアドバイスを求めたのですが今はなぜエラーになっていたのか不思議なくらい問題なく動いています。

とりあえずは問題なく動くようになりましたがエラーになった原因などが全く分かっていませんのでどこかしらに不安定要素があるのかも知れません。

不安要素は残っていますが動くようになりましたのでこのまま使ってみようと思います。
今回アドバイスいただいた方々ありがとうございました。

2 Likes

解決して安心しました!
install.phpでしたか。
また、不明点あればフォーラム活用されてください!

一点質問し忘れていました。

今回修正してもらった下記の部分、

7: Configure::write(‘BcEnv.siteUrl’, ‘https://サイトアドレス/basercms/ ’);
8: Configure::write(‘BcEnv.sslUrl’, ‘’);

10:Configure::write(‘BcApp.adminSsl’, false);

が、おかしいということで

7: Configure::write(‘BcEnv.siteUrl’, ‘http://サイトアドレス/basercms/’);
8: Configure::write(‘BcEnv.sslUrl’, ‘https://サイトアドレス/basercms/ ’);

10: Configure::write(‘BcApp.adminSsl’, true);

SSLに関連する部分だと思いますがインストール時にはSSLが有効に
なっていることを認識できていないということなのでしょうか?

それともSSLが有効になっているかどうかは特に動作に問題がなく
今回こちらが使っていたサーバーでたまたまSSLの設定の部分が
うまく動作せず修正をしなければならなかっただけなのでしょうか?

この部分がどうも気になるのでお分かりになられる方、
ご回答いただけないでしょうか。
よろしくお願い致します。