インストール: phpMyAdmin | MySQL/MariaDBの定番管理Webアプリケーション

MySQL/MariaDBの管理をGUIで行えるphpMyAdminをソースコードからインストールする。

MySQL/MariaDBのDBの閲覧や操作はコマンドラインからも行えるのだが,SQLをその都度発行する必要があり,少々とっつきにくい。phpMyAdminはこれらのDBをGUIで操作できるWebアプリケーションとなっている。

MySQLのGUIにはMySQL workbenchもあるが,phpMyAdminは古くから広く使われており,馴染み深いので今回はDBの操作のためにインストールした。

手順

インストール情報
項目説明
配布元phpMyAdmin
リポジトリーphpmyadmin/phpmyadmin: A web interface for MySQL and MariaDB
手順
依存情報Requirements — phpMyAdmin 5.1.0-dev documentation
依存先 (必須)
依存先 (任意)PHP module: mbstring, zip, bzip2, gd2, openssl, apc, libxml, curl
composer, yarn
依存元
インストールコマンド
sh -eux <<-"EOT"
PKG=phpmyadmin VER=5.0.2 TAG=RELEASE_$(echo $VER | sed 's/\./_/g') PKG_VER=$PKG${VER:+-$VER}
LOCAL=~/.local
mkdir -p "$LOCAL/var/www/html"
cd "$LOCAL/var/www/html"

if command -v git >/dev/null; then
  [ -e $PKG ] || git clone --depth 1 https://github.com/phpmyadmin/phpmyadmin $PKG
  cd $PKG
git fetch --depth 1 ${TAG:+origin tag $TAG} git checkout -f ${TAG:-master}
git clean -dfX composer update --no-dev yarn install
else [ -e phpMyAdmin-$VER* ] || wget https://files.phpmyadmin.net/phpMyAdmin/$VER/phpMyAdmin-$VER-all-languages.tar.xz tar -xf phpMyAdmin-$VER*z cd phpMyAdmin-$VER* fi EOT
インストール例
日付バージョンOS依存関係
2020-04-225.0.2Ubuntu 18.04PHP 7.3.3, Apache HTTP Server 2.4.39, MariaDB 10.2.23

phpMyAdminはWebアプリケーションなので,Apache HTTP Serverのドキュメントルート ($HOME/.local/var/www/html)にインストールした。

ソースコードからのインストールが手間だったので,yarnは以下のコマンドでAPTでインストールした (Installation | Yarn)。

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt update && sudo apt install yarn

設定

初回ログインには設定が必要な場合があるので,設定方法を記す。

まず,Apache HTTP ServerとMariaDBを以下のコマンドで起動する。

apachectl
mysqld_safe &

その後,http://localhost:8080/phpmyadmin/にWebブラウザーでアクセスする。

ログイン画面が表示される。ここでは,MySQLのユーザー名とパスワードを入力してログインする。例えば,[Username] に [root] とだけ入力して [Go] を選択してみる。

デフォルト設定の状態だと,以下の画面が表示されてログインに失敗する。

mysqli::real_connect(): (HY000/2002): No such file or directory

このエラーは「phpMyAdmin でNo such file or directoryエラーへの対処」でも記されている通り,phpMyAdminの設定ファイルのconfig.inc.phpで,以下のようにmy.cnf (例: $HOME/.local/mysql/my.cnf) で指定しているsocketファイルを指定する必要がある。

$cfg['Servers'][$i]['socket'] = '/home/senooken/.local/var/lib/mysql/mysql.sock';

この他に,ポート番号などが異なっている場合,設定が必要なのでまとめて設定方法を記す。

phpMyAdminの設定ファイルはconfig.in.phpだ。「Installation — phpMyAdmin 5.1.0-dev documentation」やconfig.inc.sample.phpを参考に,config.inc.phpを手動で作成する。その他,http://localhost:8080/phpmyadmin/setup/にアクセスすることで,セットアップツールで生成することもできる。

セットアップツールでの作成方法を説明する。まず,http://localhost:8080/phpmyadmin/setup/にWebブラウザーでアクセスする。

PHPのモジュール不足に起因する警告が出ているが,最低限の動作には不要なので今回は無視する。

画面真ん中の [Servers]>[New server] を選択して,サーバーの設定を行う。

こちらで,必要に応じてServer portやServer socketを指定できる。

何も記入せずに,[Apply] を選択すると,以下のようにサーバーの情報が登録される。

この状態で [Download] を選択すると,以下の内容のconfig.inc.phpをダウンロードできる。

デフォルト設定のconfig.inc.php
<?php
/*
 * Generated configuration file
 * Generated by: phpMyAdmin 5.0.2 setup script
 * Date: Wed, 22 Apr 2020 07:53:28 +0000
 */

/* Servers configuration */
$i = 0;

/* Server: localhost [1] */
$i++;
$cfg['Servers'][$i]['verbose'] = '';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = '';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';

/* End of servers configuration */

$cfg['DefaultLang'] = 'en';
$cfg['ServerDefault'] = 1;
$cfg['blowfish_secret'] = 'ay_7qmtg!g|;_$20)-oFB%Z7!9`XYJ=K';
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';
?>

このファイルを雛形に,必要な情報を記入してもよい。例えば,ログインするために以下のように記入する。

ログイン用config.inc.php
<?php
/*
 * Generated configuration file
 * Generated by: phpMyAdmin 5.0.2 setup script
 * Date: Fri, 10 Apr 2020 12:35:42 +0000
 */

/* Servers configuration */
$i = 0;

/* Server: localhost [1] */
$i++;
$cfg['Servers'][$i]['verbose'] = '';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = 3406;
$cfg['Servers'][$i]['socket'] = '/home/senooken/.local/var/lib/mysql/mysql.sock';
$cfg['Servers'][$i]['compress'] = true;
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';
$cfg['Servers'][$i]['AllowNoPassword'] = true;

/* End of servers configuration */ $cfg['DefaultLang'] = 'en'; $cfg['ServerDefault'] = 1; $cfg['blowfish_secret'] = 'ay_7qmtg!g|;_$20)-oFB%Z7!9`XYJ=K'; $cfg['UploadDir'] = ''; $cfg['SaveDir'] = ''; ?>

ポート番号と,ソケットファイルの場所,おまけで通信の圧縮とログイン時のパスワードの省略を有効にした。

このconfig.inc.phpをphpMyAdminのルートディレクトリー直下 (例: $HOME/.local/var/www/html/phpmyadmin/) に配置して,ログイン (ユーザー名root,パスワードなし) を試みると,以下のようにうまくログインできる。

なお,セットアップスクリプトからダウンロードしたconfig.inc.phpでは問題ないが,手動で作成した場合,http://localhost:8080/phpmyadmin/へのアクセス時に以下のエラーガ表示されることがある。

Wrong permissions on configuration file, should not be world writable!

config.inc.phpにその他のユーザーに書き込み権限があると,上記のエラーが出るので,以下のコマンドで書き込み権限を外しておく。

chmod o-w config.inc.php

これでphpMyAdminの初期設定は完了となる。他にも設定項目はあるが,残りは必要に応じて設定すればよいだろう。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です