UbuntuのPHP+NginxでリモートなXdebug (1) Nginx PHP対応
ローカルPCのEclipseからサーバ上のPHPをリモートデバッグします。
PHP環境はすべてサーバ側に置き、ローカルはEclipseとプラグインだけにして軽量化、PHPコードもサーバ上だけに一元化します。
UbuntuのバージョンはServer14.04。PHP5とNginxはaptでインストール済みとします。サーバーのIPアドレスはstaticです。
まずはFPM(FastCGI Process Manager)をインストールします。
$ sudo apt-get install -y php5-fpm
NginxをPHPに対応させるため、/etc/nginx/sites-available/defaultを編集します。
変更は3ヶ所。インデックスファイル名追加とサーバー名設定、それからコメントアウトされているPHPの設定を有効に。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
--- /etc/nginx/sites-available/default.org 2014-07-21 15:20:37.320471527 +0900 +++ /etc/nginx/sites-available/default 2014-07-21 16:18:24.240252118 +0900 @@ -22,10 +22,10 @@ listen [::]:80 default_server ipv6only=on; root /usr/share/nginx/html; - index index.html index.htm; + index index.php index.html index.htm; # Make site accessible from http://localhost/ - server_name localhost; + server_name 192.168.2.18; location / { # First attempt to serve request as file, then @@ -51,17 +51,17 @@ # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # - #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 ~ \.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; + } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one |
server_nameにはサーバーのホスト名かIPアドレスを設定します。ここではひとまずIPアドレスで良いでしょう。この例では192.168.2.18です。
コメント中に「php.iniに”cgi.fix_pathinfo = 0;”と書け」とあるのでそのようにします。
1 2 3 4 5 6 7 8 9 10 11 |
--- /etc/php5/fpm/php.ini.org 2014-07-21 16:16:42.932251102 +0900 +++ /etc/php5/fpm/php.ini 2014-07-21 16:17:02.096251294 +0900 @@ -765,7 +765,7 @@ ; of zero causes PHP to behave as before. Default is 1. You should fix your scripts ; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. ; http://php.net/cgi.fix-pathinfo -;cgi.fix_pathinfo=1 +cgi.fix_pathinfo=0 ; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate ; security tokens of the calling client. This allows IIS to define the |
設定確認のためのphpinfo.phpをNginxのドキュメントルート/usr/share/nginx/htmlに置きます。
1 2 3 |
<?php phpinfo(); ?> |
設定が済んだらNginxとFPMを再起動します。
$ sudo service php5-fpm restart
$ sudo service nginx restart
ブラウザでhttp://hostname/phpinfo.phpを開き、下のような画面が表示されれば設定は完了です。