とある案件ではまったこと。
スマホからファイルアップロードさせると以下のエラーが。。
(1/1) UnexpectedValueException
RecursiveDirectoryIterator::__construct(/home/xxxx/public_html): failed to open dir: Permission denied
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時間くらいはまりました 😥