phpMyAdminをインストールしてみた

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;

同じカテゴリーの記事

コメントを残す

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