phpMyAdminはPHPで実装されたデータベース接続クライアントツールである。ウェブブラウザからのアクセスでデータベースを表計算ソフトに近い操作ができるので便利である。主にMySQLを対象としたツールであり、任意のSQL文を発行することができる。
実装は主にphpファイルなどであり、phpMyAdminにサービスプロセスなどはない。NginxやApacheなどのウェブエンジン、MySQLなどのデータベースとPHPを連携させながら動作する。LinuxMintで、Nginx(Nginxの場合はphp-fpmも必要)とMySQLを動作させながら使用するものとして解説する。バージョンの違いなどは適宜読み替えてほしい。
インストール前にMySQLとPHPのインストールを済ませておく。その両方のサービスを起動しておく。sudo systemctl start mysqlとすればMySQLが起動する。
sudo apt install phpmyadminコマンドでインストールする。/usr/share/phpmyadminディレクトリと/etc/phpmyadminディレクトリが作成されて、その中にファイルなどがあればインストールは成功だろう。ただ、インストール中にはいくつかエラーが出るようである。もしアンインストールしたい場合や、他のインストール操作に支障が出るようなら以下のいくつかのコマンドを実行しよう。
sudo apt-get remove phpmyadmin
sudo apt-get purge phpmyadmin
sudo apt-get -f install
sudo apt autoremove
rm -r /var/lib/dpkg/info/phpmyadmin.*
ちなみにpurgeとは英単語としては「粛清する」という意味がある。
LinuxMintでは「ソフトウェアの管理」からもインストールできるようであるが、私がインストールしたときは最後の方でエラーが出るようである。それでも実行やアップグレードできるかもしれない。
パッケージ情報を確認するコマンドはapt-cache show phpmyadminである。
$ apt-cache show phpmyadmin
Package: phpmyadmin
Architecture: all
Version: 4:4.6.6-5
Priority: extra
Section: universe/web
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Thijs Kinkhorst <thijs@debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 24436
Depends: php, php-cli, php-mysql | php-mysqli, php-json, php-mbstring, php-xml, perl, debconf (>= 0.5) | debconf-2.0, libjs-sphinxdoc (>= 1.0), dbconfig-mysql | dbconfig-no-thanks | dbconfig-common (<< 2.0.0), php-php-gettext | php-gettext (<= 1:7.0), php-phpseclib (>= 2.0), ucf (>= 0.28)
Recommends: apache2 | lighttpd | httpd, php-curl, php-gd, php-bz2, php-zip, php-tcpdf
Suggests: default-mysql-server | virtual-mysql-server, www-browser
Filename: pool/universe/p/phpmyadmin/phpmyadmin_4.6.6-5_all.deb
Size: 3860768
MD5sum: 7051c7dcc9303f6967e5bb5aaa5dc14a
SHA1: 7b71c516e13c9b6b71cbc23fb33e3930a1acd62c
SHA256: a244bed56aa3ad7656494c195bfdc1db74750a3db03953b3c96901c0877e9e15
Homepage: https://www.phpmyadmin.net/
(以下略)
「Version: 4:4.6.6-5」とあるが、これはバージョンが 4.6.6 deb 5 らしく、つまり4.6.6である。
/usr/share/phpmyadmin/sql/create_tables.sqlを編集し、ユーザー登録をphpMyAdminのユーザ登録を行う。
-- (activate this statement if necessary)
-- GRANT SELECT, INSERT, DELETE, UPDATE, ALTER ON `phpmyadmin`.* TO
-- 'pma'@localhost;
上の3行の部分を下のように変更する。
-- (activate this statement if necessary)
GRANT SELECT, INSERT, DELETE, UPDATE, ALTER ON `phpmyadmin`.* TO
'cpage'@localhost;
cpageのところがphpMyAdminを使用するユーザ名である。
create_tables.sqlを実行するため端末でコマンド操作を行う。太字の部分が入力である。
$ mysql -u cpage -p
Enter password: (パスワード)
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.30-0ubuntu0.18.04.1 (Ubuntu)
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> source /usr/share/phpmyadmin/sql/create_tables.sql
Query OK, 1 row affected (0.00 sec)
Database changed
ERROR 1044 (42000): Access denied for user 'cpage'@'localhost' to database 'phpmyadmin'
Query OK, 0 rows affected (0.25 sec)
(略)
Query OK, 0 rows affected (0.43 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
php.iniの変更
また、/etc/php/7.2/fpm/php.iniファイルを以下のように変更する。
; http://php.net/session.save-path
session.save_path = "/var/lib/php/sessions"
sudo chown -R root.nginx /var/lib/php/session
/etc/nginx/conf.d/default.confの編集を行う。「server {」と「}」の間に以下を追加する。
location /phpmyadmin {
root /usr/share;
index index.php;
location ~ .php$ {
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include fastcgi_params;
}
}
pypmyadminはすべて小文字にしてある。URIは大文字小文字を区別しないようだが、内部パスは大文字小文字を区別する。つまり、内部パスはすべて小文字なので大文字があるとエラーが発生する。紛らわしいのですべて小文字にしている。
また、index.phpにアクセスしたとき、$fastcgi_script_nameは「phpmyadmin/index.php」になる。したがって、「root /usr/share;」であり、「root /usr/share/phpmyadmin」ではない。
default.confを上書きしたら、sudo systemctl restart nginx コマンドで設定を反映する。
設定が終わったらブラウザからアクセスしよう。ウェブブラウザからは「http://localhost/phpmyadmin」、「http://localhost/phpmyadmin/」および「http://localhost/phpmyadmin/index.php」からアクセスできる。