Ubuntu(18.04)のNginxを使用してphpMyAdminを利用する方法 [Virtual Box上]
環境
Windows10 home(1909)
Virtual Box 6.1.8
Ubuntu 18.04
MySQL 5.7.32
nginx 1.18.0
php 7.4
インストール
以下のコマンドを実行
$ sudo apt update
$ sudo apt install phpmyadmin
使用するWebサーバーをApacheまたはLighthttpを選択するよう求められますが、今回、Nginxを使用するのでここは何も選択しません。 「tab」を押し「OK」で次へ進みます。
データベースの管理用ユーザー(root)のパスワードを入力します。
# mysql -u root
mysql> update mysql.user set password=password('ooo') where user = 'root';
mysql> flush privileges;
mysql> exit;
私の環境では以上でインストールは完了しました。
シンボリックリンクの作成
次にNginxのドキュメントルートへ、phpmyadminのシンボリックリンクを作成します。
$ sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin
$ cat /etc/nginx/conf.d/default.conf
ブラウザでアクセスしてみる
以下のURLへアクセスしてみます。
URL: https://localhost/phpmyadmin
あれ(;^ω^)? こういう時はエラー文言を読んでいきます。
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/sessions)
ふむふむ、、/var/lib/php/sessionsのパーミッションがおかしいのかな? 読めなかったと言ってますね。
cd /var/lib/php/
$ ls -l
drwxr-xr-x 3 root root 4096 11月 9 18:18 modules
drwx-wx-wt 2 root root 4096 12月 8 19:51 sessions
これが原因かな? ちょっと乱暴ですが強引にnginxの所有に変更しちゃいます。
$ sudo chown nginx. /var/lib/php/sessions
$ ls -l
合計 8
drwxr-xr-x 3 root root 4096 11月 9 18:18 modules
drwx-wx-wt 2 nginx nginx 4096 12月 8 19:51 sessions
無事phpmyadminが表示されました♪
ちなみに私の場合はVirtual Box上の開発環境なので、ここまでの内容としておりますが、インターネット上にphpmyadminを公開する場合は、当然、更なるセキュリティ対策が必要です。