困っていること
- ルートディレクトリ(public_html)に単純なindex.phpとindex.htmlを配置しているが、真っ白なブランクページが表示されてしまう
php
1echo 'Hello, world';
html
1<html> 2 <body> 3 Hello, world 4 </body> 5</html>
- その配下に設置した全てのファイル(robots.txtやjs/app.js)なども、全て404エラーが表示されてしまう
前提条件
sample,comは仮名です。実際は別のドメインを使用しています。
- レンタルサーバー(CentOS6.8)
- sample.com内に既存サイトあり
- sample.comは常時SSL可済み
- ルートにsub.sample.comを作成し、サブドメイン内でアプリをデプロイ
- sub.sample.comに接続するとセキュリティ警告が発生(Chrome)
- Apache
- PHP 7.1.10
- ルートディレクトリはpublic_htmlで間違いない
httpd.conf
1<VirtualHost *:80> 2 ServerAdmin info@sub.sample.com 3 ServerName sub.sample.com 4 DocumentRoot /home/root/sub.sample.com/public_html 5 <Directory /home/root/sub.sample.com/public_html> 6 Options -Indexes 7 AllowOverride All 8 Allow from All 9 </Directory> 10 SetEnvIf Request_URI ".(gif)|(jpg)|(jepg)|(png)|(js)|(css)|(swf)|(flv)|(hta)|(ico)$" nolog 11 ErrorLog /home/admin/htlogs/sub.sample.com-error_log 12 CustomLog /home/admin/htlogs/sub.sample.com-access_log combined env=!nolog 13 LogLevel warn 14 15 RewriteEngine on 16 RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L] 17 18</VirtualHost> 19 20#<VirtualHost *:443> 21# ServerAdmin info@sub.sample.com
試したこと
- composer update
- composer dump-autoload
- php artisan cache:clear
- composer clearcache
- Apache再起動
- public_htmlへ755の権限付与
- storageフォルダとbootstrap/cacheフォルダに775の権限付与
#追記1
404 のエラーが出ているということはサーバにリクエストは届いています。まず、サーバのエラーログを参照してください。それで原因がさぐれるはずです。
アクセスログ
開発中に何度もアクセスしているのですが、一部のログしか残っていないようでした。
log
1XXXXXXXXXX - - [28/Sep/2017:15:07:12 +0900] "GET / HTTP/1.1" 302 213 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36" 2XXXXXXXXXX - - [28/Sep/2017:15:35:20 +0900] "GET / HTTP/1.1" 302 213 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36" 3XXXXXXXXXX - - [28/Sep/2017:17:09:12 +0900] "GET / HTTP/1.1" 302 213 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36"
エラーログ
空っぽでした。404に対してログを吐き出していないようです。
#追記2
index.html を同じディレクトリに 置いて、開いてみたらどうなりますか? 開けないようならディレクトリの設定の問題ですし、開けないようなら コンテンツの種類の問題になるかと思います。
index.phpに加えindex.htmlを配置しましたが、変化はありませんでした。
#追記3
記載を忘れていたのですが、sample.comでSSL対応済みの既存サイトが動作しています。
そこでsub.sample.comのサブドメインを設定し、バーチャルホストで対応していました。
http -> https のリダイレクトをされているようですので、<VirtualHost *:443> の設定も記載していただけないでしょうか?
コメントアウトされていました。現行のsample.comに導入しているSSL証明書が、ワイルドカードに対応していないため*.sample.comで動かないのでしょうか
もしそうであれば、SSL証明書の管理者に対応してもらうしか。
#追記4
原因が判明しました!
RewriteEngine on RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
httpd.confでhttpsリダイレクトされているのにも関わらず、サブドメインに対応したSSL証明書が存在しないせいでした。
なので、httpsリダイレクトを無効化するために当該の箇所をコメントアウトしました。
#RewriteEngine on #RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
するとセキュリティ警告が消え、デプロイしたアプリが正常に表示されるようになりました。CHERRY様、ありがとうございました!
回答2件
あなたの回答
tips
プレビュー