目次
動作環境
PHP: 7.0.7 (phpenv)
Codeigniter: 3.1.1
vagrant
Sessionでエラー
Codeigniterでお問い合わせフォームを作成する時に、
Sessionを使ってCSRF対策を取ろうとしたところエラーが発生してしまった。
エラー内容は、以下の通りです。
エラー その1
A PHP Error was encountered Severity: Warning Message: mkdir(): Invalid path Filename: drivers/Session_files_driver.php
エラー その2
Warning: Uncaught Exception: Session: Configured save path '' is not a directory, doesn't exist or cannot be created. in
エラー その3
A PHP Error was encountered Severity: Error Message: session_start(): Failed to initialize storage module: user (path: ) Filename: Session/Session.php
多分、原因は1つ
一度に複数のエラーが発生してしまい、うわあああああああ
と、なってしまいそうですが、エラーを良く見ると全てがSessionの問題です。
そして、全てのエラーに共通して「path」というWordが記載されています。
phpinfo()を確認してみると・・・
なんということでしょう!
session.save_path に値が設定されてないじゃないですか!
というわけで
php.iniにsession.save_pathを設定する
session.save_pathを設定する為に、php.iniを編集します。
.htaccessで設定できるという話も聞きますが、毎度htaccessを発行するのが面倒なので、
今回は.php.iniを編集します。
設定ファイルを開きます。
私の環境は、phpenvを利用しているので、以下のように編集する。
$ cd $ vi .phpenv/versions/7.0.7/etc/php.ini
php.iniを開いたら、以下のsession.save_pathを見つけます。
;session.save_path = "/tmp"
見つけたら、「;」を削除して保存。
apacheを再起動すれば、OKです。
続辺
https://www.kabanoki.net/1077