インストール: 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-22 | 5.0.2 | Ubuntu 18.04 | PHP 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の初期設定は完了となる。他にも設定項目はあるが,残りは必要に応じて設定すればよいだろう。