session_startでエラー発生
nginx、phpでwebサイトを作成していたときのこと。
以下のメソッドでセッション開始しようとしたのですが、
session_start()
こーんなエラーがでています。
Warning: session_start(): open(/var/lib/php/session/sess_83pdkl32p3d7fav8c7betn8mkg, O_RDWR) failed: Permission denied (13) in /var/www/html/gallery/admin/includes/session.php on line 9
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/session) in /var/www/html/gallery/admin/includes/session.php on line 9
line9ってのはsession_startが書いてあるところなのですが、どうやらファイルへの書き込み(読み込みも?)権限がない模様。
パーミッション設定を見てみる
path: /var/lib/php/session
となっているので、セッションデータの書き込み先ディレクトリのパーミッション設定を見てみました。
(ちなみに、今回はエラー内容に表示されていましたが、phpinfo()メソッドでもセッションの書き込み先がどこかわかります。)
ls -la /var/lib/php/session
total 0
drwxrwx---. 2 root apache 45 Dec 20 13:35 .
所有者グループがapacheとなっていますね・・・
所有者グループをnginxに変更
以下コマンドで、所有者グループをnginxに変更してみました。
chgrp nginx /var/lib/php/session
これでエラー解消!ちゃんとnginxがsessionディレクトリを読み書きできるようです。
nginxでphpの環境構築すると、apacheがデフォルトのことが多いようで、ちょこちょこ手を加えないといけないですね。
自分としてはなんとなくnginxがなれているので使っていますが、apacheでやるともっと楽なのかなと思ったり・・・。
コメント