CentOS 7 phpMyAdminインストール

phpMyAdminは標準のリポジトリには入っていないのでEPELリポジトリを追加しておく。
■ phpMyAdminインストール

[root@server1 ~]# yum install phpmyadmin
Loaded plugins: fastestmirror, priorities, refresh-packagekit
Loading mirror speeds from cached hostfile
epel/metalink                                                                | 5.0 kB     00:00
* base: www.ftp.ne.jp
* centosplus: www.ftp.ne.jp
* epel: ftp.jaist.ac.jp
* extras: www.ftp.ne.jp
* rpmforge: ftp.riken.jp
* updates: www.ftp.ne.jp
117 packages excluded due to repository priority protections
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package phpMyAdmin.noarch 0:4.2.7.1-1.el7 will be installed
--> Processing Dependency: php-php-gettext for package: phpMyAdmin-4.2.7.1-1.el7.noarch
--> Running transaction check
---> Package php-php-gettext.noarch 0:1.0.11-10.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
====================================================================================================
Package                     Arch               Version                      Repository        Size
====================================================================================================
Installing:
phpMyAdmin                  noarch             4.2.7.1-1.el7                epel               20 M
Installing for dependencies:
php-php-gettext             noarch             1.0.11-10.el7                 epel              57 k
Transaction Summary
====================================================================================================
Install       2 Package(s)
Total download size: 4.3 M
Installed size: 17 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): php-php-gettext-1.0.11-10.el7.noarch.rpm                               |  57 kB     00:00
(2/2): phpMyAdmin-4.2.7.1-1.el7.noarch.rpm                                   | 20 MB     00:00
----------------------------------------------------------------------------------------------------
Total                                                               5.1 MB/s | 4.3 MB     00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : php-php-gettext-1.0.11-10.el7.noarch                                              1/2
Installing : phpMyAdmin-4.2.7.1-1.el7.noarch                                                  2/2
Verifying  : php-php-gettext-1.0.11-10.el7.noarch                                              1/2
Verifying  : phpMyAdmin-4.2.7.1-1.el7.noarch                                                  2/2
Installed:
phpMyAdmin.noarch 0:4.2.7.1-1.el7
Dependency Installed:
php-php-gettext.noarch 0:1.0.11-10.el7
Complete!

■ 設定
Apacheのバージョンによって編集する場所が違う。

# httpd -v でApacheのバージョン確認できる。
[root@server1 ~]# httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built:   Jun 17 2014 19:11:24

[root@server1 ~]# vi /etc/httpd/conf.d/phpMyAdmin.conf
<Directory /usr/share/phpMyAdmin/>
   <IfModule mod_authz_core.c>
     # Apache 2.4
     <RequireAny>
       Require ip 127.0.0.1
       Require ip ::1
       Require ip 192.168.1.  ← 追加:内部ネットワークからのアクセスを許可
     </RequireAny>
   </IfModule>
   <IfModule !mod_authz_core.c>
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from 127.0.0.1
     Allow from ::1
   </IfModule>
</Directory>

Apache設定反映

[root@server1 ~]# service httpd restart
Redirecting to /bin/systemctl restart  httpd.service

■ phpMyAdmin確認
http://サーバー名/phpmyadmin/へアクセスして、phpMyAdminのログイン画面が表示されることと、MySQLに登録されているアカウントでログインできることを確認

phpMyAdminをyumでインストール

今までは、wgetでソースからインストールしてたが、バージョンアップのたびにソースからインストールするのは面倒なので、yumでインストールすることにした。phpMyAdminは標準のリポジトリには入っていないのでEPELリポジトリを追加しておく。
■ phpMyAdminインストール

