質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.12%

SSL証明書を設置したらCakePHPで作成したページがHTTP404エラー

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,595

SATURDAY2020

score 9

前提・実現したいこと

Webサーバ上にCakePHPで作成したWebシステムを動かして、SSL証明書を設置した上で正常に動かしたい。

発生している問題・エラーメッセージ

SSL証明書を設置する前は問題無く動いていたシステムが、SSL証明書設置後、HTTP404エラーが発生する。
httpsでもhttpでも同じ現象になる。

試したこと

ドキュメントルートのindex.htmlは正常に表示されて、URL欄の横に鍵マークが表示、証明書の確認ができる。
ドキュメントルート以下のフォルダに設置したhtmlは正常に表示されて、同じく証明書の確認ができる。
ドキュメントルートに設置したphpinfoは表示される。

SSL証明書発行業者にも確認してもらって、SSL証明書が問題無く設置されているとの回答をもらっています。

補足情報(言語/FW/ツール等のバージョンなど)

CakePHPでのシステム開発は外注に依頼しているので、プログラムの中身は詳しく解りません。

CentOS 6.5
Apache 2.4.20 (mod_ssl 2.4.20)
PHP 5.6.4
CakePHP 3.3.5
DB:MySQL

追記:
CakePHPのwebroot/img配下の画像にアクセスしても表示されます。

SSL証明書配置時に設定変更した内容は、
httpd.conf
コメント#外した
LoadModule socache_shmcb_module lib64/httpd/modules/mod_socache_shmcb.so
LoadModule ssl_module lib64/httpd/modules/mod_ssl.so

httpd-ssl.conf
内容変更した(www.abc.jpは例です)
ServerName www.abc.jp:443
SSLCertificateFile "/etc/ssl/crt/www.abc.jp.crt"
SSLCertificateKeyFile "/etc/ssl/crt/www.abc.jp.key"
SSLCertificateChainFile "/etc/ssl/crt/www.abc.jp.ca"

元々変更済みの内容は、
httpd.conf
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride All

追記2:
設定変更後のCakePHPのerror.logの内容

