KUSANAGI for さくらVPSへphpMyAdmin導入

環境

  • CentOS 7
  • KUSANAGI Version 8.0.1-2
  • nginx version: nginx/1.11.6
  • php7-fpm

用語解説

  • DL:ダウンロード

phpMyAdminインストールと設定

phpMyAdminインストール

下記からphpMyAdminのDLしたいバージョンを選択

2016/12/22 時点の最新は`phpMyAdmin 4.6.5.2`でした。

https://www.phpmyadmin.net/downloads/

phpMyAdminの設定

今回はrootアカウントで行っていますが、それ以外の作業アカウントの場合は`sudo`コマンドを付与して行ってください。

# ディレクトリ移動
cd /usr/local/src

# 最新ソースをDL
wget https://files.phpmyadmin.net/phpMyAdmin/4.6.5.2/phpMyAdmin-4.6.5.2-all-languages.tar.gz

# `phpMyAdmin-4.6.5.2-all-languages.tar.gz`がDLされたか確認
ls
phpMyAdmin-4.6.5.2-all-languages.tar.gz

# 解凍処理
tar xvzf phpMyAdmin-4.6.5.2-all-languages.tar.gz

# 解凍されているか確認
ls -l
drwxr-xr-x 12 root root     4096 12月  6 07:36 phpMyAdmin-4.6.5.2-all-languages
-rw-r--r--  1 root root 10372131 12月  6 08:40 phpMyAdmin-4.6.5.2-all-languages.tar.gz

# 解凍したphpMyAdminを移動(移動先はどこでもいいと思いますがドキュメントルートより上の階層がいいと思います)
mv phpMyAdmin-4.6.5.2-all-languages /usr/share/phpMyAdmin

# 元ファイルの削除(しなくてもいいと思います)
rm -fr phpMyAdmin-4.6.5.2-all-languages.tar.gz

上記で`phpMyAdmin`のDL+配置作業は完了です。

php-fpmの設定調整

Nginxのバーチャル設定の前にphp-fpmの設定を少し変更します。

Nginxとphp-fpmとの接続には UNIX socket を指定できるようにします。

socket 通信を使うとTCPで接続するので 127.0.0.1:9000 でアクセスするより早いようです。

# ディレクトリ移動(移動しなくてもいいです)
cd /etc/php7-fpm.d

# ファイルの確認
ls -l
-rw-r--r-- 1 root root  4580 11月 11 10:17 php7-fpm.conf.kusanagi
-rw-r--r-- 1 root root 19021 11月 11 10:17 www.conf
-rw-r--r-- 1 root root 18513 11月 11 10:17 www.conf.default
-rw-r--r-- 1 root root 19021 11月 11 10:17 www.conf.kusanagi

# .kusanagi はKUSANAGI for さくらのオリジナル設定がされているようなので触りません
vim www.conf
- listen = 127.0.0.1:9000
+ listen = /var/run/php7-fpm/php-fpm.sock #こちらに変更

# `/var/run/php7-fpm/`を確認
ls /var/run/php7-fpm/
php7-fpm.pid
#まだ`php-fpm.sock`はありません

# ミドルウェアの再起動
kusanagi restart

# `/var/run/php7-fpm/`を確認
ls -l /var/run/php7-fpm/
srw-rw---- 1 httpd www  0 12月 22 20:41 php-fpm.sock # 出来てますね!
-rw-r--r-- 1 root  root 5 12月 22 20:41 php7-fpm.pid

※ `php-fpm.sock`のユーザー、グループが上記にと同じになっていない場合は同じになっている事を確認してください。

rootになっている場合もありますが、その場合は下記ページなどを参考に上記と同じユーザー、グループになるよう行ってください。

nginx + php-fpm socketで接続する

phpMyAdminを使えるように設定

# `phpMyAdmin`用のnginx設定ファイル作成
vim /etc/nginx/conf.d/phpmyadmin.conf

# 設定ファイルの内容は「phpmyadmin.confの内容」を参照

# 上記の設定が出来たらミドルウェアの再起動
kusanagi restart

phpmyadmin.confの内容

server {
	listen       80;
	server_name  phpmyadmin.example.com; # ドメイン部分はご自分の環境に合わせてください

	root   /usr/share/phpMyAdmin;
	index  index.php;

	allow 000.00.00.00; # アクセスを解除するIPを設定してください
	deny all; # 基本アクセスは不可にしておきます

	location / {
		try_files $uri $uri?$args $uri/ /index.php?$uri&$args /index.php?$args;
    }

	location ~ \.php$ {
		try_files $uri =404;
		include /etc/nginx/fastcgi_params;
		fastcgi_pass   unix:/var/run/php7-fpm/php-fpm.sock; # 先程作成した`.sock`ファイル
		fastcgi_index   index.php;
		fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
		#include         fastcgi_params;
	}
}

phpMyAdmin用サブドメインを設定する

Nginx側の設定は上記で終わってるので、後はDNSの設定でサーバーまで繋げるだけです。

私の場合AWSのRoute53を利用しているので下記のように設定しました。

DNSの設定が反映されたか確認

MacBook-Pro:~$ nslookup phpmyadmin.example.com

Non-authoritative answer:
Name:	phpmyadmin.example.com
Address: 123.45.678.910 # ご自分のサーバーのIP

ブラウザでアクセスしてphpMyAdminの画面が表示されれば完了になります。