CentOS7のwwwサーバーにGUIでのMySQL管理ができるPHPツール、phpMyAdminをインストールしてみました。
phpMyAdminをCentOS7にインストールする方法。~yumインストールできない方も必見!
今回はWebサーバーとDBサーバーで別にVMを立てている環境でのインストールということで、ホストの指定、ユーザーのローカルでの名前解決、MariaDBの権限の拡張などlocalhostとは違う設定が必要でした。
まず、phpMyAdminのconfig.inc.phpですが今回はホストをIPアドレスで直接指定しました。
$cfg['Servers'][$i]['auth_type'] = 'cookie'; /* Server parameters */ $cfg['Servers'][$i]['host'] = '172.16.1.100'; $cfg['Servers'][$i]['user'] = 'root'; $cfg['Servers'][$i]['password'] = 'rootのパスワード'; $cfg['Servers'][$i]['extension'] = 'mysqli'; $cfg['Servers'][$i]['compress'] = false; $cfg['Servers'][$i]['AllowNoPassword'] = false;
つぎに、/etc/httpd/conf.d/phpMyAdmin.conf を以下のようにしました。
<Directory /usr/share/phpMyAdmin/> AddDefaultCharset UTF-8 <IfModule mod_authz_core.c> <RequireAny> Require ip 127.0.0.1 Require ip ::1 Require ip 172.16.1.0/24 </RequireAny> </IfModule> </Directory> <Directory /usr/share/phpMyAdmin/setup/> <IfModule mod_authz_core.c> <RequireAny> Require ip 127.0.0.1 Require ip ::1 Require ip 172.16.1.0/24 </RequireAny> </IfModule> </Directory>
また、BINDでwww, shop, mariaの各ホストに第2プライベートアドレスを与えて内向きzoneファイルに追記、逆引きファイル1.16.172.in-addr.arp.zoneを作成してnamed.confに追加しました。
view "internal" {
# ローカルの逆引き設定 zone "1.16.172.in-addr.arpa" { type master; allow-update { localhost; localnet; }; file "1.16.172.in-addr.arpa.zone"; };
};
経過は省きますが、参考URLにあるとおりphpMyAdminのインストールをしてみましたがエラー mysqli_real_connect(): (HY000/1045): Access denied for user ‘root’@’www.stuffy.site’ (using password: YES) パスワードが違うといわれログインできません。
試みにERROR 1045 (28000):でMySQLにrootログインできない場合の対策 にある通りmysql -u root -p でコンソールログインしてオプション–skip-grant-tablesを与えると管理画面にログインできました。
推測ですが、ユーザー権限がroot@localhost になっているためよそのVMユーザーは知らないよと言われているのかもしれないと思い、root@”%”でアクセス権限を拡張したところウェブVMからもパスワード付きでアクセスできるようになりました。
# mysql -u root -p
mysql> grant all privileges on *.* to root@"%" identified by 'rootのパスワード' with grant option; mysql> flush privileges;