J'ai récemment changé de serveur et maintenant ma page d'accueil ne fonctionnera plus. Il donne le texte suivant:
Warning: session_start() [function.session-start]: open(/var/lib/php/session/sess_eqbchncji8kj22f0iqa9g3v7u2, O_RDWR) failed: Permission denied (13) in /var/www/vhosts/alt.alternativedc.com/httpdocs/index.php on line 6
Warning: Unknown: open(/var/lib/php/session/sess_eqbchncji8kj22f0iqa9g3v7u2, O_RDWR) failed: Permission denied (13) in Unknown on line 0
Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php/session) in Unknown on line 0
J'ai supposé que cela signifiait que le dossier de session n'était pas accessible en écriture. J'ai donc exécuté la commande suivante après avoir ssh-ed sur le serveur:
chmod o+rw /var/lib/php/session
Cela n'a pas semblé résoudre le problème. Je ne sais pas quoi faire maintenant ...
Essayez de changer votre chemin de sauvegarde de session dans votre fichier de configuration php,/tmp est un bon emplacement.
php.ini
session.save_path = /tmp
http://www.php.net/manual/en/session.configuration.php#ini.session.save-path
Juste le même problème sur CentOS:
chown -R Apache:apache /var/lib/php/session
Faire de l'utilisateur http le propriétaire du répertoire de session devrait également fonctionner.
Vous avez probablement modifié les autorisations d'un dossier parent de manière récursive, probablement de la part de votre propre utilisateur.
Allez dans votre dossier de sessions:cd ~;cd /var/lib/php/
Si vous trouvez un dossier de sessions, Écrivez simplement ces deux commandes dans votre terminal:cd ~;
pour rentrer à la maison, puisSudo chown -R www-data:www-data /var/lib/php/session
Ou, si votre dossier de sessions est "sessions" au lieu de "session":cd ~;
pour rentrer à la maison, puisSudo chown -R www-data:www-data /var/lib/php/sessions
De cette façon, votre serveur pourra écrire des sessions dans votre projet.
Je suis tout à fait sûr de cette approche.
tmp
et /var/lib/session
doivent être chmod 1777
et le problème résolu.
sur ubuntu 12.04/var/lib/php5 a 1733 permissions Je change dans php.ini session.save_path en/tmp pour stocker correctement les sessions . Sinon, vous pouvez définir le paramètre dans votre code par ini_set (' session.save_path ', path_where_Apache_have_permission_777);
J'ai essayé toutes les solutions ici mais elles n'ont pas fonctionné, car php.ini était écrasé par d'autres configurations.
Pour trouver le coupable que j'ai utilisé cette astuce :
grep -lR 'php_value' /etc/
Et là, c’est /etc/httpd/conf.d/php.conf
qui a tout gâché. J'ai donc changé sa valeur de php_value session.save_path "/var/lib/php/session"
à php_value session.save_path "/tmp"
.
Après avoir redémarré Apache (service httpd restart
), cela a finalement fonctionné!
Essayez de changer le propriétaire du répertoire de session en www-data . Pour ce faire, exécutez cette commande Sudo chown -R www-data /var/lib/php/sessions
. Cela fonctionne pour moi.