n-portal

phpMyAdmin

MySQLをブラウザからGUIで操作ができるphpMyAdminをインストールします。

前提条件

CentOS7にLAMP環境構築で紹介した下記の環境にphpMyAdminをインストールします。
yumリポジトリにremiを追加してから実行してください。

LAMP環境 version
L SentOS7 7.2.1511
A Apache 2.4.6
M MySQL 5.7.15
P PHP 5.6.25

インストール

remiとremi-php56を有効にしてphpMyAdminをインストールします。
PHPのバージョンが5.6なのでremi-php56を使っています。
バージョンの違うリポジトリを有効化すると、バージョン違いのエラーが出てインストールに失敗するので、適宜読みかえてください。

# yum –enablerepo=remi,remi-php56 install phpMyAdmin

インストールに成功したら、設定に進んでください。
libtidy0.99.so.0()(64bit) が無いと言われてインストールできなかった場合は下記を実行してください。

まずlibtidy0.99.so.0()(64bit)のパッケージを探します。
RPM 
pbone.netでダウンロードURLを取得します。

検索窓に libtidy0.99.so.0()(64bit) を入力して SEARCH

CentOS7用のパッケージが無かったので、OtherのURLをコピー

ファイルをダウンロード
# wget ftp://ftp.pbone.net/mirror/ftp.sourceforge.net/pub/sourceforge/r/ra/ramonelinux/Rel_0.99/releases/x86_64/packages/tidy-0.99.0-1.ram0.99.x86_64.rpm
 ※wgetをインストールしていない場合は # yum install wget でインストールしてください。

rpmパッケージをインストール
# rpm -Uvh tidy-0.99.0-1.ram0.99.x86_64.rpm

再度phpMyAdminをインストール
# yum install -y –enablerepo=remi,remi-php56 phpMyAdmin

設定

アクセス制限

phpMyAdminはWebブラウザで http://サーバのIPアドレス/phpmyadmin にアクセスすることで利用できますが、
インストール直後はローカルからのアクセスしかできなくなっています。
試しに外部のネットワークからアクセスしようとすると下記のようなメッセージが表示されます。

Forbidden

You don’t have permission to access /phpmyadmin/ on this server.

ローカル以外からphpMyAdminに接続する場合は、phpMyAdmin.conf を編集します。

2.4系のApacheを使用しているので<Directory /usr/share/phpMyAdmin/>の<IfModule mod_authz_core.c>部分を編集します。
設定例では初期値の Require local をコメントアウトし、
Require all granted を追記していますが、セキュリティ上望ましくないので、
外部からのアクセスを許可する場合は Require ip でIPアドレスを指定しましょう。

# gedit /etc/httpd/conf.d/phpMyAdmin.conf

設定例

<Directory /usr/share/phpMyAdmin/>
AddDefaultCharset UTF-8<IfModule mod_authz_core.c>
# Apache 2.4
# Require local ←初期値 ローカルからのアクセスのみ許可
# Require ip 111.11.111.11 ←許可するIPを指定 111.11 や 111.11.111.0/24 といった指定も可能
Require all granted #←どこからでもアクセス可能
</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を再起動
# systemctl restart httpd.service

動作テストとユーザの作成

セキュリティ強化のため、後でrootユーザでのphpMyAdmin接続を制限します。
phpMyAdminの動作確認をするついでに、rootユーザと同じ権限を持つユーザを作成しましょう。

Webブラウザで http://サーバのIPアドレス/phpmyadmin にアクセス
言語を日本語に変更
ユーザ名:root
パスワード:rootのパスワード
を入力し 実行

User accounts をクリック

Add user account をクリック

User name:任意のユーザ名
Host name:% ※外部のホストからアクセスできるように%にしました。外部からアクセスしなければ localhost にしてください。
パスワード:大文字、小文字、数字、記号を含む8文字以上の文字列
Re-tyoe:パスワードを再度入力

同名のデータベースを作成して全ての権限を与える。
ワイルドカード(ユーザ名_%)に該当するデータベースにすべての特権を与える。
にチェックを入れる

グローバル権限 Check all
にチェックを入れ 実行

警告対応とrootユーザのアクセス制限

phpMyAdminの設定ファイルを変更し、rootユーザでのアクセス制限と、phpMyAdminのトップページに出る以下の警告を解消しましょう。

【 phpMyAdmin 環境保管領域が完全に設定されていないため、いくつかの拡張機能が無効になっています。理由についてはこちらをご覧ください。
代わりにデータベースの操作タブを使って設定することもできます。】

