Cómo hacer que mi sesión escriba en apache

Cambié los servidores recientemente, y ahora mi página de inicio no funcionará. Da el siguiente texto:

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 

Supuse que esto significaba que la carpeta de la sesión no podía escribirse, así que ejecuté el siguiente comando después de enviar ssh-ed al servidor:

 chmod o+rw /var/lib/php/session 

Eso no pareció resolver el problema. No estoy seguro de qué hacer ahora…

Intenta cambiar la ruta de guardar de tu sesión en tu archivo de configuración php, / tmp es una buena ubicación.

php.ini

 session.save_path = /tmp 

http://www.php.net/manual/en/session.configuration.php#ini.session.save-path

Solo tuve el mismo problema en CentOS:

 chown -R apache:apache /var/lib/php/session 

Hacer que el usuario httpd sea el encargado del directorio de la sesión también debería funcionar.

Probablemente haya cambiado los permisos de una carpeta principal recursivamente, muy probablemente para su propio usuario.
Ve a la carpeta de tus sesiones:
cd ~;cd /var/lib/php/

Si encuentra una carpeta de sesiones, simplemente escriba estos dos comandos en su terminal:
cd ~; ir a casa, luego
sudo chown -R www-data:www-data /var/lib/php/session

O bien, si su carpeta de sesiones es “sesiones” en lugar de “sesión”:
cd ~; ir a casa, luego
sudo chown -R www-data:www-data /var/lib/php/sessions

De esta forma, su servidor podrá escribir sesiones en su proyecto.
Estoy bastante seguro acerca de este enfoque.

ambos de tmp y /var/lib/session deben ser chmod 1777

y problema resuelto

en ubuntu 12.04 / var / lib / php5 tiene el permiso 1733 cambio en php.ini session.save_path a / tmp para almacenar correctamente las sesiones; alternativamente puede establecer el parámetro en su código mediante ini_set (‘session.save_path’, path_where_apache_have_permission_777);

Intenté todas las soluciones aquí pero no funcionaron, porque php.ini estaba sobrescrito por otras configuraciones.

Para encontrar al culpable usé este truco :

grep -lR 'php_value' /etc/

Y ahí estaba /etc/httpd/conf.d/php.conf arruinándolo. Así que cambié su valor de php_value session.save_path "/var/lib/php/session" a php_value session.save_path "/tmp" .

Después de reiniciar Apache ( service httpd restart ) ¡finalmente funcionó!