phpMyAdmin – エラー が出たときの対処

2018年10月8日

phpMyAdminにアクセスするとエラーメッセージが表示される

phpMyAdmin – Error
Error during session start; please check your PHP and/or webserver log file and configure your PHP installation properly. Also ensure that cookies are enabled in your browser.

session_start(): open(SESSION_FILE, O_RDWR) failed: Permission denied (13)

session_start(): Failed to read session data: files (path: /var/lib/php/session)

phpMyAdmin – エラー
セッション開始中にエラーが発生しました。PHPおよび/またはWebサーバーログファイルを確認し、PHPインストールを適切に構成してください。また、ブラウザでCookieが有効になっていることを確認してください。

session_start():

セッションデータの読み込みに失敗しました:ファイル(パス:/ var / lib / php / session):session_start():open(SESSION_FILE、O_RDWR )

エラーメッセージに対処する

原因:PHPのモジュールをアップデートした後ですか?
原因として考えられるのは、PHPのセッションを保存するファイルやディレクトリ名の所有者及びグループが、アップデートによって変更された可能性があります。

セッションデータの読み込みに失敗しました:ファイル(パス:/var/lib/php/session)

/var/lib/php/session ディレクトリのアクセス権を確認

[root@host ~]# ls -l /var/lib/php/session
drwxrwx--- 2 root apache 4096 9月 12 14:31 /var/lib/php/session

ディレクトリの所有者・グループが「root : apache」になってます。

/var/lib/php/session ディレクトリの所有者・グループをWebサーバのプロセスのユーザ・グループに変更

[root@host ~]# chown nginx. /var/lib/php/session

変更後の /var/lib/php/session ディレクトリのアクセス権を確認

[root@host ~]# ls -ld /var/lib/php/sessionls
drwxrwx--- 2 nginx nginx 4096 9月 12 14:31 /var/lib/php/session

変更後、phpMyAdminにアクセスして正常にログイン画面が出ることを確認

正常にログイン画面が表示されました。

$cfg['TempDir’] (/var/lib/phpMyAdmin/temp/) にアクセスできません。

ログインが正常にできるようになりphpMyAdmin画面を見ると下部に新たなエラーメッセージを発見!!

表示されたメッセージ

$cfg['TempDir’] (/var/lib/phpMyAdmin/temp/) にアクセスできません。phpMyAdmin はテンプレートをキャッシュすることができないため、低速になります。

※「設定ファイルに、暗号化 (blowfish_secret) 用の非公開パスフレーズの設定を必要とするようになりました。」に関してはインストール時から放置していたものなので今回は対処しません。

/var/lib/phpMyAdmin/temp ディレクトリのアクセス権を確認

[root@j1900n ~]# ls -ld /var/lib/phpMyAdmin/temp
drwxr-x--- 3 apache apache 17 8月 23 00:18 /var/lib/phpMyAdmin/temp

/var/lib/phpMyAdmin/temp ディレクトリのアクセス権の変更と確認

[root@host ~]# chown nginx. /var/lib/phpMyAdmin/temp
[root@host ~]# ls -ld /var/lib/phpMyAdmin/temp
drwxr-x--- 3 nginx nginx 17 8月 23 00:18 /var/lib/phpMyAdmin/temp

ブラウザ画面を更新してエラーメッセージが表示されないことを確認

これで「$cfg['TempDir’] (/var/lib/phpMyAdmin/temp/) にアクセスできません。」のエラーメッセージは表示されなくなりました。

もしかして、これ以外にもディレクトリやファイルのアクセス権(所有者・グループ)が変わってしまってる?

今回のバージョンアップでアクセス権が変更された可能性のあるディレクトリ及びファイルを確認

[root@host ~]# for i in `rpm -ql php.x86_64`; do ls -ld $i;done
-rw-r--r-- 1 root root 1245 9月 12 14:31 /etc/httpd/conf.d/php.conf
-rw-r--r-- 1 root root 423 9月 12 14:31 /etc/httpd/conf.modules.d/15-php.conf
-rwxr-xr-x 1 root root 5013896 9月 12 14:31 /usr/lib64/httpd/modules/libphp7-zts.so
-rwxr-xr-x 1 root root 4828368 9月 12 14:31 /usr/lib64/httpd/modules/libphp7.so
-rw-r--r-- 1 root root 2523 9月 12 14:31 /usr/share/httpd/icons/php.gif
drwxrwx--- 2 root apache 6 9月 12 14:31 /var/lib/php/opcache
drwxrwx--- 2 nginx nginx 82 10月 8 15:19 /var/lib/php/session
drwxrwx--- 2 root apache 6 9月 12 14:31 /var/lib/php/wsdlcache
[root@host ~]#

キャッシュ関係のディレクトリが軒並み所有者・グループが変更されています。

キャッシュ関係のディレクトリの所有者・グループの変更

[root@host ~]# chown nginx. /var/lib/php/opcache /var/lib/php/wsdlcache
[root@host ~]# for i in `rpm -ql php.x86_64`; do ls -ld $i;done
-rw-r--r-- 1 root root 1245 9月 12 14:31 /etc/httpd/conf.d/php.conf
-rw-r--r-- 1 root root 423 9月 12 14:31 /etc/httpd/conf.modules.d/15-php.conf
-rwxr-xr-x 1 root root 5013896 9月 12 14:31 /usr/lib64/httpd/modules/libphp7-zts.so
-rwxr-xr-x 1 root root 4828368 9月 12 14:31 /usr/lib64/httpd/modules/libphp7.so
-rw-r--r-- 1 root root 2523 9月 12 14:31 /usr/share/httpd/icons/php.gif
drwxrwx--- 2 nginx nginx 6 9月 12 14:31 /var/lib/php/opcache
drwxrwx--- 2 nginx nginx 82 10月 8 15:19 /var/lib/php/session
drwxrwx--- 2 nginx nginx 6 9月 12 14:31 /var/lib/php/wsdlcache
[root@host ~]#

※1 confファイルはapache(http)ではなくnginxを使っているため等環境では影響なし
※2 ライブラリは触ると不幸になるのでそのままにしておきます

信じるか信じないかはあなた次第です。以上