Search

Language:  
Search for:

Available article translations:

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

Article ID: 7056, created on Dec 25, 2009, last review on Dec 23, 2015

APPLIES TO:
  • Plesk 10.4 for Linux/Unix

This issue has been completely fixed since Plesk 10.4. In case if you upgrade to 11.x or 12 versions, please ignore this warning. It occurs in case if permissions on the '/var/lib/php/session/' directory are set incorrectly Upgrade in fact fixes the permissions

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 Plesk > Domains > domain.tld > Web Hosting Settings:

Also following PHP warnings can appear:

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

Cause

In Plesk versions prior to 10.4, PHP configuration is set in the /etc/php.ini file and by default has a session path set as following:

# 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 pick up the session file.

Resolution

Upgrade Plesk to the latest version.

If upgrade is not possible, follow the instructions below:

  1. Set up Customized PHP Configuration for the domain.

  2. Create a subdirectory under the domain's private directory and set permissions as shown below:

     # 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
    
  3. 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"
    



a914db3fdc7a53ddcfd1b2db8f5a1b9c 29d1e90fd304f01e6420fbe60f66f838 dd0611b6086474193d9bf78e2b293040 56797cefb1efc9130f7c48a7d1db0f0c e8756e9388aeca36710ac39e739b2b37

FEEDBACK
Was this article helpful?
Tell us how we may improve it.
Yes No
 
 
 
 
 
 
Server Virtualization
- Odin Cloud Server
- Odin Containers for Windows 6.0
- Odin Virtuozzo Containers
Automation
- Odin Automation
- Odin Automation for Cloud Infrastructure
- Odin Business Automation Standard
- Odin Virtual Automation
- Odin Plesk Panel Suite
- Web Presence Builder
- Odin Plesk Automation
- Odin Small Business Panel
- Value-added Services for Hosters
- Odin Partner Storefront
Services & Resources
- Cloud Acceleration Services
- Professional Services
- Support Services
- Training & Certification