Hyper-VでUbuntuServer⑤(phpMyAdmin導入)

データベース「MySQL」の管理には

LAMP環境のデータベース「MySQL」ですが、管理をコンソールからコマンドで行うのは何かと面倒ですので、GUI(Graphical User Interface)を使用した管理ツールの導入が必要となります。

ここでは、phpベースで、ウェブブラウザ経由で管理を行う事が出来るツール「phpMyAdmin」を導入してみようと思います。

「phpMyAdmin」は、各社のレンタルサーバーでも使用されている、定番ツールの様です。

「phpMyAdmin」を入手する

他のPC(ここでは、Windows 11 のPC)から、「phpMyAdmin」を入手します。

入手先はこちら。

https://www.phpmyadmin.net/

※ 以下は、Edgeブラウザの画面です。

「Bringing MySQL to the web」のページが開いたら、

画面右上の「Download 5.2.1」のボタンをマウス左クリック

※現在は、5.2.1ですが、バージョンアップ等で、異なる場合もあります。


「Thank you for downloading phpMyAdmin」の画面が表示され

ダウンロードが開始


ダウンロードが終了したら、

確認の為、右上のフォルダアイコンをクリック


ダウンロードフォルダに、ファイルがダウンロードされています。


ブラウザのウィンドウに戻り、(ダウンロードフォルダのウィンドウは、後程操作しますので、閉じなくて良いです。)

「Thank you for downloading phpMyAdmin」の画面は、

寄付のお願いが書かれておりますが...「close」をマウス左クリック(ゴメンナサイ)

(勿論、寄付を考えても良いと思います)

ブラウザのウィンドウを閉じます。

ダウンロードしたファイル「phpMyAdmin-5.2.1-all-languages」は、

ZIP圧縮ファイルですので、解凍しておきます。

ここでは、Webサーバーへのアップロード用に、下記のフォルダを作成し、ここに解凍します。

c:¥work

ダウンロードしたファイル「phpMyAdmin-5.2.1-all-languages」をマウス右クリック

表示メニューから「すべて展開」を選択


「展開先の選択とファイルの展開」画面に遷移

「ファイルを下のフォルダーに展開する」欄に、

「c:¥work」を設定し、

「展開」ボタンをマウス左クリック

「work」フォルダーが存在しない(未作成の)場合は、自動作成されます。
事前に、準備する必要はありません。


ファイルが展開(少し時間が掛かります)

フォルダ「phpMyAdmin-5.2.1-all-languages」が作成され、展開処理が終了

内容を確認(フォルダの中に多数ファイルがあればOK程度)し、ウィンドウを閉じる

導入準備

ここからは、Ubuntuサーバーでの操作です。

「phpMyAdmin」を導入する前に、phpに、下記のモジュールの追加が必要の様です。

mbstring
zip
GD2
openssl
libxml
curl
 ※使い方によっては使用しない物もあるのかも知れませんが、念の為、全て追加します。

詳細はこちら https://docs.phpmyadmin.net/ja/latest/require.html

現在のUbuntuサーバーのphpモジュールの状況は、以下コマンドで確認出来ます。

php -m

「libxml」と「openssl」は、最初から入っている様ですので、

ここでは、残りのモジュールをインストールします。

インストールは、以下のコマンドを使用します。

sudo apt install php-mbstring php-zip php-gd php-curl


コマンド「sudo apt install php-mbstring php-zip php-gd php-curl」を入力し、

「Enter」キーを押す


インストールの準備処理が動き、処理を続けて良いかの確認応答待ちとなるので、

「y」を入力し、「Enter」キーを押す


インストール処理が進み


サービスの再起動の確認画面が出たら、

「Tab」キーで、「OK」を選択し、

「Enter」キーを押す

操作のタイミングによっては、出ない時もあります。その時は、プロンプトを表示し、終了します。


各再起動を行い、

プロンプトを表示し、終了


コマンド「php -m」を入力し、「Enter」キーを押すと、

インストールされた事が、確認出来ます。


次に、PHPからMySQLを操作する拡張機能の有効化を行います。

対象ファイルをviエディタで開きます。

sudo vi /etc/php/8.1/apache2/php.ini

該当行の先頭のコメント";"(セミコロン)を外します。

extension=mysqli  ← 930行

セーブして終了します。

:wq
[Enter]

930行まで「↓」カーソルキーで進めるのが面倒な時は、以下で検索が可能です。
   /;extension=mysqli
「/」スラッシュキーを押すと、検索モードになりますので、
続けて文字列「;extension=mysqli」を入力し、「Enter」キーを押す

編集後、サービスの有効化&再起動を行います。

sudo service apache2 restart


以下、実画面での操作の流れです。

対象ファイル「/etc/php/8.1/apache2/php.ini」を viエディタ で開きます

コマンド「sudo vi /etc/php/8.1/apache2/php.ini」を入力し、「Enter」キーを押す


viエディタにて、対象ファイル「php.ini」を表示後、

下向きカーソルキー「↓」にて、該当行まで進めるか、

検索モードで該当文字列「;extension=mysqli」を検索します。

以下、検索モードの操作です。