[root@server1 ~]# yum install phpmyadmin
Loaded plugins: fastestmirror, priorities, refresh-packagekit
Loading mirror speeds from cached hostfile
epel/metalink                                                                | 5.0 kB     00:00
* base: www.ftp.ne.jp
* centosplus: www.ftp.ne.jp
* epel: ftp.jaist.ac.jp
* extras: www.ftp.ne.jp
* rpmforge: ftp.riken.jp
* updates: www.ftp.ne.jp
117 packages excluded due to repository priority protections
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package phpMyAdmin.noarch 0:3.5.2.2-1.el6 will be installed
--> Processing Dependency: php-php-gettext for package: phpMyAdmin-3.5.2.2-1.el6.noarch
--> Running transaction check
---> Package php-php-gettext.noarch 0:1.0.11-3.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
====================================================================================================
Package                     Arch               Version                      Repository        Size
====================================================================================================
Installing:
phpMyAdmin                  noarch             3.5.2.2-1.el6                epel             4.3 M
Installing for dependencies:
php-php-gettext             noarch             1.0.11-3.el6                 epel              21 k
Transaction Summary
====================================================================================================
Install       2 Package(s)
Total download size: 4.3 M
Installed size: 17 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): php-php-gettext-1.0.11-3.el6.noarch.rpm                               |  21 kB     00:00
(2/2): phpMyAdmin-3.5.2.2-1.el6.noarch.rpm                                   | 4.3 MB     00:00
----------------------------------------------------------------------------------------------------
Total                                                               5.1 MB/s | 4.3 MB     00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : php-php-gettext-1.0.11-3.el6.noarch                                              1/2
Installing : phpMyAdmin-3.5.2.2-1.el6.noarch                                                  2/2
Verifying  : php-php-gettext-1.0.11-3.el6.noarch                                              1/2
Verifying  : phpMyAdmin-3.5.2.2-1.el6.noarch                                                  2/2
Installed:
phpMyAdmin.noarch 0:3.5.2.2-1.el6
Dependency Installed:
php-php-gettext.noarch 0:1.0.11-3.el6
Complete!

■ 設定
Apacheのバージョンによって編集する場所が違う。
# httpd -v でApacheのバージョン確認できる。

[root@server1 ~]# vi /etc/httpd/conf.d/phpMyAdmin.conf
# phpMyAdmin - Web based MySQL browser written in php
#
# Allows only localhost by default
#
# But allowing phpMyAdmin to anyone other than localhost should be considered
# dangerous unless properly secured by SSL
Alias /phpMyAdmin /usr/share/phpMyAdmin
Alias /phpmyadmin /usr/share/phpMyAdmin
<Directory /usr/share/phpMyAdmin/>
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
Require ip 127.0.0.1
Require ip ::1
</RequireAny>
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
Allow from 192.168.1.  ← 追加:内部ネットワークからのアクセスを許可
Allow from ***.***.***.***  ← 追加:特定の外部IPからのアクセスを許可する場合
</IfModule>
</Directory>
<Directory /usr/share/phpMyAdmin/setup/>
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
Require ip 127.0.0.1
Require ip ::1
</RequireAny>
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
</IfModule>
</Directory>
# These directories do not require access over HTTP - taken from the original
# phpMyAdmin upstream tarball
#
<Directory /usr/share/phpMyAdmin/libraries/>
Order Deny,Allow
Deny from All
Allow from None
</Directory>
Apache設定反映
[root@server1 ~]# service httpd restart
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]

■ phpMyAdmin確認
http://サーバー名/phpmyadmin/へアクセスして、phpMyAdminのログイン画面が表示されること
MySQLに登録されているアカウントでログインできること

MySQL管理(phpMyAdmin)

phpMyAdminはWebブラウザからMySQLデータベースを管理するためのPHPで記述されたソフトウェア。WebブラウザからMySQLのテーブル操作、インポート・エクスポートすることが出来る。
■ phpMyAdminインストール
こちらで最新版 を確認すること
(最新版を確認してダウロード 11/09/19 時点では phpMyAdmin 3.4.5)

[root@server1 ~]# wget http://prdownloads.sourceforge.net/phpmyadmin/phpMyAdmin-3.4.5-all-languages.tar.bz2
ダウンロードしたphpMyAdminを展開
[root@server1 ~]# tar jxvf phpMyAdmin-3.4.5-all-languages.tar.bz2
古いphpMyAdminを削除
[root@server1 ~]# rm -rf /var/www/phpmyadmin
phpMyAdmin展開先ディレクトリを所定の場所へコピー
[root@server1 ~]# mv phpMyAdmin-3.4.5-all-languages/ /var/www/phpmyadmin
ダウンロードしたphpMyAdminを削除
[root@server1 ~]# rm -f phpMyAdmin-3.4.5-all-languages.tar.bz2

