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

Web

参考URL

方法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からログイン
  • root権限を持つ一般ユーザーを新規作成
    1. User accountsタブをクリック
    2. Add user accountをクリック
    3. 情報を入力
      • 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://~ →表示される

Comments

  • スパム対策のため、コメント本文にURLが含まれている場合は「承認待ち」となり、すぐに投稿が反映されません。ご了承ください。
  • 公序良俗に反する内容、個人が特定できる情報、スパム投稿と思われるコメント等については、予告なく編集・削除する場合があります。