мой PHP-скрипт использует для регистрации нового пользователя с его фотографией.
В Debian все было хорошо, но когда я установил на свой сервер RHEL, начались проблемы.
Директория / tmp / rights - 777, а «upload /» - 777 с chown apache: apache.
ниже приведен фрагмент журнала ошибок httpd:
[Ср, 07 июня, 15: 25: 29.363766 2017] [: ошибка] [pid 22867] [клиент 10.31.242.73:49624] Предупреждение PHP: move_uploaded_file (upload / 1268_org.jpg): не удалось открыть поток: В доступе отказано в /var/www/html/inc/classes/user.inc.php онлайн 76, референт: http://10.31.242.72/index2.php?mnu=10041
[7 июня, среда, 15: 25: 29.363808 2017] [: ошибка] [pid 22867] [клиент 10.31.242.73:49624] Предупреждение PHP: move_uploaded_file (): невозможно переместить '/ tmp / phpmY6k8j' в 'upload / 1268_org.jpg 'в /var/www/html/inc/classes/user.inc.php в строке 76, ссылка: http://10.31.242.72/index2.php?mnu=10041
Я не Понятия не имею, что с этим не так. Может, я что-то пропустил?
Я нашел решение на этом сайте
Это была вина SELinux
. Я только что добавил httpd_sys_rw_content_t в каталог загрузки, набрав: semanage fcontext -a httpd_sys_rw_content_t "/var/www/html/upload(/.*)?"
.
Вы chdir()
выполняли перед перемещением файла? Если вы этого не сделали, файл будет перемещен в папку "upload/1268_org.jpg", но относительно /var/www/html/inc/classes, что приведет к перемещению в /var/www/html. /inc/classes/upload/1268_org.jpg
и определенно не является вашим предполагаемым местоположением.
Решение: chdir перед перемещением или используйте абсолютный путь.