Hyper-VでUbuntuServer⑤(phpMyAdmin導入)
データベース「MySQL」の管理には
LAMP環境のデータベース「MySQL」ですが、管理をコンソールからコマンドで行うのは何かと面倒ですので、GUI(Graphical User Interface)を使用した管理ツールの導入が必要となります。
ここでは、phpベースで、ウェブブラウザ経由で管理を行う事が出来るツール「phpMyAdmin」を導入してみようと思います。
「phpMyAdmin」は、各社のレンタルサーバーでも使用されている、定番ツールの様です。
「phpMyAdmin」を入手する
他のPC(ここでは、Windows 11 のPC)から、「phpMyAdmin」を入手します。
入手先はこちら。
※ 以下は、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