こんにちはー!ニアです。
Webサーバーをnginxに変えてから、本サイトは元気です。(サーバーぐらし!)
今回はKUSANAGI+nginxにphpMyAdminを導入し、動かすための設定方法を紹介します。
1. 本サイトを動かしているサーバーの環境
パブリッククラウド | KUSANAGI for ConoHa |
---|---|
OS | CentOS 7 |
Webサーバー | nginx 1.9.12 |
PHP | 7.0.5 |
データベース | MariaDB 10.0 |
2. phpMyAdminをインストール
まず、phpMyAdminをインストールします。wgetコマンドで、phpMyAdminのzipファイルをダウンロードします。
# ここではバージョン4.4.15を扱います。お使いの環境に合わせてバージョン番号を変更してください。
wget https://files.phpmyadmin.net/phpMyAdmin/4.4.15/phpMyAdmin-4.4.15-all-languages.zip
ダウンロードしたzipファイルを、unzipコマンドで解凍します。
unzip phpMyAdmin-4.4.15-all-languages.zip
そのままではフォルダー名が長いので、mvコマンドでphpMyAdminに変更します。
mv phpMyAdmin-4.4.15-all-languages phpMyAdmin
phpMyAdminを任意の場所に配置します。ここでは「/usr/share」ディレクトリの中に配置しています。
mv phpMyAdmin /usr/share/phpMyAdmin
3. nginxの設定ファイルの編集
次にnginxの設定ファイルを編集します。
KUSANAGIの場合、「/etc/nginx/conf.d」ディレクトリにある「[PROFILE]_http.conf」ファイルを開きます。
[PROFILE]には、KUSANAGIでプロビジョニングした時に設定したプロファイル名が入ります。
vi /etc/nginx/conf.d/[PROFILE]_http.conf
#=======================================
# [ホスト名]
#---------------------------------------
server {
listen 80;
server_name [ホスト名];
access_log /home/kusanagi/[PROFILE]/log/nginx/access.log main;
error_log /home/kusanagi/[PROFILE]/log/nginx/error.log warn;
charset UTF-8;
client_max_body_size 16M;
root /home/kusanagi/[PROFILE]/DocumentRoot;
index index.php index.html index.htm;
# ...
location / {
try_files $uri $uri/ /index.php?$args;
}
# ...
location ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
if (!-f $document_root$fastcgi_script_name) {
return 404;
}
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_buffers 256 128k;
fastcgi_buffer_size 128k;
fastcgi_intercept_errors on;
fastcgi_read_timeout 120s;
# ...
}
# ...
}
「location ~ [^/]\.php(/|$)」の前あたりに、以下のコードを追加します。
# http://[ホスト名]/phpMyAdmin/ 内のファイルに対する処理を行います。
location ^~ /phpMyAdmin/ {
# aliasには、インストールしたphpMyAdminのディレクトリを指定します。
alias /usr/share/phpMyAdmin/;
try_files $uri $uri/ /index.php;
# 接続できるIPアドレスを制限します。
allow 127.0.0.1;
# 自分のPCのネットワーからアクセスできるように、IPアドレスを指定します。
allow xxx.xxx.xxx.xxx;
deny all;
# http://[ホスト名]/phpMyAdmin/ 内のphpファイルに対する処理を行います。
location ~ /phpMyAdmin(.+\.php)$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
# fastcgi_paramのSCRIPT_FILENAMEには、インストールしたphpMyAdminのディレクトリを指定します。
fastcgi_param SCRIPT_FILENAME /usr/share/phpMyAdmin$1;
include fastcgi_params;
fastcgi_buffers 256 128k;
fastcgi_buffer_size 128k;
fastcgi_intercept_errors on;
fastcgi_read_timeout 120s;
}
}
phpMyAdmin用のlocationディレクティブを作成し、先ほどインストールしたphpMyAdminのディレクトリをaliasに指定します。その中に、PHPファイル用のlocationディレクティブを作成し、phpMyAdminのディレクトリをfastcgi_paramのSCRIPT_FILENAMEに指定します。
こうすることで、URLに「http://[ホスト名]/phpMyAdmin/」(末尾のスラッシュまで必要)と入力した時にphpMyAdminにアクセスすることができました。
locationディレクティブに指定しているphpMyAdminを任意の名前にすることで、phpMyAdminにアクセスするURLを変えることができます。例えば、
location ^~ /pma/ {
とすると、「http://[ホスト名]/pma/」でアクセスすることができます。
また、自分のネットワークのIPアドレスのみアクセスできるように制限をかけておくとよいです。
※サイトがSSLに対応している場合、「[PROFILE]_ssl.conf」ファイルにも同様の方法で設定します。というのも、phpMyAdminにはSSLを有効にしてアクセスするのがセキュリティの観点上、望ましいです。
4. おわりに
今回はKUSANAGI+nginxにphpMyAdminを導入し、動かすための設定方法を紹介しました。phpMyAdmin本体をドキュメントルート上ではなく、別の所に置いた時は、aliasを使ってディレクトリを指定してあげれば、ブラウザからアクセスできるのですね。
nginxを使うのは今回が初めてで、Apacheとは異なる設定方法で少々戸惑いましたが、インターネット上の情報を参考にして試行錯誤し、何とか接続できるようになりました。
それでは、See you next!
コメント