さくらVPS【SSL】でphpMyAdmin

さくらVPSでスタートアップスクリプトを使用して簡単に構築したSSL環境にphpMyAdminをインストール

「さくらVPS【SSL】でPHP」の内容で PHP7.3 のインストールを行い、 「さくらVPS【SSL】でMySQL」の内容で MariaDB の設定を行った後に、phpMyAdmin をインストールしました。

◎phpMyAdmin用のユーザーの作成

  • phpMyAdmin用のユーザー(phpmyadmin)を作成しました。

    $ su -
    パスワード:
    # adduser phpmyadmin
    # passwd phpmyadmin
    Changing password for user phpmyadmin.
    New password: 
    Retype new password: 
    passwd: all authentication tokens updated successfully.
    
  • 「/home/phpmyadmin/」のパーミッションを701に変更しました。
    # cd /home/
    # chmod 701 ./phpmyadmin/
    

◎phpMyAdminのインストール

  • phpMyAdminが使用するphpの拡張モジュール他をインストールしました。
    # yum --enablerepo=remi-php73 install php-mbstring php-mysqlnd php-gd
    
  • suコマンドで、phpMyAdmin用のユーザー(phpmyadmin)になりました。

    # su phpmyadmin
    $ pwd
    /home/phpmyadmin
    
  • ユーザー(phpmyadmin)のホームディレクトリでwgetコマンドを使用して、phpMyAdminのソースファイル(phpMyAdmin-4.8.5-all-languages.zip)をダウンロードしました。

    $ wget https://files.phpmyadmin.net/phpMyAdmin/4.8.5/phpMyAdmin-4.8.5-all-languages.zip
    $ ls
    phpMyAdmin-4.8.5-all-languages.zip
    
  • ダウンロードしたphpMyAdminのソースファイル(phpMyAdmin-4.8.5-all-languages.zip)を解凍し、解凍して出来たフォルダの名前を「public_html」に変更しました。

    $ unzip phpMyAdmin-4.8.5-all-languages.zip
    $ mv phpMyAdmin-4.8.5-all-languages public_html
    $ (rm phpMyAdmin-4.8.5-all-languages.zip)
    
  • 「public_html」に移動し、「config.sample.inc.php」をコピーして「config.inc.php」を作成しました。

    $ cd public_html
    $ cp config.sample.inc.php config.inc.php
    
  • エディタ(nano)で「config.inc.php」を編集し、$cfg[‘blowfish_secret’] に適当な語句を設定しました。

    $ nano config.inc.php
    
    • ($cfg[‘blowfish_secret’]の文字列の長さが短すぎると後で怒られます。)
      $cfg['blowfish_secret'] = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; 
      

◎Nginxの設定

  • 「/etc/nginx/conf.d/」の「default.conf」と「https.conf」をエディタnanoで修正して、下記の記述を「location ~ \.php$ {…}」の手前に追記しました。(location ~ \.php$ {…}」の後に記載すると、phpファイルが「File not found.」になります。」
    # cd /etc/nginx/conf.d/
    # nano default.conf(または https.conf)
    
       # User public_html for PHP
       #
        location ~ ^/~([^/]+?)/(.+\.php)$ {
            alias          /home/$1/public_html/$2;
            fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
     
        # User public_html for html
        #
        location ~ ^/~(.+?)(/.*)?$ {
            alias       /home/$1/public_html$2;
            index       index.php index.html index.htm;
            autoindex   on;
        }
    
  • PHP-FPMとNginxを再起動ました。
    # systemctl restart php-fpm
    # systemctl restart nginx.service
    
  • 「https://(サーバーのURL)/~phpmyadmin/」にアクセスしたところ「Error during session start;….」というエラーが表示されたので、「/var/lib/php/session」ディレクトリのアクセス権を確認したところ、所有者が「apache」だったので「nginx」に変更しました。
    # cd /var/lib/php
    # chown nginx:nginx /var/lib/php/session
    
  • 再度、「https://(サーバーのURL)/~phpmyadmin/」にアクセスしたところ、phpMyAdminのログイン画面が表示されて無事にログイン出来ました。
  • ログイン画面に『 $cfg[‘TempDir’] (./tmp/) にアクセスできません。』のエラーが表示されたので、./tmp/フォルダを作成し、パーミッションを777に設定しました。
    # su phpmyadmin
    $ cd ~/public_html/
    $ mkdir ./tmp
    $ chmod 777 ./tmp/ 
    
  • 再度「https://(サーバーのURL)/~phpmyadmin/」にアクセスして、ログイン後のエラーが消えたことを確認してphpMyAdminのインストールを完了しました。

Basic認証の設定

  • phpMyAdminのホームページ「http://(サーバーのURL)/~phpmyadmin/」でBasic認証を行うために、「/home/phpmyadmin/public_html/」フォルダ以下にユーザー名:「phpmyadmin」(任意)で「.htpasswd」を作成しました。
    # cd /home/phpmyadmin/public_html/
    # htpasswd -c /home/phpmyadmin/public_html/.htpasswd phpmyadmin
    New password: 
    Re-type new password: 
    Adding password for user phpmyadmin
    
  • 「/etc/nginx/conf.d/」の「default.conf」と「https.conf」をエディタnanoで下記のように編集しました。
    # cd /etc/nginx/conf.d/
    # nano default.conf(または https.conf)
    
    • 「# User public_html for html」にBasic認証用の設定を追加しました。
          # User public_html for html
          #
          location ~ ^/~(.+?)(/.*)?$ {
              alias       /home/$1/public_html$2;
              index       index.php index.html index.htm;
              autoindex   on;
          # Basic authentication
              auth_basic "Restricted";
              auth_basic_user_file /home/phpmyadmin/public_html/.htpasswd;
          }
      
  • PHP-FPMとNginxを再起動ました。
    # systemctl restart php-fpm
    # systemctl restart nginx.service
    
  • phpMyAdminのホームページ「https://(サーバーのURL)/~phpmyadmin/」にアクセスすると認証ダイアログがポップアップ表示されたので、設定したユーザー名とパスワードで認証出来ることを確認してBasic認証の設定を完了しました。
<= さくらVPS【SSL】でMySQL | | さくらVPS【SSL】でWordpress =>
タイトルとURLをコピーしました