「/」スラッシュを入力すると、最下行に「/」を表示、

続けて検索文字列「;extension=mysqli」を入力すると、

画面に、検索された該当文字列が表示される(オレンジ枠部分)ので、確認し、

「Enter」キーで確定


先頭の「;」(セミコロン)を削除する

930行目:;extension=mysqli


セーブして終了します。

:wq を入力
[Enter]キーを押す


ファイルがセーブされ、

プロンプトを表示して終了


編集後、サービスの自動起動有効化&再起動を行います。

コマンド「sudo service apache2 restart」を入力し、「Enter」キーを押す


準備の最後に、Webのルートディレクトリのパーミッションを見直します。

作業中は、パーミッションによる予期せぬ中断を回避する為、誰でも何でも可能とする

「777」を ルートディレクトリ「/var/www/html」 に設定します。

経緯については、こちら
 「Hyper-VでUbuntuServer④(FTPサーバー構築)/Webのルートディレクトリ /var/www/html ですが...

「/var/www/html」が 777 に設定されていない場合は、Ubuntuサーバーのコンソールより下記コマンドで設定します。

sudo chmod 777 /var/www/html

※ 「/var/www/html」配下すべてのディレクトリ/ファイル対象とする時は、「-R」を付ける

sudo chmod 777 -R /var/www/html

コマンド「sudo chmod 777 /var/www/html」を入力し、「Enter」キーを押す

「phpMyAdmin」アップロードの準備

「phpMyAdmin」を Webルートディレクトリ「/var/www/html」にアップロードすると、運用に支障が出ますので、

Webルートディレクトリにサブディレクトリを作成し、そこにアップロードします。

サブディレクトリは、ここでは「pma」とします。

作成は、Ubuntuサーバーのコンソールから下記コマンドで出来ますが、

sudo mkdir /var/www/html/pma      ← ディレクトリ作成
sudo chmod 777 /var/www/html/pma  ← パーミッション変更

ここでは、ディレクトリ作成からアップロード迄「FFFTP」を使用してみます。


PCより、FFFTPを起動し、

Ubuntuサーバー(vsv001)に接続


サーバー側(画面右側)のディレクトリパスが、/var/www/html となっている事を確認

画面右側の空いた場所で、マウス右クリックでメニューを表示し、

「フォルダ作成」を選択


名前に「pma」を入力し、

「OK」ボタンをマウス左クリック


ディレクトリ「pma」が作成される

所有者:1000 = admin001、属性:rwx------ = 700

となっているので、属性(パーミッション)を変更する


ディレクトリ「pma」をマウス右クリック

表示メニューから「属性変更」を選択


「属性の変更」サブウィンドウが開く

「現在の属性」に「777」を設定

「OK」ボタンをマウス左クリック


ディレクトリ「pma」の属性が

「rwxrwxrwx」=「777」に変更された事を確認

※ 今のところは所有者は何でも良い


「phpMyAdmin」のアップロード

次に、ダウンロードした「phpMyAdmin」のファイルのアップロードを行います。

まず、アップロード元/先 両方のディレクトリ(フォルダ)を一段下層に進めます。

元 : c:¥work¥phpMyAdmin-5.2.0-all-languages (解凍したフォルダ)
先 : /var/www/html/pma (作成したディレクトリ)


ここで、念の為に、アップロード時のフォルダ/ファイルのパーミッションを確認します。

「オプション」-「環境設定」を選択


開いた「オプション」サブウィンドウの

属性が、「777」 になっている事を確認し、「キャンセル」をマウス左クリック

「777」でない場合は修正し、「OK」をマウス左クリック


準備は終わりましたので、アップロードを行います。

アップロード元のディレクトリ/ファイル(どこでもOK)をマウス右クリック

表示されたメニューから「全てをアップロード」を選択


アップロードが始まります。

※ ファイル数が多く(4000以上)時間が掛かります。


アップロードが終了

FFFTPを終了します。(後程操作がありますので開いたままでも良い)

FFFTPのデフォルト(初期設定)では、今回の様に、サーバー側の隠しファイル(先頭に「.」ドットのファイル)が表示されない事があるようです。

上の画面では、「.rtlcssrc.json」(黄色枠のファイル)が、サーバー側(右側)に表示されていない

表示したい場合は、「接続」を選択し、「ホスト一覧」を表示
該当ホストの「設定変更」をマウス左クリック
「ホストの設定」の「高度」タブ を選択
「LISTコマンドでファイル一覧を取得」の「✔」を外す
「OK」をマウス左クリック

再度「接続」すると、表示されるようになります。


「phpMyAdmin」アップロード後の確認とメッセージ対応

アップロードが無事終わったら、ブラウザ(ここでは Edge)で確認します。

接続先:http://192.168.100.1/pma

ログインユーザ名/パスワードは、

Hyper-VでUbuntuServer③(LAMP環境構築)」のMySQL動作確認時作成したものです。

ユーザ名 :db_admin
パスワード:pass0001

「ログイン」ボタンをマウス左クリック


ログイン出来ましたら、画面下方に、メッセージが出ていないか確認します。

※ 画面の大きさにより、表示状況が変わりますが、画面が狭い場合は、下方へスクロールします


