◆ 目的
EC2にWEBサーバーとDBサーバーを立てた時に、なかなか表示されず困ったことを今後のためにメモ。
確認手順や表示されない可能性を記述します。
何が問題か分割して原因を探る
・ネットワーク
・サーバー環境
・ミドルウェア(Apache、PHP、Composerインストールもれ、設定ミスなど)
・ソースコード
環境構築完了!でも...ドメインを叩いて想定している画面が表示されない時
##1)ErasticIPをアドレスバーに入れて表示できるかチェック
表示されてたらAppacheの設定はOK
(ドメインで叩くと表示されない場合以下チェック)
・DNSの設定
・Route53の設定
・セキュリティーグループ設定(HTTP 80/HTTPS 443)
ErasticIPで何も表示されてなかったらAppacheに問題があるかも。
・Appacheの設定ミスの可能性 → ②
##2)Appacheの設定チェック
/var/www/sample_site/public/
ここに index.html 中に 「hello」 とか記述しといてちゃんと上記ドキュメントルートを閲覧できてるかチェックする。
↑Appacheの設定チェック&修正 「hello」は表示されるけど...プロジェクトは表示できない
・ミドルウェア(PHP、Composerインストールもれ、設定ミスなど) → 3)
・mysql → ④
・.env → ⑤
・ソースコード → ⑥
↑Appacheの設定チェック&修正 ErasticIPではOK!でも、ドメインではエラー
・DNSの設定
・Route53の設定
どちらでも表示されない
・Appacheエラーログチェック → ⑦
// Appache開くコマンド
sudo vi /etc/httpd/conf.d/custom.conf
例)
Alias /phpMyAdminSample "/var/www/html/tool/phpMyAdmin"
<VirtualHost *:80>
ServerName domein.com
DocumentRoot "/var/www/sample_site/public/"
<Directory /var/www/sample_site/public/>
AllowOverride All
</Directory>
</VirtualHost>
※Appacheを触ったら必ず再起動マスト!!!!!
sudo service httpd restart
sudo systemctl restart php-fpm
##3)ミドルウェア(PHP、Composerインストールもれ、設定ミスなど)
自分の環境に必要な言語やパッケージ管理ファイルがちゃんと入っているかチェック
例)
// PHP
php -v
// composer
comporser
//node.js
node -v
##4)mysql
この辺確認。
インストールできてなかったらそもそもインストール必要
ちゃんと動いてないとパッケージ足りないかな
接続できてなかったらまずは接続問題解決。
// インストールできているか
sudo yum install https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
sudo yum install mysql-community-server -y
mysql -v
// ちゃんと起動しているか
sudo service mysqld start
sudo service mysqld status
// DBに接続できているか
mysql -u root -p
↑ 初期パスワード求められる
【初期パス確認方法】 https://qiita.com/miriwo/items/457d6dbf02864f3bf296
----------- ここから migrate できない時チェック -----------
// DB作ってなかったら作る
create database <DB名>;
// 作成したDBで接続できるか
mysql -u <user名> -p <DB名>
// 認証方式 確認
【MySQL8.0 認証方式を変更する】 https://qiita.com/ucan-lab/items/3ae911b7e13287a5b917
##5).env & 認証方法あってる?
DB_CONNECTION=mysql // ここはmysqlがデフォらしい
DB_HOST=localhost // 確認する※
DB_PORT=3306
DB_DATABASE=<DB名>
DB_USERNAME=<user名>
DB_PASSWORD=<password>
※確認方法
【MySQL8.0 認証方式を変更する】 https://qiita.com/ucan-lab/items/3ae911b7e13287a5b917
↓↓↓↓↓ 変更
##6)ソースコード
storageのlogチェックすればいいと思う。
##7)Appacheエラーログチェック
権限付与してもフォルダに入るのは無理だったのでsudoコマンドでパスで開きに行く
ログチェックして原因を探る。
sudo cat /var/log/httpd/access_log
sudo cat /var/log/httpd/error_log
###8)その他(おまけ1) Please provide a valid cache path
composer install 時にエラーが出た時
# storage_pathで設定している値を確認できるコマンド
# /var/www/<pj>で実行
$ find config/ -type f | xargs grep storage_path | grep framework
config/cache.php: 'path' => storage_path('framework/cache/data'),
config/session.php: 'files' => storage_path('framework/sessions'),
config/view.php: realpath(storage_path('framework/views'))
# 存在していないディレクトリを自分で作成する
$ mkdir -p storage/framework/cache/data/
$ mkdir -p storage/framework/sessions
$ mkdir -p storage/framework/views
【ComposerでPlease provide a valid cache pathとなったときの対応方法】
https://qiita.com/ponsuke0531/items/f0b68546068ac8922665
##9)その他(おまけ2) 権限まわり
** 権限
chmod -R 777 bootstrap/
cd ./storage
chmod -R 777 logs/
chmod 777 app/tmp/
chmod -R 777 framework/