-2
votes

Erreur après l'installation du package du compositeur

Après avoir installé un package de compositeur, j'essaie d'inclure l'autochargeur et d'exécuter le script: xxx

à ce stade, je reçois les messages suivants:

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

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

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

est-ce que je manque une étape? Pourquoi est-ce que je reçois ce message d'erreur?

Mise à jour 1:

Après avoir désactivé Open_BaseDir, j'ai toujours les messages d'erreur suivants:

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

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


8 commentaires

Êtes-vous sûr que le chemin est correct?


Vous voulez dire: include_path = '.: / Usr / local / lib / php' ? Je n'ai pas défini ce chemin


Si vous faites un écho __dir__. '/vendor/autoload.php'; 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' , 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 () , 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?


4 Réponses :


0
votes

Êtes-vous sûr que l'utilisateur (Linux?) utilisé par PHP peut lire des fichiers dans / home / admin?

  • vous pouvez tester en ajoutant dans votre principal Script (exemple1.php). Puis appelez-le dans votre navigateur (via Apache / nginx / etc).
  • Vous pouvez toucher un "test.php" avec les mêmes droits Comme Exemple1.php, puis appendez exiger __Dir__. 'test.php'; , vous devez obtenir la même erreur.

    Configurez vos droits pour / home / admin / domaines ou déplacez votre source sur un répertoire comme / var / www / (et vérifiez les droits)


0 commentaires

0
votes

à 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 Apache .

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.


0 commentaires

1
votes

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
...


0 commentaires

0
votes

Les étapes que je prendrais pour résoudre les problèmes avec incluent et exigent : ###
  1. Vérifiez si les fichiers requis existent réellement

    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

    1. Vérifiez si le Les autorisations de fichier sont correctes

      Les autorisations de Linux peuvent être assez poignées. Assurez-vous que le manifestation est configuré correctement.

      1. Vérifiez si l'utilisateur exécutant votre serveur Web est l'utilisateur correct et contient les bonnes autorisations

        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.

        1. Assurez-vous que le include_path est Correct

          Si un package gâche votre Inclure le chemin , assurez-vous de le corriger.


0 commentaires