メッセージが二つ出ていますので、これに対応します。

① クッキーの暗号化のために、構成ファイルに有効なキーが必要です。
② phpMyAdmin環境保管領域が完全に設定されていないため、いくつかの拡張機能が無効になっています。


①の対応は、config.inc.php ファイルの作成で行います。

手順は、

・ダウンロード解凍した、フォルダ「 c:¥work¥phpMyAdmin-5.2.0-all-languages」の中の、
 「config.sample.inc.php」を修正し、「config.inc.php」の名称で保存
・保存した「config.inc.php」を サーバーディレクトリ /var/www/pma にアップロード

となります。

ここでは、FFFTPにて、操作します。

FFFTPを起動し、下記、ディレクトリ(フォルダ)を表示

元 : c:¥work¥phpMyAdmin-5.2.0-all-languages (解凍したフォルダ)
先 : /var/www/html/pma (作成したディレクトリ)


アップロード元より、

「config.sample.inc.php」ファイルをマウス右クリック

表示メニューより、「notepadで開く」を選択


開いたファイルの

$cfg['blowfish_secret'] = '' の「’’」アポストロフィの間に、

32バイトのランダムな文字列を入力(適当な半角英数32文字で良い様)


修正後、別名「config.inc.php」で保存します。

「ファイル」メニューから

「名前を付けて保存」を選択


ファイル名/ファイルの種類を設定し、

ファイル名  :config.inc.php
ファイルの種類:すべてのファイル(テキストドキュメント(*.txt) から変更)

「保存」ボタンをマウス左クリック


ファイルが作成されます。

続けて、アップロードを行います。


ファイル「config.inc.php」で、マウス右クリック

表示メニューの「アップロード」を選択


ファイル「config.inc.php」がアップロードされます。

ここで、アップロードされた、「config.inc.php」ファイルのパーミッションですが、

FFFTPの環境設定の通り、「rwxrwxrwx」=「777」となっていますが、

このままでは、phpMyAdminを起動すると、セキュリティチェックがかかり、

以下のエラーとなりますので、パーミッションを「rw-r--r--」=「644」に変更します。


アップロードした「config.inc.php」ファイルをマウス右クリック

表示メニューの「属性変更」を選択


「属性の変更」サブウィンドウが開く

「現在の属性」を「644」に変更し、

「OK」ボタンをマウス左クリック

 


属性が変更されました。

以上で ① のメッセージの対応が終わりましたので、「phpMyAdmin」を起動し確認します。


「ログイン」し、

下方のメッセージ ①

「クッキーの暗号化のために、構成ファイルに有効なキーが必要です。」

が消えている事が確認出来ます。

次に、

メッセージ② phpMyAdmin環境保管領域が完全に設定されていないため、いくつかの拡張機能が無効になっています。

の対応です。

②の対応は、MySQLへの関連テーブルの作成となります。

手順は、

ダウンロード解凍した、フォルダ「 c:¥work¥phpMyAdmin-5.2.0-all-languages/sql」の中の、
SQLファイル「create_tables.sql」を読込み実行
となります。

操作は、「phpMyAdmin」で行います。


「phpMyAdmin」画面の「インポート」タブをマウス左クリック

「ファイルの選択」ボタンをマウス左クリック


「開く」サブウィンドウが表示

ダウンロード解凍した、フォルダ「 c:¥work¥phpMyAdmin-5.2.0-all-languages¥sql」の中の、

ファイル「create_tables.sql」を選択

「開く」ボタンをマウス左クリック


選択した「create_tables.sql」が設定

「インポート」ボタンが出るまで、下方に画面スクロール


「インポート」ボタンをマウス左クリック


SQLが実行され、

テーブル群「phpmyadmin」が作成されます。


ここで、確認の為、一旦ブラウザを終了し、再ログイン

下方のメッセージ ②

「 phpMyAdmin環境保管領域が完全に設定されていないため、いくつかの拡張機能が無効になっています。」

が消えている事が確認出来ます。

以上で、導入作業は終了です。


「phpMyAdmin」の運用をしばらく行い、問題がない事が確認出来ましたら、

パーミッションの見直しの検討が必要かと思います。

取り合えず、ディレクトリ「/ver/www/html/pma/」と、その配下の

・全ディレクトリ/ファイルのOwnerは「www-data」とする

sudo chown -R www-data:www-data /var/www/html/pma

・全ディレクトリ「775」とする

find /var/www/html/pma -type d | xargs sudo chmod 775

・全ファイル「664」とする

find /var/www/html/pma -type f | xargs sudo chmod 664

※ 先程、644とした「config.inc.php」ファイルですが、664としても問題無く動く様です。
 (何故かはよくわからず。。。)

で、良いかと。

:コマンド実行前に、「www-data」グループに「admin001」が入っている事
  sudo usermod -aG www-data admin001


作成 : 2023/06/19

環境 : OS Windows 11 Pro バージョン 22H2 「Hyper-V使用」
     Ubuntu Server バージョン 22.04.2 LTS
     FFFTP バージョン 5.8 (64bit)
     phpMyAdmin バージョン 5.2.1

Top