さくらVPSサーバー初期設定 – phpMyAdminのインストール
参考URL
- ネコでもわかる!さくらのVPS講座 ~第五回「phpMyAdminを導入しよう」
- phpMyAdmin
- Installation — phpMyAdmin 4.8.0-dev documentation
- ユーザーを作成する – phpMyAdminの使い方
- MySQL :: MySQL 5.6 リファレンスマニュアル :: 6.3.8.4 SHA-256 認証プラグイン
方法1:phpMyAdminを手動でインストールする
公式サイトから手動ダウンロード
- [https://www.phpmyadmin.net/downloads/]から最新バージョンのzipのURLを取得
- wdetでルートにダウンロード
- unzipで解凍
# cd /
# wget https://files.phpmyadmin.net/phpMyAdmin/4.7.5/phpMyAdmin-4.7.5-all-languages.zip
# unzip phpMyAdmin-4.6.6-all-languages.zip
- リネームしてドキュメントルート下へ移動させる
# mv phpMyAdmin-4.7.5-all-languages /home/hoge/phpmyadmin
# cd /home/hoge/phpmyadmin
設定ファイルを作る
- サンプルをリネームし、権限を変更(644→660へ)
# mv config.sample.inc.php config.inc.php
# ls -la | grep config.inc.php
- rw-r--r-- 1 root root 4516 Oct 21 04:11 config.inc.php
# chmod 660 config.inc.php
# ls -la | grep config.inc.php
- rw-rw---- 1 root root 4516 Oct 21 04:11 config.inc.php
設定ファイルを編集する
# vi config.inc.php
- 32文字以上のランダムな文字列をセット。
17 $cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
- 46~65行目のコメントアウトをはずす。
45 /* Storage database and tables */
46 // $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
47 // $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
48 // $cfg['Servers'][$i]['relation'] = 'pma__relation';
49 // $cfg['Servers'][$i]['table_info'] = 'pma__table_info';
50 // $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
51 // $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
52 // $cfg['Servers'][$i]['column_info'] = 'pma__column_info';
53 // $cfg['Servers'][$i]['history'] = 'pma__history';
54 // $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
55 // $cfg['Servers'][$i]['tracking'] = 'pma__tracking';
56 // $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
57 // $cfg['Servers'][$i]['recent'] = 'pma__recent';
58 // $cfg['Servers'][$i]['favorite'] = 'pma__favorite';
59 // $cfg['Servers'][$i]['users'] = 'pma__users';
60 // $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
61 // $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
62 // $cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
63 // $cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
64 // $cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
65 // $cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';
phpMyAdminディレクトリの所有者&グループをapacheに変更
# chown -R apache /home/hoge/phpmyadmin/
# chown -R apache.apache /home/hoge/phpmyadmin/
phpmyadmin.confを作りエイリアス設定をする
# vi /etc/httpd/conf.d/phpmyadmin.conf
1 Alias /{任意の文字列} /home/homepage/phpmyadmin
2
3 <Directory /home/homepage/phpmyadmin/>
4 AddDefaultCharset UTF-8
5 Require all granted
6 </Directory>
- Apacheを再起動して適用
# systemctl restart httpd
- http://{IPアドレス}/{任意の文字列}にブラウザからアクセス
方法2:phpMyAdminをremiレポジトリからyum installする
yum listでインストール可能なパッケージをチェック
# yum --enablerepo=remi list phpmyadmin
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: ftp.iij.ad.jp
* epel: ftp.jaist.ac.jp
* extras: ftp.iij.ad.jp
* remi: repo1.sea.innoscale.net
* remi-safe: repo1.sea.innoscale.net
* updates: ftp.iij.ad.jp
Available Packages
phpMyAdmin.noarch 4.7.5-1.el7.remi remi
- phpMyAdminのバージョン4.7.5(=最新)がヒット
phpMyAdminをyum install
# yum --enablerepo=remi,remi-php71 phpMyAdmin
- 対象レポジトリ(–enablerepo)の指定がremiのみだと、remi-php71に含まれているphpMyAdminに必要な関連パッケージがインストールできず、エラーになってしまう。
- 以下のリストのRepository列がremi-php71になっている箇所がそれ。
<!--more-->
Package Arch Version Repository Size
<!--more-->
Installing:
phpMyAdmin noarch 4.7.5-1.el7.remi remi 5.1 M
Installing for dependencies:
composer noarch 1.5.2-1.el7.remi remi 373 k
libicu x86_64 50.1.2-15.el7 base 6.9 M
libzip5 x86_64 1.3.0-1.el7.remi remi 59 k
php-PsrLog noarch 1.0.2-2.el7.remi remi 11 k
php-composer-ca-bundle noarch 1.0.8-1.el7.remi remi 11 k
php-composer-semver noarch 1.4.2-2.el7.remi remi 16 k
php-composer-spdx-licenses noarch 1.1.6-1.el7.remi remi 15 k
php-gmp x86_64 7.1.11-1.el7.remi remi-php71 64 k
php-google-recaptcha noarch 1.1.3-1.el7.remi remi 13 k
php-intl x86_64 7.1.11-1.el7.remi remi-php71 210 k
php-jsonlint noarch 1.6.1-1.el7.remi remi 15 k
php-justinrainbow-json-schema5 noarch 5.2.6-1.el7.remi remi 40 k
php-pecl-zip x86_64 1.15.1-1.el7.remi.7.1 remi-php71 50 k
php-phpmyadmin-motranslator noarch 3.3-1.el7.remi remi 20 k
php-phpmyadmin-shapefile noarch 2.1-1.el7.remi remi 20 k
php-phpmyadmin-sql-parser noarch 4.2.3-1.el7.remi remi 155 k
php-phpseclib noarch 2.0.7-1.el7.remi remi 206 k
php-psr-cache noarch 1.0.1-3.el7.remi remi 8.6 k
php-psr-simple-cache noarch 1.0.0-1.el7.remi remi 7.2 k
php-recode x86_64 7.1.11-1.el7.remi remi-php71 42 k
php-seld-cli-prompt noarch 1.0.3-1.el7.remi remi 7.6 k
php-seld-phar-utils noarch 1.0.1-2.el7.remi remi 6.8 k
php-symfony3-cache noarch 3.3.10-1.el7.remi remi 42 k
php-symfony3-common noarch 3.3.10-1.el7.remi remi 94 k
php-symfony3-console noarch 3.3.10-1.el7.remi remi 82 k
php-symfony3-debug noarch 3.3.10-1.el7.remi remi 36 k
php-symfony3-expression-language noarch 3.3.10-1.el7.remi remi 23 k
php-symfony3-filesystem noarch 3.3.10-1.el7.remi remi 16 k
php-symfony3-finder noarch 3.3.10-1.el7.remi remi 22 k
php-symfony3-process noarch 3.3.10-1.el7.remi remi 28 k
recode x86_64 3.6-38.el7 base 718 k
Transaction Summary
<!--more-->
Install 1 Package (+31 Dependent packages)
ローカル以外からのアクセスを許可する
# vi /etc/httpd/conf.d/phpMyAdmin.conf
- 16行目を書き換え
- 前:Require local
- 後:Require all granted
11 <Directory /usr/share/phpMyAdmin/>
12 AddDefaultCharset UTF-8
13
14 <IfModule mod_authz_core.c>
15 # Apache 2.4
16 Require local
17 </IfModule>
18 <IfModule !mod_authz_core.c>
19 # Apache 2.2
20 Order Deny,Allow
21 Deny from All
22 Allow from 127.0.0.1
23 Allow from ::1
24 </IfModule>
25 </Directory>
- Apacheを再起動して適用
# systemctl restart httpd
- http://{IPアドレス}/phpMyAdminを開いて表示を確認
phpMyAdminの置き場所を変更し第三者に推測されにくい名前に設定する
- ドキュメントルートへ移動&リネーム
# mv /usr/share/phpMyAdmin/ /home/hoge/public_html/{わかりにくい名前}
- phpMyAdmin.confを編集
# vi /etc/httpd/conf.d/phpMyAdmin.conf
- 8~9行目を書き換え
- 後:Alias /{わかりにくい名前} /home/hoge/public_html/{わかりにくい名前}
8 Alias /phpMyAdmin /usr/share/phpMyAdmin
9 Alias /phpmyadmin /usr/share/phpMyAdmin
- ファイル内にあるパスをすべて書き換え
- 前:/usr/share/phpMyAdmin/
- 後:/home/hoge/public_html/{わかりにくい名前}
- Apacheを再起動して適用
# systemctl restart httpd
- http://{IPアドレス}/{わかりにくい名前}を開いて表示を確認
- DB操作を行わないときは public_html の1つ上の階層に移動しておく。
config.inc.phpの場所
- config.inc.php はphpMyAdmin内ではなく下記の場所にある
- /etc/phpMyAdmin/config.inc.php
phpMyAdminのバージョンが最新かどうかチェックする方法
めちゃくちゃリネームしちゃったけどはたしてyumからアップデートはできるのだろうか…
- 最新のremiレポジトリのパッケージリストを取得。
# yum check-update --enablerepo=remi
- phpMyAdminの情報を表示。
# yum info --enablerepo=remi phpMyAdmin
- Installed Packagesよりも新しいAavailable Packegesがある場合は、新しいバージョンにアップデート。
# yum update --enablerepo=remi phpMyAdmin
ユーザーと権限の設定
- rootでGUIからログイン
- ID:root
- PASS:以下で設定したMySQL Serverのrootのパスワード
- root権限を持つ一般ユーザーを新規作成
- User accountsタブをクリック
- Add user accountをクリック
- 情報を入力
- User name: テキスト入力項目の値: {任意のユーザー名}
- Host name: ローカル: localhost(自動入力)
- パスワード: パスワード生成機能を使うと「弱い!」と怒られるのでめっちゃ強いやつを作って入力
- Authentication Plugin: Native MySQL authentication
- グローバル特権: Check all にチェック
- SSL: REQUIRE NONE
- rootでのログインを禁止
- config.inc.phpに以下を追記
$cfg['Servers'][$i]['AllowRoot'] = false;
- Apacheを再起動して適用
# systemctl restart httpd
- rootでログインできないことを確認
phpMyAdminにアクセスする際は常にSSL通信にする
ApacheがSSL通信を使えるようする
- Apacheのモジュール「mod_ssl」をインストールする。
# yum install mod_ssl
- Apacheを再起動して適用
# systemctl restart httpd
- ブラウザからhttps://~でphpMyAdminにアクセスして表示を確認。
- SSL証明書を取得したわけではないので、警告が表示されてしまう。
httpでphpMyAdminにアクセスできないようにする
# vi /etc/httpd/conf.d/phpMyAdmin.conf
- phpMyAdminディレクトリ内に対する設定部分に以下を追記
SSLRequireSSL
- Apacheを再起動して適用
# systemctl restart httpd
- ブラウザからphpMyAdminにアクセスして表示確認
- http://~ →Forbidden
- https://~ →表示される