セッションディレクトリの設定について
セッションの利用では,舞台裏でセッションディレクトリが用いられている。
セッションディレクトリに関して,Apache2ではデフォルト設定はないようであるが,Apache2インストール時に設定ファイルに記述することができる。
セッションディレクトリとして/tmpを設定することが多い。
通常はApache2の設定ファイルに設定されたセッションディレクトリを使用する。
PHPで動的にセッションディレクトリを作る場合がある。
しかもファイルハンドリングの良さからマウント領域にwww/htmlのドキュメントルートを置いていて,
phpファイルと同じディレクトリ内にセッションディレクトリを作りたい場合を想定する。
Ubuntu on Windowsでは,PHPでセッションを操作するwww-dataが,この領域に書き込み権限を持たないため,失敗してしまう。
ディレクトリリンクを使って,この件を解決したので,メモしておく。
セッションディレクトリ名を「sessiondirectory」にした仮定し,これを「/tmp」にリンクし,
UbuntuApache2が「sessiondirectory」を操作すると「/tmp」を操作したことになる。
phpプログラム
session_save_path("./sessiondirectory"); //セッションディレクトリの設定
session_start();
:
リンクで,/tmpを./sessiondirectoryとして使えるようにする。
作業ディレクトリにて
ln -s /tmp sessiondirectory