nginxでsession_start()を使うときに気をつけること

ERROR

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でやるともっと楽なのかなと思ったり・・・。

コメント

タイトルとURLをコピーしました