Article ID: 7056, created on Jul 31, 2013, last review on May 10, 2014

  • Applies to:
  • Plesk 12.5 for Linux
  • Plesk 12.0 for Linux
  • Plesk 11.5 for Linux
  • Plesk 10.4 for Linux/Unix


Questo problema è stato completamente risolto in Parallels Plesk Panel 10.4 e Parallels Plesk Panel 11

Sintomi

In modalità CGI o FastCGI, PHP viene eseguito con le autorizzazioni dell'utente FTP del dominio.

La modalità del supporto PHP può essere configurata per ogni dominio sulla pagina "Impostazioni di Hosting Web" che si trova in Domini -> domain.tld -> Impostazioni di Hosting Web:


Inoltre, possono comparire le seguenti avvertenze di PHP:

Warning: session_start() [function.session-start]: open(/var/lib/php/session/sess_vr12g68afa365jenb96han4k24, O_RDWR) failed: Permission denied (13) in /var/www/vhosts/<domain>/httpdocs/<script>.php on line <N>
Warning: Unknown: open(/var/lib/php/session/sess_vr12g68afa365jenb96han4k24, 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

Causa

Nelle versioni di Parallels Plesk Panel precedenti alla v. 10.4, la configurazione di PHP è configurata nel file /etc/php.ini e in modo predefinito, il suo percorso di sessione è quello seguente:
 
~# grep session.save_path  /etc/php.ini
session.save_path = "/var/lib/php/session"


Il valore del permesso predefinito per questa directory è 770:

~# ls -ld /var/lib/php/session
drwxrwx--- 2 root apache 65536 Dec 16 07:48 /var/lib/php/session
~#


Siccome gli script PHP vengono elaborati in modalità CGI/FastCGI sotto l'account <ftpuser>:psacln, il processo non può leggere/scrivere su tale directory e quindi userà il file della sessione.

Soluzione

1. Aggiorna Parallels Plesk Panel alla versione 10.4.

2. Configura la configurazione PHP personalizzata per il dominio.

3. Crea una directory secondaria sotto la directory privata del dominio:

~# mkdir /var/www/vhosts/domain.tld/private/php_sess
~# chown <ftpuser>:psacln /var/www/vhosts/domain.tld/private/php_sess
~# chmod 0700 /var/www/vhosts/domain.tld/private/php_sess


4. Modifica il file di configurazione PHP personalizzato php.ini e sovrascrivi la direttiva session.save_path come indicato sotto:

~# grep session.save_path  /var/www/vhosts/domain.tld/etc/php.ini
session.save_path = "/var/www/vhosts/domain.tld/private/php_sess"

a914db3fdc7a53ddcfd1b2db8f5a1b9c 29d1e90fd304f01e6420fbe60f66f838 dd0611b6086474193d9bf78e2b293040 56797cefb1efc9130f7c48a7d1db0f0c e8756e9388aeca36710ac39e739b2b37 742559b1631652fadd74764ae8be475e e335d9adf7edffca6a8af8039031a4c7 2a5151f57629129e26ff206d171fbb5f 01bc4c8cf5b7f01f815a7ada004154a2 0a53c5a9ca65a74d37ef5c5eaeb55d7f

Email subscription for changes to this article
Save as PDF