2016-11-22 14:56:13 Error: [Cake\Network\Exception\NotFoundException] Please replace src/Template/Pages/home.ctp with your own version.
Request URL: /
Stack Trace:
#0 /var/www/html/abc/vendor/cakephp/cakephp/src/View/View.php(1014): include()
#1 /var/www/html/abc/vendor/cakephp/cakephp/src/View/View.php(973): Cake\View\View->_evaluate('/var/www/html/n...', Array)
#2 /var/www/html/abc/vendor/cakephp/cakephp/src/View/View.php(597): Cake\View\View->_render('/var/www/html/n...')
#3 /var/www/html/abc/vendor/cakephp/cakephp/src/Controller/Controller.php(617): Cake\View\View->render('home', NULL)
#4 /var/www/html/abc/src/Controller/PagesController.php(57): Cake\Controller\Controller->render('home')
#5 [internal function]: App\Controller\PagesController->display('home')
#6 /var/www/html/abc/vendor/cakephp/cakephp/src/Controller/Controller.php(435): call_user_func_array(Array, Array)
#7 /var/www/html/abc/vendor/cakephp/cakephp/src/Http/ActionDispatcher.php(122): Cake\Controller\Controller->invokeAction()
#8 /var/www/html/abc/vendor/cakephp/cakephp/src/Http/ActionDispatcher.php(96): Cake\Http\ActionDispatcher->_invoke(Object(App\Controller\PagesController))
#9 /var/www/html/abc/vendor/cakephp/cakephp/src/Http/BaseApplication.php(83): Cake\Http\ActionDispatcher->dispatch(Object(Cake\Network\Request), Object(Cake\Network\Response))
#10 /var/www/html/abc/vendor/cakephp/cakephp/src/Http/Runner.php(65): Cake\Http\BaseApplication->__invoke(Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response), Object(Cake\Http\Runner))
#11 /var/www/html/abc/vendor/cakephp/cakephp/src/Routing/Middleware/RoutingMiddleware.php(62): Cake\Http\Runner->__invoke(Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response))
#12 /var/www/html/abc/vendor/cakephp/cakephp/src/Http/Runner.php(65): Cake\Routing\Middleware\RoutingMiddleware->__invoke(Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response), Object(Cake\Http\Runner))
#13 /var/www/html/abc/vendor/cakephp/cakephp/src/Routing/Middleware/AssetMiddleware.php(88): Cake\Http\Runner->__invoke(Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response))
#14 /var/www/html/abc/vendor/cakephp/cakephp/src/Http/Runner.php(65): Cake\Routing\Middleware\AssetMiddleware->__invoke(Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response), Object(Cake\Http\Runner))
#15 /var/www/html/abc/vendor/cakephp/cakephp/src/Error/Middleware/ErrorHandlerMiddleware.php(81): Cake\Http\Runner->__invoke(Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response))
#16 /var/www/html/abc/vendor/cakephp/cakephp/src/Http/Runner.php(65): Cake\Error\Middleware\ErrorHandlerMiddleware->__invoke(Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response), Object(Cake\Http\Runner))
#17 /var/www/html/abc/vendor/cakephp/cakephp/src/Http/Runner.php(51): Cake\Http\Runner->__invoke(Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response))
#18 /var/www/html/abc/vendor/cakephp/cakephp/src/Http/Server.php(92): Cake\Http\Runner->run(Object(Cake\Http\MiddlewareQueue), Object(Zend\Diactoros\ServerRequest), Object(Zend\Diactoros\Response))
#19 /var/www/html/abc/webroot/index.php(37): Cake\Http\Server->run()
#20 /var/www/html/abc/index.php(16): require('/var/www/html/a...')
#21 {main}
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • popobot

    2016/11/23 09:14

    CakephpはSSL証明書の有無で動作が変わったり、特別な設定が必要になったりすることはないと思うので、Apache側の設定の問題ではないかと。Apacheの設定やエラーログなどあれば、掲載したほうが回答がつきやすかもしれませんね。なお、Cakephpのwebroot/img配下の画像等にアクセスするとどうなりますか?

    キャンセル

  • CHERRY

    2016/11/23 11:59

    Web サーバに SSL の証明書の設定を追加した際に、 http に影響が出ることは普通はありませんので、Webサーバーの設定がどこか間違っていると思われます。 Web サーバーの設定を変更した付近を質問に追記していただけないでしょうか? Options や AllowOverride あたりで、.htaccess が無効化されていたりするのかなと思います。

    キャンセル

  • popobot

    2016/11/23 17:10

    なんかCakephpのphpだけうまく動いていない感じですかね... Cakephp配下のlogsにerror.logはありますか? 設定変更後に何か出力していますか?

    キャンセル

回答 2

+1

Please replace src/Template/Pages/home.ctp with your own version.というエラーメッセージは、Cakephp3のデフォルトのトップページhome.ctpを開発(debug)モードではない状態で表示しようとすると発生します。

通常、home.ctpは実際にWebシステムの開発が進めば不要になるものなので、debugモードでない場合は、誤って表示されないように404 Not Foundになるようになっています。

CakePHPでのシステム開発は外注されたようですが、開発元に確認されたらいかがでしょうか...
なお、トップページ以外は見れるのでないかと思います。

※SSL対応でなぜこうなったのかもよくわかりませんが... Cakephp側の問題だと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

check解決した方法

0

一度SSL証明書を外しても404エラーのままになってしまったので、どこか設定が壊れてしまっていたようです。
CakePHPをインストールし直して最新のプログラムを置いたら動いたので、改めてSSL証明書を設置したら問題無く動きました。
原因は分からず仕舞ですが。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.12%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる