phpのsession_start()で「Permission denied」のエラーになる場合の対処方法

phpにて、session_start()のところで下記のようなエラーが表示される場合の対処方法。

Warning: session_start(): open(/var/lib/php/session/sess_xxxxxxx, O_RDWR) failed: Permission denied (13) in /var/www/html/xxxx/function.php on line 46

原因

phpのセッションを格納するディレクトリ「/var/lib/php/session」のパーミッションが「777」ではなく「755(rwxrwx—)」になっており、ディレクトリにセッションが書き込めない状態。

対処方法

現状のパーミッションを確認

[root@localhost html]# ls -l /var/lib/php/
合計 0
drwxrwx--- 2 root apache 6 11月  6 09:32 session

確かに「rwxrwx—」、つまり「755」の状態。

パーミッションを変更

[root@localhost html]# chmod 777 /var/lib/php/session

これで「session_start()」でのエラーが解消。

php TIPS の一覧