Я знаю, что это распространенная ошибка со многими потоками, но я устал искать и до сих пор не решил ее. Когда я пытаюсь запустить функцию file_put_contents Я получаю следующую ошибку:
Warning: file_put_contents(test.txt): failed to open stream: Permission denied in /var/www/html/nurses/adminWriter.php on line 29
Я уже сделал самый распространенный ответ, измените права доступа медсестры папка и test.txt файл до 777. Это не сработало.
Я сейчас на новой установке последнего сервера CentOS 7.
Я обнаружил, что если я запускаю скрипт php через консоль:
# php /var/www/html/nurses/adminWriter.php
Он работает просто отлично, я получаю ошибку только при запуске через браузер, но мне действительно нужно запустить его таким образом.
С уважением!
chcon -Rv --type=httpd_sys_rw_content_t /dir
Это может помочь, а не выключить selinux.
Хорошо, я нашел проблему: selinux
Вот решение:
http://kb.sp.parallels.com/en/11142
В случае, если страница закрывается:
симптомы
После изменения каталога по умолчанию для хранения содержимого веб-сайта (скажем, на «/ home») вы не сможете получить доступ к содержимому поддоменов и дополнительных веб-сайтов через Интернет.
причина
Эта проблема возникает, если SELinux работает в «правоприменение«mode. В этом режиме каталоги webroot для веб-сайтов и поддоменов внутри них имеют разные разрешения, и вашему веб-серверу не удается получить к ним доступ. Запустите эту команду:
# getenforce
Выход должен быть: Обеспечение
разрешение
запрещать SELinux поддержка: открыть файл / И т.д. / SELinux / конфигурации в любом редакторе и найдите эту строку:
SELINUX=<value>
Измените это на:
SELINUX=disabled
Если вы не можете найти этот файл, откройте файл /boot/grub/grub.conf в любом редакторе и добавьте параметр SELinux = 0 к загрузчику Grub:
title SE-Linux Test System
root (hd0,0)
kernel /boot/vmlinuz-2.4.20-selinux-XXXXXXXXXX ro root=/dev/hda1 nousb selinux=0
#initrd /boot/initrd-2.4.20-selinux-XXXXXXXXXX.img
Перезагрузите сервер, чтобы изменения вступили в силу.
Если вы не хотите перезагружаться, выполните эту команду:
# setenforce 0