CentOS8にphpMyAdminを導入する方法

投稿者: | 2020-06-17

前回はPHPをソースインストールする方法について説明しました。今回はCentOS8上にMySQLをGUIで操作することが出来るphpMyAdminを導入する方法について説明します。

実施環境

OS CentOS 8
Apache 2.4.43
PHP 7.4.7
MySQL 8.0.20

phpMyAdminとは

phpAdminはPHPベースで開発された、WebサーバからMySQLを操作を行うことができるツールです。ブラウザからSQL文の入力に加え、GUI操作でSQL文を作成できるため、MySQLの管理に便利なツールです。

Apache、PHP、MySQLのインストールについて

Apache、PHP、MySQLのインストールについては、以下のページを参照してください。

・CentOS8にApache2.4.43をソースインストールする方法

https://www.kdkwakaba.com/archives/735

・ApacheにPHP7.4.7を導入する方法

https://www.kdkwakaba.com/archives/868

・CentOS8にMySQLをインストールする方法

https://www.kdkwakaba.com/archives/718

phpMyAdminのダウンロード

初めにphpMyAdminのダウンロードをします。最新版のzipについては、以下のページの右上あたりにある「Download X.X.X」というボタンからアドレスをコピーすることができます。

・phpMyAdmin Download

https://www.phpmyadmin.net/downloads/

今回はApacheのDocumentRootが/usr/local/apache2/htdocsに設定されている想定でphpMyAdminを配置します。DocumentRootが違う場所の場合は各自の環境に合わせてください。

・phpMyAdminをDocumentRootにダウンロードし展開、リネームする
# cd /usr/local/apache2/htdocs
# wget https://files.phpmyadmin.net/phpMyAdmin/5.0.2/phpMyAdmin-5.0.2-all-languages.zip 
# unzip phpMyAdmin-5.0.2-all-languages.zip
# mv phpMyAdmin-5.0.2-all-languages phpmyadmin

・phpMyAdminのzipファイルを削除する
# rm -rf phpMyAdmin-5.0.2-all-languages.zip

phpMyAdminの設定ファイルの編集

次にphpMyAdminのログイン時に発生する以下のエラーを回避するための設定をします。


・mysqli_real_connect(): (HY000/2002): No such file or directory
・The server requested authentication method unknown to the client

1つ目がMySQLに指定されたファイルやディレクトリが無いというエラーです。2つ目が指定した認証方法がクライアント側で許可されていないというエラーです。この2つのエラーを回避するために、phpMyAdminの設定ファイルとmy.cnfの設定を行います。

ダウンロードしたphpMyAdminのフォルダ内にconfig.sample.inc.phpというPHPファイルがあるため、sampleを除外したconfig.inc.phpというファイル名にリネームします。リネーム後、phpMyAdminで使用するMySQLを指定する設定を行います。

・phpMyAdminの設定ファイルのサンプルをリネームする
# cp /usr/local/apache2/htdocs/phpmyadmin/config.sample.inc.php /usr/local/apache2/htdocs/phpmyadmin/config.inc.php 

・config.inc.phpを編集する
# vi /usr/local/apache2/htdocs/phpmyadmin/config.inc.php

■config.inc.php
-----------------------------------------------------------
/* Server parameters */
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = false;
/* サーバの接続タイプやソケットのパスを設定する */
$cfg['Servers'][$i]['connect_type'] = 'socket';
$cfg['Servers'][$i]['socket'] = '/var/lib/mysql/mysql.sock';
-----------------------------------------------------------

my.cnfの設定

config.inc.phpの設定後、MySQLの設定ファイル・my.cnfの設定をします。

・my.cnfを編集する
# vi /etc/my.cnf

■my.cnf
-----------------------------------------------------------
[mysqld]
default_authentication_plugin=mysql_native_password
-----------------------------------------------------------

設定後、MySQLを再起動します。

・MySQLを再起動する
# systemctl restart mysqld

MySQLユーザーのパスワード設定

各種ファイルの設定完了後、phpMyAdminで使用するユーザーのパスワードに「with mysql_native_password」のオプションを付与します。今回は動作確認用のためrootユーザーで行います。

・phpMyAdminで使用するユーザーのパスワードにmysql_native_passwordを付与する 
mysql> alter user root identified with mysql_native_password BY 'Evgr74Gehta'; 

動作確認

phpMyAdminで使用するユーザーの設定後、ブラウザを開きURLに「http://<サーバのIPアドレス or ドメイン>/phpmyadmin」と入力します。phpMyAdminのログイン画面が表示されれば成功です。

phpmyadmin_login

Languageで言語を設定後、先程設定したユーザー名とパスワードを入力します。言語を日本語に設定しログインした場合は下記にような画面が表示されれば成功です。