If you are on a cPanel server running in suPHP mode, which I am wagering a guess you are, then try using a custom php.ini to override the systems default php.ini file and set a new session save path. If you have SSH access to the account where you are getting this error, do the following.
cd public_html
cp /usr/local/lib/php.ini .
nano php.ini
The edit the "session.save_path" value and set it to a path on your account such as /home/username/tmpdir .. and make sure you actually create that directory and set the perms to 777. So the line would read like this.
session.save_path = /home/username/tmpdir
Save and close.
Next, edit your .htaccess file and add the following line which will make your custom php.ini global for your site.
suPHP_ConfigPath /home/username/public_html/php.ini
Save and exit, and remember to replace username with the actual cPanel account username.
If you do not use SSH, then you can use the following PHP script to copy the system php.ini to your site .. just save as phpinicp.php and execute in a browser from your site. The edit the files via PHP (php.ini and .htaccess). And make sure to edit the "username" references in the script first.
PHP Code:
<?php
// Put all the php.ini parameters you want to change below. One per line.
// Follow the example format $parm[] = "parameter = value";
$parm[] = "session.save_path = /home/username/tmpdir";
// full unix path - location of the default php.ini file at your host
// you can determine the location of the default file using phpinfo()
$defaultPath = "/usr/local/lib/php.ini";
// full unix path - location where you want your custom php.ini file
$customPath = "/home/username/public_html/php.ini";
// nothing should change below this line.
if (file_exists($defaultPath)) {
$contents = file_get_contents($defaultPath);
$contents .= "\n\n; USER MODIFIED PARAMETERS FOLLOW\n\n";
foreach ($parm as $value) $contents .= $value . " \n";
if (file_put_contents($customPath,$contents)) {
if (chmod($customPath,0600)) $message = "The php.ini file has been modified and copied";
else $message = "Processing error - php.ini chmod failed";
} else {
$message = "Processing error - php.ini write failed";
}
} else {
$message = "Processing error - php.ini file not found";
}
echo $message;
?>