まずは、phpMyAdmin用のデータベースとユーザを作成します。
簡単なSQLで操作が完了するのでコマンドラインで設定して行きます。

# mysql -u root -p ←rootユーザでログイン
mysql> source /usr/share/phpMyAdmin/sql/create_tables.sql ←phpMyAdmin用のデータベースを作成
mysql> GRANT ALL PRIVILEGES ON phpmyadmin.* TO pma@localhost IDENTIFIED BY ‘大文字、小文字、数字、記号を含む8文字以上パスワードを入力’; ←phpMyAdmin用ユーザpmaを作成
mysql> FLUSH PRIVILEGES; ←権限テーブルリロード
mysql> exit ←ログアウト

※phpMyAdminの設定ファイルconfig.inc.phpにサンプルとして記載されているphpMyAdmin用ユーザ名がpmaなので、pmaを作成しました。

phpMyAdminの設定ファイルconfig.inc.phpを編集します。
# gedit /etc/phpMyAdmin/config.inc.php 

設定ファイルの下記項目を編集してください。

/* User used to manipulate with storage */
// $cfg[‘Servers’][$i][‘controlhost’] = ”;
// $cfg[‘Servers’][$i][‘controlport’] = ”;
$cfg[‘Servers’][$i][‘controluser’] = ‘pma’; コメントアウトを外す
$cfg[‘Servers’][$i][‘controlpass’] = ‘pmaのパスワード‘; コメントアウトを外す
/* Storage database and tables */
$cfg[‘Servers’][$i][‘pmadb’] = ‘phpmyadmin’; コメントアウトを外す
$cfg[‘Servers’][$i][‘bookmarktable’] = ‘pma__bookmark’; コメントアウトを外す
$cfg[‘Servers’][$i][‘relation’] = ‘pma__relation’; コメントアウトを外す
$cfg[‘Servers’][$i][‘table_info’] = ‘pma__table_info’; コメントアウトを外す
$cfg[‘Servers’][$i][‘table_coords’] = ‘pma__table_coords’; コメントアウトを外す
$cfg[‘Servers’][$i][‘pdf_pages’] = ‘pma__pdf_pages’; コメントアウトを外す
$cfg[‘Servers’][$i][‘column_info’] = ‘pma__column_info’; コメントアウトを外す
$cfg[‘Servers’][$i][‘history’] = ‘pma__history’; コメントアウトを外す
$cfg[‘Servers’][$i][‘table_uiprefs’] = ‘pma__table_uiprefs’; コメントアウトを外す
$cfg[‘Servers’][$i][‘tracking’] = ‘pma__tracking’; コメントアウトを外す
$cfg[‘Servers’][$i][‘userconfig’] = ‘pma__userconfig’; コメントアウトを外す
$cfg[‘Servers’][$i][‘recent’] = ‘pma__recent’; コメントアウトを外す
$cfg[‘Servers’][$i][‘favorite’] = ‘pma__favorite’; コメントアウトを外す
$cfg[‘Servers’][$i][‘users’] = ‘pma__users’; コメントアウトを外す
$cfg[‘Servers’][$i][‘usergroups’] = ‘pma__usergroups’; コメントアウトを外す
$cfg[‘Servers’][$i][‘navigationhiding’] = ‘pma__navigationhiding’; コメントアウトを外す
$cfg[‘Servers’][$i][‘savedsearches’] = ‘pma__savedsearches’; コメントアウトを外す
$cfg[‘Servers’][$i][‘central_columns’] = ‘pma__central_columns’; コメントアウトを外す
$cfg[‘Servers’][$i][‘designer_settings’] = ‘pma__designer_settings’; コメントアウトを外す
$cfg[‘Servers’][$i][‘export_templates’] = ‘pma__export_templates’; コメントアウトを外す/**
* End of servers configuration
*/
設定ファイルの最後にrootアクセス禁止の1文を追加
/**
* You can find more configuration options in the documentation
* in the doc/ folder or at <https://docs.phpmyadmin.net/>.
*/$cfg[‘Servers’][$i][‘AllowRoot’] = false;

Apacheを再起動して変更を適用
# systemctl restart httpd.service

これでphpMyAdminの設定は終了です。
rootではアクセスできなくなっているので、事前に作成したrootユーザと同じ権限を持つユーザでphpMyAdminにアクセスしてください。
環境保管領域に関する警告表示が消えています。


お疲れ様でした。次はWordPressのインストールについてまとめようと思います。機会がありましたらまたお付き合い下さい。