前回はDebian 6.0(squeeze)にnginxをインストールして、静的なWebサイト(WordPressでないページ)を構築しました。
ゴールはWordpressもApacheからnginxに引っ越すことなのですが、今回はその前段階としてnginxでphpが動作するようにします。
なお、ApacheでWebサイトを運用中のため、今回はnginxはポート8080に対して応答するように設定しています。すべてが完了したらApacheを停止して、nginxにポート80を任せる予定です。
全体の設定
まずはnginxとphpを処理するphp-fpmの接続関係を設定しておきます。
これはWebサイトで共通な設定なので/etc/nginx/conf.dにphp-fpm.confという名前で次の内容のファイルを作成します。
upstream php { server 127.0.0.1:9000; }
テスト用Webサイトの作成
とりあえず一時的にテストするためにtest.scratcpad.jpというサイトを作ることにします。
まずは/etc/nginx/sites-availableにtestという名前で下記のファイルを作成します。
server { listen 8080; server_name test.scratchpad.jp; root /www/test; index index.php index.html index.htm; error_log /var/log/nginx/test-error.log warn; access_log /var/log/nginx/test-access.log combined; # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # location ~ /\.ht { deny all; } location ~ .php$ { fastcgi_pass php; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /www/test/$fastcgi_script_name; include fastcgi_params; } }
17行目から22行目がphpを処理するための記述です。
次にWebサイトのファイルを用意します。
/www/testにindex.phpという名前で次のファイルを作成します。
< ?php phpinfo(); ?>
/www/test以下のファイルの所有者をwww-dataに変更しておきます。
sudo chown www-data.www-data –R /www/test
あとは設定ファイルを有効にし、問題ないかどうかを確認し、新しく作った設定をnginxに読み込ませます。
sudo ngxensite test
Site test installed; run invoke-rc.d nginx reload to enable.
nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
/etc/init.d/nginx reload
Reloading nginx configuration: nginx.
テスト
それでは作成したテスト用Webサイトを表示してみましょう。Webブラウザのアドレスバーにテスト用サイトのURI(例: http://test.scratchpad.jp:8080/)を入力して下記のような画面が表示されれば成功です。
これでnginx経由でphpが動作することがわかったので、テスト用Webサイトは無効にしておきます。
sudo ngxdissite test
Site test disabled; run invoke-rc.d nginx reload to fully disable.
sudo /etc/init.d/nginx reload
Reloading nginx configuration: nginx.
sudo rm /etc/nginx/sites-available/test
まとめ
今回はnginxを用いて構築したWebサイトでphpが使用できるようにしました。これでようやくWordpressを引っ越す準備ができたという状況です。
次回はいよいよnginx上でWordpressを動かします。
コメント