■ php-mysqlインストール
phpMyAdminはPHPで動作するため、PHPからMySQLデータベースへアクセスするためのパッケージ「php-mysql」をインストールする

[root@server1 ~]# yum -y install php-mysql

■ mbstringモジュールインストール
phpMyAdmin は mbstring 拡張なしでは文字列を正確に分割することができないのでmbstringモジュールをインストールする

[root@server1 ~]# yum -y install php-mbstring

■ phpMyAdmin設定

phpmyadmin/config.sample.inc.phpを名前変更して/var/www/phpmyadmin/の直下にコピー
[root@server1 ~]# cp -p /var/www/phpmyadmin/config.sample.inc.php /var/www/phpmyadmin/config.inc.php
設定ファイルのパーミッションを変更
[root@server1 ~]# chmod 660 /var/www/phpmyadmin/config.inc.php
設定ファイル編集
[root@server1 ~]# vi /var/www/phpmyadmin/config.inc.php
* This is needed for cookie based authentication to encrypt password in
* cookie
*/
$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
↓
$cfg['blowfish_secret'] = '***********'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */ ← 46文字以内の適当な文字列を指定
※上記はロiグイン時のパスワード暗号化の際に内部的に利用されるパスフレーズであり、ユーザに入力要求されるものではない
phpMyAdminの所有者を変更
[root@server1 ~]# chown -R root.apache /var/www/phpmyadmin/

■ Apache設定
phpMyAdmin用Apache設定ファイル作成

内部と特定の外部IPからのみアクセスできるように指定する
[root@server1 ~]# vi /etc/httpd/conf.d/phpmyadmin.conf
Alias /phpmyadmin /var/www/phpmyadmin
<Location /phpmyadmin>
Order deny,allow
Deny from all
Allow from 127.0.0.1 ← サーバー自身からのアクセスを許可
Allow from 192.168.1. ← 内部ネットワークからのアクセスを許可
Allow from xxx.xxx.xxx.xxx ← 特定の外部IP(xxx.xxx.xxx.xxx)からのアクセスを許可
</Location>
[root@server1 ~]# /etc/rc.d/init.d/httpd restart ← Apache設定反映
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]

会社等からアクセスする場合、自分の会社の接続環境(IPアドレス)を調べ、/etc/hosts.allowへ登録する必要がある。そんな時は診断くんで確認できる。
■ phpMyAdmin確認
http://サーバー名/phpmyadmin/へアクセスして、phpMyAdminのログイン画面が表示されること
MySQLに登録されているアカウントでログインできること
http://サーバー名/phpmyadmin/へアクセスしてみると
※「mcrypt 拡張がありません。PHP の設定をチェックしてみてください。」というエラーメッセージが出たので、 php-mcryptをインストール。
■ php-mcryptをインストール

[root@server1 ~]# yum install php-mcrypt

■ Apacheの再起動

[root@server1 ~]# /etc/rc.d/init.d/httpd restart

■ PHP の初期設定の変更
リストアで利用できるバックアップデータの最大サイズは2,048KB と書かれているとおり、 デフォルト では2 MB になっている。これはphpMyAdminの制限ではなく、 PHP の初期設定での制限。 これを変更するには、 “/etc/php.ini” を開き、 “upload_max_filesize” ディレクティブ を修正。
/etc/php.iniを cp コマンドでバックアップを作成してから作業するようにする。

[root@server1 ~]# cp -p /etc/php.ini /etc/php.ini.org
[root@server1 ~]# vi /etc/php.ini
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;
; Whether to allow HTTP file uploads.
file_uploads = On
; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
;upload_tmp_dir =
; Maximum allowed size for uploaded files.
upload_max_filesize = 2M
↓
upload_max_filesize = 30M ← 30Mに変更