Search

Language:  
Search for:

Available article translations:

PHP on domain running via CGI/FastCGI can't use session by default

APPLIES TO:
  • Parallels Plesk Panel 10.x for Linux
  • Parallels Plesk Panel 9.x for Linux/Unix


This issue has been completely fixed in Plesk 10.4 and Plesk 11

Symptoms

In CGI or FastCGI mode, PHP runs with the permissions of the domain's FTP user.

PHP support mode can be configured for each domain on the "Web Hosting Settings" page found at Domains -> domain.tld -> Web Hosting Settings:


Also following PHP warnings can appears:

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 versions prior to 10.4, PHP configuration is set in the /etc/php.ini file and by default has the session path set as follows::
 
~# grep session.save_path  /etc/php.ini
session.save_path = "/var/lib/php/session"


The default permissions value for this directory is 770:

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


As the PHP scripts are processed in CGI/FastCGI mode under the <ftpuser>:psacln account, the process cannot read/write that directory and it will, effectively, pick up the session file.

Resolution

1. Upgrade Parallels Plesk Panel to version 10.4.

2. Set up customized PHP configuration for the domain.

3. Create a subdirectory under the domain's private directory:

~# 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. Edit the customized PHP configuration file php.ini and overwrite the session.save_path directive as shown below:

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



6eab23e8dac1eb5df9820a41f94cf4b4 49af2da0f2dd4c81e962790bbbd0c2b4 5d735c0e028ee5b991e4fb80d34fb87f 0324051e74e0392d1551a3b559b09eaa 56797cefb1efc9130f7c48a7d1db0f0c

FEEDBACK
Was this article helpful?
Tell us how we may improve it.
Yes No
 
 
 
 
 
 
Desktop Virtualization
- Parallels Desktop 8 for Mac
- Parallels Transporter
- Parallels Desktop Switch to Mac Edition
- Parallels Desktop for Mac Enterprise Edition
- Parallels Management-Mac for Microsoft SCCM
Server Virtualization
- Parallels Cloud Server
- Parallels Containers for Windows 6.0 Beta
- Parallels Virtuozzo Containers
Automation
- Parallels Automation
- Parallels Automation for Cloud Infrastructure
- Parallels Business Automation Standard
- Parallels Virtual Automation
- Parallels Plesk Panel Suite
- Web Presence Builder
- Parallels Plesk Automation
- Parallels Small Business Panel
- Value-added Services for Hosters
- Parallels Partner Storefront
Services & Resources
- Cloud Acceleration Services
- Professional Services
- Support Services
- Training & Certification