Я получаю такую же ошибку «не удалось открыть поток, разрешенное разрешение» при попытке записать файл на сервере с помощью PHP. Я испробовал все в Интернете, чтобы исправить ошибку. Я изменил права собственности на файлы, каталоги и подкаталоги на сервере на «apache», я сделал «chmod 777» во всех файлах, каталогах, поддиректориях, я запустил «restorecon -R», я запустил «chcon unconfined_u: object_r: httpd_user_content_t: s0 "во всех файлах, но единственное, что, казалось бы, работало, это полностью отключить SELinux.
Я, наконец, решил проблему. Проблема заключается в логических параметрах, используемых SELinux. Я выполнил следующую команду, чтобы получить список всех логических элементов, связанных с httpd.
$ getsebool -a | grep httpd
Это дало список около 36 параметров.
Я мучительно пошел и включил все булевы, используя команду setsebool, пока не исчезла ошибка «не удалось открыть поток.
Когда я повернул «на» httpd_unified boolean, ошибка исчезла! Когда я отключил его, ошибка вернулась!
бы случайно быть файл, расположенный на смонтированном каталоге NFS? – SirDarius
Вы также проверяли разрешения каталога, в котором находится файл? –
Работает ли php как пользователь jt'? Если файл, который вы хотите открыть, принадлежит другому пользователю, это тоже может быть проблемой. – methode