PHP предупреждение: неизвестно: не удалось открыть поток
я редактировал Apache httpd.файл conf недавно для работы mod_rewrite. Я не знаю, возникла ли эта проблема из-за этого или нет, но я получаю эту проблему с того дня.
Это то, что я вижу на интерфейсе, когда я запускаю программное обеспечение -
ошибка сервера обнаруженный веб-сайт ошибка при получении http://localhost/prestashop/. Это может быть вниз для обслуживания или настроить неправильно.
там нет конкретного файла, который запускает это. Но я видел, что обычно небольшие программы, состоящие из 4-5 php файлов, работают нормально, но программное обеспечение с большим количеством файлов(например, PrestaShop) нет.
Я проверил логи и вот что я нашел.
[Wed Mar 16 19:33:39 2011] [error] [client ::1] PHP Warning: Unknown: failed to open stream: Permission denied in Unknown on line 0
[Wed Mar 16 19:33:39 2011] [error] [client ::1] PHP Fatal error: Unknown: Failed opening required '/var/www/html/yomig/index.php' (include_path='.:/usr/share/pear:/usr/share/php') in Unknown on line 0
[Wed Mar 16 19:33:39 2011] [error] [client ::1] File does not exist: /var/www/html/favicon.ico
[Wed Mar 16 19:33:41 2011] [error] [client ::1] PHP Warning: Unknown: failed to open stream: Permission denied in Unknown on line 0
[Wed Mar 16 19:33:41 2011] [error] [client ::1] PHP Fatal error: Unknown: Failed opening required '/var/www/html/yomig/index.php' (include_path='.:/usr/share/pear:/usr/share/php') in Unknown on line 0
17 ответов
испытал ту же ошибку, для меня это было вызвано тем, что на моем Mac я изменил DocumentRoot на каталог сайтов пользователей.
чтобы исправить это, я запустил рекурсивную команду, чтобы убедиться, что служба Apache имеет разрешения на чтение.
sudo chmod -R 755 ~/Sites
Если вы используете Fedora, убедитесь, что SELinux не вмешивается.Вы исправляете это с помощью этой команды:
sudo /sbin/restorecon -R /var/www/.
подробнее здесь: linuxquestions.org/questions/linux-server-73/
У меня была такая же ошибка, и моя проблема заключалась в том, что права доступа к файлам были неправильными.
chmod 755 index.php
работал для меня.
я получил эту проблему при вставке неправильного адреса файла в .htaccess
php_value auto_prepend_file "/home/user/wrong/address/config.php"
Если вы используете auto_prepend_file проверить путь к файлу. Он звонил из .htaccess
поэтому PHP не может определить файл ошибки и строку.
в моем сознании истинный путь:
# add READ permission to all directories and files under your DocumentRoot
sudo chmod +r /path/to/DocumentRoot/ -R
# add EXECUTE permission to all DIRECTORIES under your DocumentRoot
find /path/to/DocumentRoot/ -type d -exec chmod +x {} \;
вот некоторые руководства, как это исправить. Перейти к:
cd /var/www
sudo chown www-data:www-data * -R
sudo usermod -a -G www-data username
измените userneme с вашим именем пользователя. Надеюсь, это поможет.
Это случилось со мной сегодня с / home / user / public_html / index.в PHP и решение было сделать chmod o+x /home/user
поскольку этот каталог должен иметь X, поскольку в противном случае сервер apache не может перечислять файлы (т. е. do ls
)
это проблема блокировки SELinux, Linux предотвратил доступ httpd. Вот решение:
# restorecon '/var/www/html/wiki/index.php'
# restorecon -R '/var/www/html/wiki/index.php'
# /sbin/restorecon '/var/www/html/wiki/index.php'
Я только что столкнулся с этой же проблемой, и в моем случае это было вызвано selinux. Его отключение решило проблему. И нет, мне не нужен SELinux на моей рабочей станции, спасибо.
просто цитата для вышеуказанного ответа user1992554 Это отлично сработало для меня в Linux Mint, чтобы избавиться от предупреждения: не удалось открыть stream: Permission denied
cd/var / www
sudo chown www-data: www-data * - R
sudo usermod-a-G www-имя пользователя
в Fedora 25 это оказалось проблемой SE Linux, и уведомление дало это решение, которое сработало для меня.
setsebool-P httpd_read_user_content 1
Это также происходит (и особенно смущает), если вы забыли, что создали символическую ссылку Windows на другой каталог, и что другой каталог не имеет соответствующих разрешений.
Это не прямой ответ на вопрос, но у меня была та же проблема. Я установил VSFTPD на моем сервере Ubuntu VPS. Я мог загружать файлы, но каждый загруженный файл не имел разрешений на выполнение (все файлы имели права "600"). Эти сообщения объясняют, что именно вам нужно сделать, чтобы настроить VSFTPD для установки прав по умолчанию для ваших файлов:
однажды это происходит и со мной. и когда я гуглил этот вопрос, я узнал, что это происходит, когда разрешения на файл ошибочно установлены в 000 (что означает, что никто не может читать, писать или выполнять этот файл). Затем я просто изменил привилегию разрешения файла на чтение и запись, и это сработало для меня.
чтобы изменить настройки разрешений файлов на mac: щелкните правой кнопкой мыши на конкретном файле и нажмите "Получить информацию" в раскрывающемся меню и обратитесь к разделу " общий доступ и разрешения панель и изменение настроек привилегий в Read & Write
Проверьте формат файлов dos и unix. Эта проблема наблюдается на платформах linux, если используется формат файла dos. Используйте команду doc2unix, как показано ниже, а затем повторите попытку dos2unix *.в PHP
Это решение для проблемы ниже
Wed Nov 12 07:50:19 2014] [error] [client IP1] PHP Warning: Unknown: failed to
open stream: Permission denied in Unknown on line 0
[Wed Nov 12 07:50:19 2014] [error] [client IP1] PHP Fatal error: Unknown: Failed
opening required '/var/www/html/index.php' (include_path='.:/usr/share/pear:
/usr/share/php') in Unknown on line 0
в моем случае группа _www
что apache использует отсутствовал в списке доступа к папке, поэтому сначала мне пришлось добавить отсутствующую группу, например:
sudo chown -R _www ~/path-to-folder
изменить _www
для любого пользователя или группы, в которой работает apache.
узнайте пользователя/группу apache, используя apachectl -S
выход огромный, но посмотрите в самом конце что-то вроде:
User: name="_www"
Group: name="_www"