iku8blog

Webエンジニアのタダのメモ。

laravel+nginx ファイルアップロードできない 500 Internal Server Error の原因

laravel+nginxをcentos8で稼働させており、ファイルアップロード時に「500 Internal Server Error」となった。

ローカル環境でphp artisan serveして、ファイルアップロードは出来る。

原因

nginxを稼働させているユーザを変えており、/var/lib/nginx/tmp/client_bodyの権限がnginxのままだったの原因だった。

/etc/nginx/nginx.confに記述されているuserを変えることで、nginxを稼働させるユーザを切り替えることができる。

ファイルをアップロードすると一旦/var/lib/nginx/tmp/client_bodyにアップロードされるが、ここの権限がnginxのままなのでアプロード時にpermissionエラーがでていた。

/var/lib/nginx/tmp/client_body/0000000007" failed (13: Permission denied)

対策

もはやnginxユーザは使わないので、/var/lib/nginx配下の権限を書き換えた。

sudo chown -R new_user:new_user /var/lib/nginx