Squirrelmail can't write session data after every iworx update

Squirrelmail’s login page looks like this after every Interworx update:

Warning: Unknown: open(/home/interworx/var/session/sess_b5bd0b6c89bd74d03318f850f624ac70, 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 (/home/interworx/var/session) in Unknown on line 0

The only permission that works for the session directory is 777. Anything slightly more restrictive doesn’t work. Should this directory be so writable to everybody? Which permission should it be? and why does it break after every update?

Normally squirrelmail uses /tmp for its sessions - is it possible you have a pending squirrelmail update that’s not happening? I’m not sure what else it could be.

Paul

If you mean software updates in Interworx there’s usually nothing pending before or after an update has run. Squirrelmail is never updated other than what Interworx does.

Initially I thought there was a PHP issue but it’s looking like a Squirrelmail problem. It uses the same PHP environment as Interworx, right? But only Squirrelmail seems affected.

There are two php.ini files and Squirrelmail is using the same one that Interworx uses.

In /home/interworx/etc/php.ini session data is set this way (PHP4?):

session.save_path = /home/interworx/var/session

In /etc/php.ini it’s set this way (PHP5):

session.save_path = "/var/lib/php/session"

After a scheduled update the directory permission is 700. I change it to 777 to get Squirrelmail to work at all. Permission reverts to 700 if there’s an Interworx update. This means the session directory for Squirrelmail is correct.

Here’s another problem with Squirrelmail that may help that I neglected to mention: any message in the Sent directory shows these two errors at the top of the page:

Notice: Undefined index: score in /usr/local/interworx/lib/squirrelmail/plugins/sasql/sasql_hooks.php on line 418

Notice: Undefined index: required in /usr/local/interworx/lib/squirrelmail/plugins/sasql/sasql_hooks.php on line 419

No, it’s PHP5

session.save_path = /home/interworx/var/session

Correct, but /usr/local/interworx/lib/squirrelmail/config/config.php should have the following at the top:

ini_set(‘include_path’, ‘/usr/local/interworx/lib/pear’ . ‘:’. ini_get(‘include_path’) );
ini_set( ‘session.save_path’, ‘/tmp’ );

Paul

Paul,

Those lines were not present but they’ve been added. Won’t know if the problem is fixed until after the next update runs. Still have those other errors at the top of Sent messages though.

Thanks for your help.

I have the same problem…

InterWorx 4.9.2 - CentOS 6.1

There are two php.ini

/etc/php.ini

session.save_path = "/var/lib/php/session"

and
/usr/local/interworx/etc/php.ini

session.save_path = /home/interworx/var/session

It seems my apache reading config from /etc/php.ini, because in error_log I get this error:

PHP Warning: session_start(): open(/var/lib/php/session/sess_kvh097f515ooq3m4hctqj76l17, O_RDWR) failed: Permission denied (13)

After I’ve changed session.save_path in /etc/php.ini to “/tmp” everything started to work as it should…