Après avoir installé un package de compositeur, j'essaie d'inclure l'autochargeur et d'exécuter le script: à ce stade, je reçois les messages suivants: P> AVERTISSEMENT: Exiger (): Open_Basedir restriction en vigueur. Fichier (/home/admin/domains/example.com/private_html/map/mt940/_example/vendor/autoload.php) n'est pas dans le (s) chemin (s) autorisé (/): (/ Accueil / Admin /: / TMP: / var / var / var / var / TMP: / opt / alt / php72 / USR / Partager / poire /: / dev / urandom: / USR / local / lib / php /: / USR / local / php72 / lib / php /) In / Accueil / Administrateur / Domaines /example.com/private_html/map/mt940/_example/example1.php sur la ligne 6 p>
AVERTISSEMENT: nécessite (/home/admin/domains/example.com/private_html/map/mt940/vendor/autoload.php): Échec de l'ouverture du flux: non de ce fichier ou répertoire dans / home / admin / exemplaire / exemple .com / privé_html / map / mt940 / _Example / exemple1.php sur la ligne 6 p>
Erreur fatale: Exiger (): Échec de l'ouverture requise '/Home/admin/domains/example.com/private_html/map/mt940/vendor/autoload.php' (incluse_path = '.: / USR / local / lib / php ') dans /home/admin/domains/example.com/private_html/map/mt940/_example/example1.php sur la ligne 6 p>
blockQuote> est-ce que je manque une étape? Pourquoi est-ce que je reçois ce message d'erreur? P> Mise à jour 1: strong> p> Après avoir désactivé Open_BaseDir, j'ai toujours les messages d'erreur suivants: P> AVERTISSEMENT: nécessite (/home/admin/domains/example.com/private_html/map/mt940/vendor/autoload.php): Échec de l'ouverture du flux: non de ce fichier ou répertoire dans / home / admin / exemplaire / exemple .com / privé_html / map / mt940 / _Example / exemple1.php sur la ligne 6 p>
Erreur fatale: Exiger (): Échec de l'ouverture requise '/Home/admin/domains/example.com/private_html/map/mt940/vendor/autoload.php' (incluse_path = '.: / USR / local / lib / php ') dans /home/admin/domains/example.com/private_html/map/mt940/_example/example1.php sur la ligne 6 p>
blockQuote> p>
4 Réponses :
Êtes-vous sûr que l'utilisateur (Linux?) utilisé par PHP peut lire des fichiers dans / home / admin? p>
= get_current_user ()?> code> dans votre principal
Script (exemple1.php). Puis appelez-le dans votre navigateur (via
Apache / nginx / etc). li>
- Vous pouvez toucher un "test.php" avec les mêmes droits
Comme Exemple1.php, puis appendez
exiger __Dir__. 'test.php'; code>, vous devez obtenir la même erreur. li>
ul>
Configurez vos droits pour / home / admin / domaines code> ou déplacez votre source sur un répertoire comme / var / www / code> (et vérifiez les droits) p>
à partir de vos messages d'erreur, il semble être une erreur combinée. Vous recherchez un chemin de fichier incorrect et vous n'avez pas accès en lecture / écriture pour certains des fichiers. Vous devez vous assurer que vous utilisez le chemin correct et que vous avez accès aux fichiers comme utilisateur C'est un problème courant avec des projets générés. Parfois, les fichiers et les dossiers n'ont pas les autorisations du système appropriées. Promenez-vous dans les fichiers et recherchez des autorisations de voyoues. Vous souhaitez avoir les deux privilèges de lecture / d'écriture à la plupart des fichiers. P>
Votre question manque des informations essentielles, qui correspond à la structure de répertoire de votre projet.
Nous pouvons essayer de le deviner à partir de vos messages d'erreur. P>
/ home / admin / Domaines / Exemple.com / Private_HTML / Carte / MT940 / _Example / Code> doit contenir: P>
composer.json
composer.lock
vendor/
something/example1.php // <-- notice it's on deeper level
...
incluent code> et exigent code>: ### h3>
- Vérifiez si les fichiers requis existent réellement li>
ol>
Je sais que cela sonne stupide, mais vous ne voulez pas savoir à quelle fréquence j'ai fait une erreur dans le chemin requis me causant des problèmes p>
- Vérifiez si le Les autorisations de fichier sont correctes li>
ol>
Les autorisations de Linux peuvent être assez poignées. Assurez-vous que le manifestation est configuré correctement. P>
- Vérifiez si l'utilisateur exécutant votre serveur Web est l'utilisateur correct et contient les bonnes autorisations li>
ol>
Apache, Nginx et d'autres WebServers ont tous leurs propres utilisateurs exécutant le serveur Web. Cela dépend de votre installation et de votre configuration bien sûr. Assurez-vous que votre serveur Web est exécuté par le bon utilisateur, cet utilisateur a les bonnes autorisations. P>
- Assurez-vous que le
include_path code> est Correct li>
ol>
Si un package gâche votre Inclure le chemin code>, assurez-vous de le corriger. P>
Êtes-vous sûr que le chemin est correct?
Vous voulez dire:
include_path = '.: / Usr / local / lib / php' code>? Je n'ai pas défini ce chemin
Si vous faites un
écho __dir__. '/vendor/autoload.php'; code> dans votre script et vérifiez le chemin, le fichier existe-t-il?
Avez-vous vérifié avec votre fournisseur d'hébergement? Cochez cette case Réponse si Votre fournisseur d'hébergement utilise Plesk pour plus de détails. S'ils n'utilisent pas de Plesk, vous pouvez toujours vérifier comment faire la même chose de votre fournisseur d'hébergement.
Existe-t-il un moyen pour vous d'essayer un chemin relatif, quelque chose comme
besoin '../ Vendeur / autoload.php' code>, en fonction de la structure de votre fichier de projet?
Votre dernière mise à jour indique que vous avez résolu le problème Open_Basedir, mais votre message d'erreur indique toujours que vous utilisez
DirName () code>, comme je l'ai expliqué dans ma réponse il y a 3 jours.
@John où est le répertoire des fournisseurs? Pourriez-vous fournir l'image des annuaires?
Un tas de nous posons des questions. Pas de retour d'information?