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?
L'erreur est générée par la fonction require()
. Cette fonction arrêtera le script php quand:
/var/www/Prestashop/config/config.inc.php
] n'existe pas ouSelon:
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
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).