Ubuntu20にphpMyAdminをインストールしたい!
概要
この記事では、Ubuntu20にphpMyAdminをインストールする手順を掲載する。
DBでごにょごにょするのにGUIがあると楽です。というか、ないと辛い。
CentOS7版は書きを参照して下さい。
仕様書
環境
- Ubuntu 20.04 LTS
- MariaDB 15.1
- PHP 8.0.19
- phpMyAdmin 5.1.3
手順書
MySQL(MariaDB)を導入する
- phpMyAdminに対応してるバージョンのMySQLをインストールする。phpMyAdmin 5.1.*では、MySQL 5.5以上に対応してる。今回はMariaDB 15.1をインストールした。MariaDBをインストール手順については、下記の記事を参照して下さい。
PHPと必要な拡張を導入する
- phpMyAdminに対応してるバージョンのPHPをインストールする。phpMyAdmin 5.1.*では、PHP 7.1以上に対応してる。PHPをインストール手順については、下記の記事を参照して下さい。
- phpMyAdminに必要なPHPの拡張をインストールする。
sudo apt install php8.0-mbstring php8.0-mysqli
phpMyAdminを導入する
- phpMyAdminの公式サイトからphpMyAdminをダウンロードする。
- zipを解答して、中身をサーバーにアップロードする。(例として、ドキュメントルートが
\var\www\html\
、phpMyAdminのアップロード先が\var\www\html\phpmyadmin\
として話を進める) - サイトのアップロードしたディレクトリにアクセスしてphpMyAdminのログイン画面が表示されれば、導入完了。取りあえず使える状態になった。
設定ファイルにパスフレーズを設定する
phpMyAdminにログインすると、「設定ファイルに、暗号化(blowfish_secret)用の非公開パスフレーズの設定を必要とするようになりました。」という警告が表示されてる。セキュリティ的にも対応すべし。
\var\www\html\phpmyadmin\
にあるconfig.sample.inc.php
をconfig.inc.php
にリネームする。config.inc.php
を開き、下記にパスフレーズを32文字以上で入力する。こちらのようなランダムな文字列を生成してくれるサービスを使うのがオススメ。$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
設定後は下記のような感じ。
$cfg['blowfish_secret'] = 'IAi2bNVZjb2JuRvIC42AwsMPBIQv520Wpd9LWdXJHcUTJB1Qo1SYimCgnWCDhk2R'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
- ファイルを保存し、phpMyAdminにログインすると該当の警告が消えてる。(まだ別の警告が残ってるので次節で対応する)
TempDirへの権限を設定する
「$cfg[
TempDir](/var/www/html/phpmyadmin/tmp/)
にアクセスできません。phpMyAdminはテンプレートをキャッシュすることができないため、低速になります。」という警告が表示されてる。低速を回避するために設定するべし。
- シェルで下記のコマンドを実行して、apacheがtmpにアクセスできるよう権限を設定する。
chown -R www-data:www-data /var/www/html/phpmyadmin/tmp
- phpMyAdminにログインすると該当の警告が消えてる。
環境保管領域を設定する
「phpMyAdmin環境保管領域が完全に設定されていないため、いくつかの拡張機能が無効になっています。理由についてはこちらをご覧ください。代わりにデータベースの操作タブを使って設定することもできます。」という警告が表示されてる。これは、必須ではないような感じ。
- phpMyAdmin上で「インポート」タブを開く・
- 「アップロードファイル」からphpMyAdminのzipの中に含まれてる
sql\create_tables.sql
を選択する。 - 「実行」をクリックする。「インポートは正常に完了しました。」と表示されればOKだ。
\var\www\html\phpmyadmin\config.inc.php
を開き、下記のコメントを解除する。/* Storage database and tables */ // $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin'; // $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark'; // $cfg['Servers'][$i]['relation'] = 'pma__relation'; // $cfg['Servers'][$i]['table_info'] = 'pma__table_info'; // $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords'; // $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages'; // $cfg['Servers'][$i]['column_info'] = 'pma__column_info'; // $cfg['Servers'][$i]['history'] = 'pma__history'; // $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs'; // $cfg['Servers'][$i]['tracking'] = 'pma__tracking'; // $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig'; // $cfg['Servers'][$i]['recent'] = 'pma__recent'; // $cfg['Servers'][$i]['favorite'] = 'pma__favorite'; // $cfg['Servers'][$i]['users'] = 'pma__users'; // $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups'; // $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding'; // $cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches'; // $cfg['Servers'][$i]['central_columns'] = 'pma__central_columns'; // $cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings'; // $cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';
コメントを解除すると下記のような感じ。
/* Storage database and tables */ $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin'; $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark'; $cfg['Servers'][$i]['relation'] = 'pma__relation'; $cfg['Servers'][$i]['table_info'] = 'pma__table_info'; $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords'; $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages'; $cfg['Servers'][$i]['column_info'] = 'pma__column_info'; $cfg['Servers'][$i]['history'] = 'pma__history'; $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs'; $cfg['Servers'][$i]['tracking'] = 'pma__tracking'; $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig'; $cfg['Servers'][$i]['recent'] = 'pma__recent'; $cfg['Servers'][$i]['favorite'] = 'pma__favorite'; $cfg['Servers'][$i]['users'] = 'pma__users'; $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups'; $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding'; $cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches'; $cfg['Servers'][$i]['central_columns'] = 'pma__central_columns'; $cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings'; $cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';
- ファイルを保存する。
- phpMyAdminにログインすると該当の警告が消えてる。
まとめ(感想文)
テスト環境なんかでDBをごにょごにょするのに便利かもね!
もうGUIがないとDBを触れない体になってしまった今日この頃。