Ubuntu(18.04)のNginxを使用してphpMyAdminを利用する方法 [Virtual Box上]

Web開発

以下、自分用の備忘録( ..)φメモメモですが公開します。

環境

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)のパスワードを入力します。

■TIPS■
たしかMySQLはインストールした直後の状態ではパスワードが未設定のはずです。その場合、以下の方法でパスワードを設定しておきます。

# 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
■TIPS■
Nginxのドキュメントルートは以下のファイルに記載されています。

$ cat /etc/nginx/conf.d/default.conf

ブラウザでアクセスしてみる

以下のURLへアクセスしてみます。

URL: https://localhost/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/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を公開する場合は、当然、更なるセキュリティ対策が必要です。

Print Friendly, PDF & Email