久々にクラウドで立てている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
コメント