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
1001   17  

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. Его отключение решило проблему. И нет, мне не нужен селинукс на моей рабочей станции, спасибо.

как раз цитата для вышеуказанного ответа user1992554 Этот отлично работал для меня в Linux Mint, чтобы избавиться от предупреждения: не удалось открыть поток: разрешение отказано

cd / var / www
sudo chown www-data: www-data * - R
sudo usermod-A-G www-data username

в Fedora 25 это оказалось проблемой SE Linux, и уведомление дало это решение, которое сработало для меня.

setsebool-P httpd_read_user_content 1

Это также происходит (и особенно смущает), если вы забыли, что вы создали символическую ссылку Windows на другой каталог, и что другой каталог не имеет соответствующих разрешений.

Это не прямой ответ на вопрос, но у меня была та же проблема. Я установил VSFTPD на моем сервере Ubuntu VPS. Я мог загружать файлы, но каждый загруженный файл не имел разрешения на выполнение (все файлы имели права "600"). Эти сообщения объясняют, что именно вам нужно сделать, чтобы настроить VSFTPD для установки прав по умолчанию на ваши файлы:

однажды это случилось и со мной. и когда я погуглил этот вопрос, я узнал, что это происходит, когда разрешения на файл ошибочно установлены на 000 (что означает, что никто не может читать, писать или выполнять этот файл). Затем я просто изменил свои права доступа к файлам на чтение и запись, и это сработало для меня.

чтобы изменить настройки разрешения файла на mac: щелкните правой кнопкой мыши на конкретном файле и нажмите кнопку Получить информацию из выпадающего меню и обратитесь к разделу общий доступ и разрешения панель и изменить настройки привилегий в чтение и запись

еще: http://www.itoctopus.com/warning-unknown-failed-to-open-stream-permission-denied-in-unknown-on-line-0-error-in-joomla

Проверьте формат файлов 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

перейти в папку htdocs

cd htdocs

выполнить

chmod -R 755 sites

не нужно судо !

в моем случае группа _www что apache использует отсутствовал в списке доступа к папке, поэтому сначала мне пришлось добавить отсутствующую группу, например:

sudo chown -R _www ~/path-to-folder

изменить _www для любого пользователя или группы, в которой работает apache.

узнайте пользователя/группу apache с помощью apachectl -S

выход огромный, но посмотрите в самом конце что-то вроде:

User: name="_www"
Group: name="_www"

Comments

    Ничего не найдено.