PHP in Domain im CGI/FastCGI-Modus kann Sitzung standardmäßig nicht nutzen

Created:

2016-11-16 13:17:07 UTC

Modified:

2017-08-16 16:32:03 UTC

2

Was this article helpful?


Have more questions?

Anfrage einreichen

PHP in Domain im CGI/FastCGI-Modus kann Sitzung standardmäßig nicht nutzen

Applicable to:

  • Plesk 12.5 for Linux
  • Plesk 12.0 for Linux
  • Plesk 11.5 for Linux
  • Plesk 10.4 for Linux/Unix


Das Problem wurde in Parallels Plesk Panel 10.4 und Parallels Plesk Panel 11 vollständig behoben.

Symptoms

Im CGI- oder FastCGI-Modus wird PHP mit den Berechtigungen des FTP-Benutzers der Domain ausgeführt.

Der PHP-Unterstützungsmodus kann für jede Domain auf der Seite "Webhosting-Einstellungen" unter Domains -> domain.tld -> Webhosting-Einstellungen konfiguriert werden:


Außerdem können folgende PHP-Warnungen angezeigt werden:

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

Cause

In Parallels Plesk Panel-Versionen vor 10.4 wird die PHP-Konfiguration in der Datei /etc/php.ini festgelegt, wobei standardmäßig der folgende Sitzungspfad eingestellt ist:

~# grep session.save_path  /etc/php.ini
session.save_path = "/var/lib/php/session"


Der Standard-Berechtigungswert für dieses Verzeichnis lautet 770:

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


Da die PHP-Skripts im CGI/FastCGI-Modus unter dem Account <ftpuser>:psacln verarbeitet werden, kann der Prozess dieses Verzeichnis nicht lesen/schreiben und liest daher die Sitzungsdatei ein.

Resolution

1. Führen Sie ein Upgrade von Parallels Plesk Panel auf die Version 10.4 durch.

2. Richten Sie eine benutzerdefinierte PHP-Konfiguration für die Domain ein.

3. Erstellen Sie ein Unterverzeichnis im Verzeichnis private der Domain:

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


4. Bearbeiten Sie die benutzerdefinierte PHP-Konfigurationsdatei php.ini und überschreiben Sie die Direktive session.save_path wie folgt:

~# grep session.save_path  /var/www/vhosts/domain.tld/etc/php.ini
session.save_path = "/var/www/vhosts/domain.tld/private/php_sess"
Haben Sie Fragen? Anfrage einreichen
Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.