LoginSignup
0
0

More than 3 years have passed since last update.

CodeIgniter3でSessionを使うときに Failed to initialize storage module: user(path:**)にハマった

Posted at

概要

タイトルにあるように、CodeIgniter3でSessionを使うときに以下のエラーが発生してハマったので、
原因と解決方法について記録を残します。

ネットで検索すると$config['sess_save_path']の設定をするんだよ。とか、
そのパスには777の権限にしておくんだよ。みたいな記事があるんですが、それだけでは解決しなかったので迷いました。

Message: session_start(): Failed to initialize storage module: user (path: /var/www/html/codeigniter3/application/cache)

Filename: Session/Session.php

Line Number: 143

よくある解決策

config.phpの設定でsess_save_pathの確認をした?というのがあります。

  • パスが存在するか?
  • パスに対して書き込み権限があるか?
application/config/config.php
$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = APPPATH.'cache/';
$config['sess_match_ip'] = TRUE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;

上記確認事項だけでは解決しませんでした。

今回の解決策

SELinuxが原因でした。

# getenforce
Enforcing

SELinuxを無効にして確認すると問題なくSessionが動作するようになりました。

# setenforce 0
# getenforce
Permissive
/etc/selinux/config
SELINUX=disabled

今回、さくらVPSで限りなく本番環境に近いような状態で開発を進めていて、なんとなくSELinuxって無効にしちゃいけないのかな?と思って無効にする選択肢を排除していたためつまづきました。
Vagrantなどで簡単に開発環境を作る時は、兎にも角にもSELinuxを無効にしてしまっていたので、今までなんの問題もなく開発できていたんですね。。。
SELinuxって結構いろんなときに邪魔してきますが、有効にした状態のまま、正常に環境を保つことはできるんだろうか。。。 

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0