web-dev-qa-db-fra.com

Ubuntu 12.04 php PEAR problème de paquet

J'utilise le serveur LAMP sur mon système Ubuntu 12.04. Auparavant, j'ai installé prestashop sans aucun problème. Mais après avoir essayé d’installer prestashop aujourd’hui, cela m’a montré une erreur étrange. L'erreur est comme ça:

Warning: require(/var/www/Prestashop/config/config.inc.php): failed to open stream: Permission denied in /var/www/Prestashop/index.php on line 27 Fatal error: require(): Failed opening required '/var/www/Prestashop/config/config.inc.php' (include_path='.:/usr/share/php:/usr/share/pear/PEAR') in /var/www/Prestashop/index.php on line 27

Pour cela, j'ai décidé de corriger l'erreur, j'ai donc consulté de nombreux blogs et forums et j'ai vérifié mon fichier php.ini. Le fichier ressemble à this .

Après avoir parcouru de nombreux blogs, quelqu'un avait dit que l'erreur était pour le paquet php pear, le lien était ici .

Après cela, je viens de faire éditer mon url php.ini pear comme ceci:

;UNIX: "/path1:/path2"
include_path = ".:/usr/share/php:/usr/share/php/PEAR"

Après cela, je viens de redémarrer mon serveur Apache mais cela ne fonctionna pas pour moi. La même erreur est à venir. Alors ici, quelqu'un peut-il bien vouloir me dire quel est le problème ici? et comment résoudre ce problème?

2
newuser

L'erreur est générée par la fonction require() . Cette fonction arrêtera le script php quand:

  • le fichier donné (dans votre cas, le fichier /var/www/Prestashop/config/config.inc.php] n'existe pas ou
  • lorsque l'utilisateur qui appelle la fonction n'a pas l'autorisation de lire ce fichier.

Selon:

Warning: require(/var/www/Prestashop/config/config.inc.php): failed to open stream: Permission denied in /var/www/Prestashop/index.php on line 27

votre problème tombe dans le second cas. Pour éviter cela, vous devez modifier les autorisations du fichier /var/www/Prestashop/config/config.inc.php afin d'autoriser les autres utilisateurs à lire le fichier. Vous pouvez le faire en lançant la commande suivante depuis le terminal:

chmod +r /var/www/Prestashop/config/config.inc.php

Si l'erreur apparaît également après pour d'autres fichiers, suivez la même méthode pour modifier les autorisations.

Vérifiez également les autorisations pour le répertoire config. Ceux-ci doivent être quelque chose comme: drwxr-xr-x. Sinon, utilisez cette commande dans le terminal:

chmod +rx /var/www/Prestashop/config
2
Radu Rădeanu

Les autorisations sur le répertoire /var/www/Prestashop/config sont faux . Ils sont drwx------ signifiant que SEUL l'utilisateur newuser peut y accéder. Le serveur Web est exécuté en tant que www-data et il ne peut évidemment pas accéder à votre répertoire de configuration.

Il n'y a absolument aucun mal à ajouter des autorisations de lecture au groupe et à tous.

chmod +rx /var/www/Prestashop/config

Cela pourrait être considéré comme un problème de sécurité ajoutant une permission d'écriture au répertoire, mais ceci est également discutable puisque /tmp/ est toujours accessible et qu'un logiciel malveillant tend à l'utiliser comme répertoire de support.

Bien sûr, ne donnez pas un accès en écriture aux fichiers eux-mêmes car , ce qui serait un problème de sécurité.

Si vous ne voulez vraiment pas le rendre lisible au monde, vous pouvez changer le propriétaire en www-data

Sudo chown www-data /var/www/Prestashop/config

cela devrait suffire, car les fichiers du répertoire sont lisibles par tout le monde (à l'exception du dossier xml qui nécessite à nouveau le droit de propriété ou des autorisations).

0
Cubiq