【Apache&Laravel】laravelプロジェクト以下のページに接続できなくなったときにやったこと

久々にクラウドで立てているlaravelのページにアクセスすると500エラーときた

少し時間がかかったのでメモしておく

最終的にやったことは以下

1.apacheのエラーログを見てみる

2.フォルダ、ファイルの権限確認

3.apacheの実行ユーザーを見てみる

4.グループのユーザーを確認してみる

5.apache起動グループを変更してみる

6.apache再起動

1.apacheのエラーログを見てみる

500エラーだったのでapacheのエラーログが出ているだろうと見てみた

———————————————–

PHP Fatal error: Uncaught UnexpectedValueException: There is no existing directory at “/docker/www/LaravelProject/storage/logs” and its not buildable: Permission denied in /docker/www/LaravelProject/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:171\nStack trace:\n#0 /docker/www/LaravelProject/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php(97): Monolog\\Handler\\StreamHandler->createDir()\n#1

———————————————–

storage/logsにアクセスする権限がないって書いてあるね

2.フォルダ、ファイルの権限確認

権限を見てみると

[sawaryot@dev381 ~]$ ls -la /docker/www/LaravelProject/storage/logs/
total 3068
drwxrwx— 2 www-data www-data 41 Jul 7 16:19 .
drwxrwx— 5 www-data www-data 43 May 11 21:42 ..
-rwxrwx— 1 www-data www-data 14 May 11 21:42 .gitignore
-rwxrwx— 1 www-data www-data 3131503 Oct 2 21:58 laravel.log

apacheの実行ユーザーはwww-dataだったはずだから合ってるよなー、、、

3.apacheの実行ユーザーを見てみる

[sawaryot@dev381 ~]$ ps auxw | grep httpd
root 10945 0.0 0.3 126344 1852 pts/11 S+ Oct04 0:00 vi /etc/httpd/c onf/httpd.conf
root 12146 0.0 2.8 390744 13740 ? Ss 13:38 0:00 /usr/sbin/http -DFOREGROUND
apache 12147 0.0 3.1 397752 15336 ? S 13:38 0:00 /usr/sbin/http -DFOREGROUND
apache 12148 0.0 3.1 397752 15404 ? S 13:38 0:00 /usr/sbin/http -DFOREGROUND
apache 12149 0.0 2.6 395704 13232 ? S 13:38 0:00 /usr/sbin/http -DFOREGROUND
apache 12150 0.0 1.6 392960 7948 ? S 13:38 0:00 /usr/sbin/http -DFOREGROUND
apache 12151 0.0 2.6 395704 13232 ? S 13:38 0:00 /usr/sbin/http -DFOREGROUND
apache 12152 0.0 1.4 392960 7216 ? S 13:38 0:00 /usr/sbin/http -DFOREGROUND
apache 12153 0.0 2.9 395704 14472 ? S 13:38 0:00 /usr/sbin/http -DFOREGROUND
apache 12154 0.0 2.6 395704 13232 ? S 13:38 0:00 /usr/sbin/http -DFOREGROUND
apache 24775 0.0 1.4 392960 6996 ? S 19:01 0:00 /usr/sbin/http -DFOREGROUND
root 25244 0.0 0.2 110252 992 pts/1 S+ 19:12 0:00 less +F /etc/ht tpd/logs/error_log
sawaryot 25324 0.0 0.1 112648 952 pts/15 R+ 19:13 0:00 grep –color=au to httpd

ユーザーがwww-dataではなくapacheになってるのかな?

設定ファイルの方も見てみる

すると実行ユーザー、グループはapacheになってた

[root@dev381 sawaryot]# vi /etc/httpd/conf/httpd.conf

#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User apache
Group apache

4.グループのユーザーを確認してみる

所属グループのユーザーは以下のような感じ

[root@dev381 sawaryot]# groups www-data
www-data : sawaryot
[root@dev381 sawaryot]# groups apache
apache : apache sawaryot

あれ?www-dataってapacheユーザーと同義じゃないんだっけ?

5.apache起動グループを変更してみる

httpd.confでapache起動グループをwww-dataに変更する

変更後⇒

User apache
#Group apache
Group www-data

6.apache再起動

[root@dev381 sawaryot]# apachectl restart

アクセスしてみると上手く行った

apache起動ユーザーはapacheになってるっぽいなぁ

[sawaryot@dev381 ~]$ ps auxw | grep httpd
root 10945 0.0 0.3 126344 1852 pts/11 S+ Oct04 0:00 vi /etc/httpd/conf/httpd.conf
root 25448 0.0 2.7 390744 13720 ? Ss 19:15 0:00 /usr/sbin/httpd -DFOREGROUND
apache 25449 0.0 1.4 392960 7216 ? S 19:15 0:00 /usr/sbin/httpd -DFOREGROUND
apache 25450 0.0 1.4 392960 7216 ? S 19:15 0:00 /usr/sbin/httpd -DFOREGROUND
apache 25451 0.0 3.0 395596 14732 ? S 19:15 0:00 /usr/sbin/httpd -DFOREGROUND
apache 25452 0.0 2.6 395704 12920 ? S 19:15 0:00 /usr/sbin/httpd -DFOREGROUND
apache 25453 0.0 3.0 397752 15016 ? S 19:15 0:00 /usr/sbin/httpd -DFOREGROUND
apache 25458 0.0 1.6 392960 7944 ? S 19:15 0:00 /usr/sbin/httpd -DFOREGROUND
apache 25490 0.0 1.4 392960 6996 ? S 19:16 0:00 /usr/sbin/httpd -DFOREGROUND
sawaryot 26102 0.0 0.1 112648 956 pts/15 R+ 19:32 0:00 grep –color=auto httpd

よくわかんないけど解決したw

またgitリポジトリからlaravelプロジェクトをクローンしてきたときはこちらこちらのページが役立ちそう

シェアする

  • このエントリーをはてなブックマークに追加

フォローする