はじめに
nginxをやっと使ってみることにしました。設定ファイル触るのも当然初めてで、エイリアスを切って、phpmyadminへの連携をするのにかなり手こずったので、メモ的な意味で情報公開です。
Apache関連パッケージ削除
[bash]
$ sudo dpkg -l |grep apache
[/bash]
列挙されるパッケージを削除しちゃってください。
nginxのリポジトリを追加
[bash]
$ sudo nano /etc/apt/sources.list
[/bash]
[bash]
deb http://packages.dotdeb.org wheezy all
deb-src http://packages.dotdeb.org wheezy all
[/bash]
GPGキーのインポート
[bash]
$ wget http://www.dotdeb.org/dotdeb.gpg
$ sudo apt-key add dotdeb.gpg
$ sudo aptitude update
[/bash]
nginx php5-fpm php5関連パッケージインストール
[bash]
$ sudo aptitude install nginx-full php5 php5-fpm php5-common php-pear php5-mcrypt php5-mysql php5-cli php5-gd php-apc php5-curl
[/bash]
php5-fpmの設定調整(不要です)
webをチェックすると、
/etc/php5/fpm/pool.d/www.conf を調整するような記述が見受けられましたが、2014年3月現在では特に調整の必要はナシです。
php5-fpm nginx再起動
[bash]
$ sudo /etc/init.d/php5-fpm restart
$ sudo /etc/init.d/nginx restart
[/bash]
nginx動作確認
http://localhost へアクセスして、以下のようなnginxのトップページが表示されればOK。

php5-fpm nginx連携
php関連の記述がある部分をコメントアウトします。unixソケットで動かすので、
#fastcgi_pass 127.0.0.1:9000;
の部分はコメントアウトのままで・・・。
[bash]
$ sudo nano /etc/nginx/sites-enabled/default
[/bash]
[bash]
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
# NOTE: You should have “cgi.fix_pathinfo = 0;” in php.ini
# With php5-cgi alone:
#fastcgi_pass 127.0.0.1:9000;
# With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
[/bash]
確認用PHP作成
[bash]
$ nano /usr/share/nginx/html/test.php
[/bash]
中身
[php]
phpinfo(); ?>
[/php]
確認
ブラウザーで http://localhost/test.phpへアクセス。
以下のような php情報が表示されればOK、念の為、
Server API FPM/FastCGI
という記述が上の方にあることをご確認あれ。

phpmyadminインストール
インストールというか、ファイルをダウンロードして、適当な場所へ展開してやってください。今回は /usr/share/phpmyadminへインストールすることとします。
http://www.phpmyadmin.net/home_page/index.php
へアクセスし、最新版ダウンロード。
[bash]
$ unzip phpMyAdmin-4.1.9-all-languages.zip
$ mv phpMyAdmin-4.1.9-all-languages phpmyadmin
$ sudo mv phpmyadmin /usr/share
[/bash]
nginx phpmyadmin連携
ここが一番のポイント。かなりハマったので、参考にしていただければと・・・
nginxの設定ファイルの php連携の記述の下あたりに、以下のような感じで、phpmyadminとの連携を記述してください。nginxは正規表現で指定したlocationで一番マッチ度が高いものを採用する仕組みみたいです。
ポイントは、/phpmyadmin へのアクセスを定義し、入れ子で!!! phpmyadmin配下の *.phpファイルへのアクセスを定義してあげます。
[diff mark=”16,19″]
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
# NOTE: You should have “cgi.fix_pathinfo = 0;” in php.ini
# With php5-cgi alone:
#fastcgi_pass 127.0.0.1:9000;
# With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
ここ以下を追加
location /phpmyadmin {
root /usr/share;
index index.php;
location ~ ^/phpmyadmin.+\.php$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
include fastcgi_params;
}
}
[/diff]
nginx再起動
[bash]
$ sudo /etc/init.d/nginx restart
[/bash]
確認
http://localhost/phpmyadmin へアクセスし、こんな感じで表示されれば、めでたしめでたしです。

Leave a comment