ひとり勉強ログ

ITエンジニアの勉強したことメモ

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---)」になっており、ディレクトリにセッションが書き込めない状態。

対処方法

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

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

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

パーミッションを変更

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

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