Comment obtenir ma session pour écrire à Apache
J'ai changé de serveurs récemment, et maintenant ma page d'accueil ne fonctionne pas. 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
Je suppose que cela signifie que la session dossier n'était pas accessible en écriture, j'ai donc exécuté la commande suivante après que j'ai ssh-ed sur le serveur:
chmod o+rw /var/lib/php/session
Qui ne semble pas résoudre le problème. Vous ne savez pas quoi faire maintenant...
source d'informationauteur BlackSheep
Vous devez vous connecter pour publier un commentaire.
Essayez de changer votre séance d'enregistrer le chemin d'accès à votre fichier de configuration php, /tmp est un bon emplacement.
php.ini
http://www.php.net/manual/en/session.configuration.php#ini.session.save-path
Juste eu le même problème sur CentOS:
Faire le httpd utilisateur de la eur de la session de répertoire de travail, aussi bien.
Vous avez probablement changé autorisations du dossier parent de manière récursive, les plus susceptibles de votre propre utilisateur.
Accédez à votre dossier sessions:
cd ~;cd /var/lib/php/
Si vous trouvez un dossier sessions,
il suffit d'écrire ces deux commandes dans le terminal:
cd ~;
de rentrer à la maison, puissudo chown -R www-data:www-data /var/lib/php/session
Ou, si vos sessions dossier "sessions" à la place de "session":
cd ~;
de rentrer à la maison, puissudo chown -R www-data:www-data /var/lib/php/sessions
De cette façon, votre serveur sera capable d'écrire des sessions dans votre projet.
Je suis Tout à fait sûr au sujet de cette approche.
à la fois de
tmp
et/var/lib/session
doit être chmod 1777et le problème est résolu.
sur ubuntu 12.04 /var/lib/php5 a 1733 autorisation
- Je modifier dans le php.ini session.save_path /tmp correctement stocker les sessions
sinon, vous pouvez régler le paramètre de votre code en fonction ini_set('session.save_path',path_where_apache_have_permission_777);
J'ai essayé toutes les solutions ici, mais ils n'ont pas de travail, parce que php.ini a été écrasée par d'autres configs.
De trouver le coupable, j'ai utilisé cette astuce:
grep -lR 'php_value' /etc/
Et il était là
/etc/httpd/conf.d/php.conf
gâcher.J'ai donc modifié sa valeur de
php_value session.save_path "/var/lib/php/session"
àphp_value session.save_path "/tmp"
.Après le redémarrage d'Apache (
service httpd restart
) enfin, cela a fonctionné!