[Laravel5.5] UnexpectedValueException RecursiveDirectoryIterator::__construct(/home/xxxx/public_html): failed to open dir: Permission denied

とある案件ではまったこと。

スマホからファイルアップロードさせると以下のエラーが。。

(1/1) UnexpectedValueException
RecursiveDirectoryIterator::__construct(/home/xxxx/public_html): failed to open dir: Permission denied

なんかException吐いとる。

Permission deniedと言っているのでPermissionまわりを追求していき、ユーザーディレクトリにDocumentRootがあるためapacheグループに
ユーザーを追加したり、全体的なPermission周りをどんどん追求していったが変化なし。

デバッグを進めるとエラーの出る画像ファイルと出ないファイルがあることがわかった。
もしやと思い、post_max_sizeやupload_max_filesizeなどphp.iniまわりやhttpd.confまわりを調査。

defaultのpost_max_size 8Mになっており、エラーの出るファイルは8M以上あることが判明。

ここら辺を.htacsessに追記(20Mまでにしてみた):

php_value file_uploads On
php_value upload_max_filesize 200M
php_value post_max_size 200M
php_value memory_limit 300M
php_value max_execution_time 30
php_value max_input_time 30

あと /home/xxxx/public_html のパーミッションを変更

$ sudo chmod 755 /home/xxxx/public_html

これで解決!

ちょっと上記のエラーメッセージでたくさんググりましたが該当なし。。2時間くらいはまりました 😥

シェアする

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

フォローする