web-dev-qa-db-fra.com

PHP Avertissement: Inconnu: échec de l'ouverture du flux

J'ai récemment modifié le fichier Apache httpd.conf pour que mod_rewrite fonctionne. Je ne sais pas si ce problème provient de cela ou non, mais je reçois ce problème depuis ce jour.
C’est ce que je vois sur l’interface lorsque je lance le logiciel - 

Erreur de serveur Le site Web rencontré une erreur lors de la récupération http: // localhost/prestashop/ . Cela pourrait être arrêté pour maintenance ou configuré incorrectement.

Il n'y a pas de fichier spécifique qui déclenche cela. Mais j’ai vu qu’en général, les petits programmes constitués de 4 à 5 fichiers php fonctionnaient bien, mais pas les logiciels contenant beaucoup de fichiers (comme PrestaShop).
.__ J'ai vérifié les journaux et voici ce que j'ai trouvé.

[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
61
Bibhas Debnath

Expérimenté la même erreur, cela a été causé pour moi parce que sur mon Mac, j'ai changé DocumentRoot en répertoire de sites de mes utilisateurs.

Pour résoudre ce problème, j'ai exécuté la commande récursive afin de m'assurer que le service Apache dispose des autorisations en lecture.

Sudo chmod -R 755 ~/Sites
126
John Magnolia

Si vous utilisez Fedora, assurez-vous que SELinux n'interfère pas. Vous corrigez cela avec cette commande: 

    Sudo /sbin/restorecon -R /var/www/. 

Plus d'infos ici: linuxquestions.org/questions/linux-server-73/

30
jamie

J'ai eu la même erreur et mon problème était que les autorisations de fichiers étaient incorrectes.

chmod 755 index.php

a travaillé pour moi.

9
Mullins

Dans mon esprit, la vraie voie est:

# 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 {} \;
4
Dexter

J'ai eu ce problème quand insérer l'adresse de fichier incorrecte dans .htaccess

php_value auto_prepend_file "/home/user/wrong/address/config.php"

Donc, si vous utilisez auto_prepend_file , vérifiez le chemin de votre fichier. Il a appelé depuis .htaccess pour que PHP ne puisse pas déterminer le fichier d'erreur et la ligne.

4
Narek

Voici quelques conseils pour y remédier. Aller à :

cd /var/www

Sudo chown www-data:www-data * -R

Sudo usermod -a -G www-data username

Changer d'utilisateur avec votre nom d'utilisateur. J'espère que ça aide.

3
user1992554

Cela m’est arrivé aujourd’hui avec /home/user/public_html/index.php et la solution consistait à faire chmod o+x /home/user car ce répertoire devait avoir le X car sinon le serveur Apache ne peut pas lister les fichiers (c’est-à-dire ls)

2
petka

C'est un problème de blocage de SELinux, Linux empêchant l'accès httpd. Voici la solution:

# restorecon '/var/www/html/wiki/index.php'
# restorecon -R '/var/www/html/wiki/index.php'
# /sbin/restorecon '/var/www/html/wiki/index.php'
2
carlwang

Dans mon cas, le groupe _www utilisé par Apache était absent de la liste d'accès du dossier. J'ai donc dû ajouter le groupe manquant, comme suit:

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

Remplacez _www par l'utilisateur ou le groupe sous lequel Apache est exécuté.

Découvrez l'utilisateur/groupe d'Apache en utilisant apachectl -S

La sortie est énorme, mais regardez à la fin, quelque chose comme:

User: name="_www"
Group: name="_www"
1
AamirR

Je viens de rencontrer ce même problème et dans mon cas, il était causé par selinux. Le désactiver a résolu le problème. Et non, je n'ai pas besoin de selinux sur mon poste de travail, merci.

1
Adrian Gunawan

Citez juste la réponse ci-dessus de user1992554 Celle-ci a parfaitement fonctionné pour moi dans Linux Mint, pour me débarrasser de Avertissement: impossible d'ouvrir le flux: Autorisation refusée

cd/var/www 
Sudo chown www-data: www-data * -R 
Sudo usermod -a -G Nom d'utilisateur www-data

1
thelightings

Dans Fedora 25, il s’est avéré qu’il s’agissait d’un problème SE Linux, et la notification a donné cette solution qui a fonctionné pour moi.

setsebool -P httpd_read_user_content 1

1
kirenpillay

Ce n'est pas une réponse directe à la question, mais j'ai eu le même problème. J'ai installé VSFTPD sur mon serveur virtuel Ubuntu. Je pouvais télécharger des fichiers, mais tous les fichiers que je téléchargeais ne disposaient pas d'autorisations d'exécution (tous les fichiers avaient les droits "600"). Ces publications expliquent exactement ce que vous devez faire pour configurer votre VSFTPD afin de définir les droits par défaut sur vos fichiers:

0
Duco

Cela se produit également (et est particulièrement déroutant) si vous avez oublié que vous avez créé un lien symbolique Windows vers un autre répertoire et que l'autre répertoire ne dispose pas des autorisations appropriées.

0
SimplGy

Vérifiez le format de fichier DOS et UNIX. Ce problème est visible sur les plateformes Linux si le format de fichier dos est utilisé. Utilisez la commande doc2unix comme ci-dessous, puis réessayez. Cela devrait fonctionner Dos2unix * .php

Cette solution pour le problème ci-dessous

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
0
Shadaksharayya H A

Une fois, cela m'arrive aussi. et lorsque j'ai googlé la question, j'ai appris que cela se produisait lorsque les autorisations sur le fichier étaient définies à tort sur 000 (ce qui signifie que personne ne peut lire, écrire ou exécuter ce fichier). Ensuite, je viens de changer mon privilège d’autorisation d’utilisation de fichier en lecture et écriture et cela a fonctionné pour moi.

Pour modifier les paramètres d'autorisation de fichier sur mac: Faites un clic droit sur le fichier en question, cliquez sur Obtenir des informations dans le menu déroulant, reportez-vous au panneau de partage et autorisations et modifiez les paramètres de privilège en Lecture et écriture.

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

Aller au dossier htdocs

cd htdocs

Execute

chmod -R 755 sites

Pas besoin de Sudo!

0
denis

À part les autorisations, le problème peut être open_basedir. Si vous l'utilisez (et je suggère de l'utiliser), vérifiez les paramètres sur le VirtualHost:

 php_admin_value open_basedir <YOUR ROOT>
0
Pavel Jiri Strnad