Hatena::ブログ(Diary)

hi3103のメモ帳

2017-11-04

さくらVPSサーバー初期設定 - phpMyAdminのインストール

参考URL

方法1:phpMyAdminを手動でインストールする

公式サイトから手動ダウンロード
# 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! */
     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>
# systemctl restart httpd

方法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(=最新)がヒット
phpMyAdminyum install
# yum --enablerepo=remi,remi-php71 phpMyAdmin
  • 対象レポジトリ(--enablerepo)の指定がremiのみだと、remi-php71に含まれているphpMyAdminに必要な関連パッケージがインストールできず、エラーになってしまう。
    • 以下のリストのRepository列がremi-php71になっている箇所がそれ。
==========================================================================================================
 Package                                Arch         Version                       Repository        Size
==========================================================================================================
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
==========================================================================================================
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>
# systemctl restart httpd
phpMyAdminの置き場所を変更し第三者に推測されにくい名前に設定する
# mv /usr/share/phpMyAdmin/ /home/hoge/public_html/{わかりにくい名前}
# 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
# systemctl restart httpd
  • http://{IPアドレス}/{わかりにくい名前}を開いて表示を確認
    • DB操作を行わないときは public_html の1つ上の階層に移動しておく。
config.inc.phpの場所
phpMyAdminのバージョンが最新かどうかチェックする方法

めちゃくちゃリネームしちゃったけどはたしてyumからアップデートはできるのだろうか…

# yum check-update --enablerepo=remi
# yum info --enablerepo=remi phpMyAdmin
  • Installed Packagesよりも新しいAavailable Packegesがある場合は、新しいバージョンにアップデート
# yum update  --enablerepo=remi phpMyAdmin

ユーザーと権限の設定

$cfg['Servers'][$i]['AllowRoot'] = false;
# systemctl restart httpd

phpMyAdminにアクセスする際は常にSSL通信にする

ApacheSSL通信を使えるようする
# yum install mod_ssl
# systemctl restart httpd
  • ブラウザからhttps://〜でphpMyAdminにアクセスして表示を確認。
    • SSL証明書を取得したわけではないので、警告が表示されてしまう。
httpでphpMyAdminにアクセスできないようにする
# vi /etc/httpd/conf.d/phpMyAdmin.conf
SSLRequireSSL
# systemctl restart httpd
  • ブラウザからphpMyAdminにアクセスして表示確認
    • http://〜 →Forbidden
    • https://〜 →表示される