こんにちは!ガジェットぴろぐです。
今回は、先日 MySQL 上に記録されているテーブルを確認しようとウェブサーバー上に phpMyAdmin をコピーし、ページを開いた所エラーも何も表示されず phpMyAdmin が真っ白で開けない問題に遭遇し、解決までの手順を発見したため、記録として残します。
結論から言うとセッション内容を記録するフォルダの権限設定が適切に設定されていないだけでした。
サーバー環境
当方で使用しているサーバーは以下の通りでした。
・CentOS 7.9
・nginx 1.22.0
・remi リポジトリからインストールした php7.4 (php74-php-fpm)
php バージョンに関しては、php7.2、php7.4、php8.0 と3つのバージョンで表示確認を行いましたが、全てで phpMyAdmin が開けなかったため、remi リポジトリからインストールした php-fpm を使用している場合、今回の手順で解決する可能性が高いかと思います。
nginx 設定
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
至って普通の nginx から PHP を使用するための設定だと思います。
remi リポジトリからインストールした php の UNIX ソケットホスト先の変更については、こちらのページでまとめておりますので、参考までにどうぞ。
解決までの手順
phpMyAdmin では、ログイン情報保持のため、php session を使用していますが、remi リポジトリからインストールした php では、session フォルダの権限設定が適切に設定されておらず、php 側からセッションを開始し、データの保存ができない状態であることがわかりました。(または、nginx から接続を許可する際、待ち受けユーザーの設定を変更した場合に起こりうる問題かと思います。)
そのため、セッションファイルが保存されるフォルダを php 側から書き込めるようにするだけで解決しました。
# chown nginx /var/opt/remi/php74/lib/php/session
※ php74-php-fpm の場合
chown コマンドを使用し、セッションフォルダとなる場所を nginx ユーザーが書き込めるよう変更しました。
設定によっては www-data や、~ ディレクトリユーザーとなる場合があります。
コメント