Windows での nginx + php 構成
Apache のダウンロードに失敗しました。PHP インタープリターをモジュール化し、動的ライブラリとして独自のプロセスにロードするという Apache のデフォルトの方法に満足できませんでした。インターネット上の誰もが nginx が良いと言っていたので、nginx+ を使用しました。 php+mysql で設定します。
?
環境: Windows 7 32bit
バージョン: nginx 1.2.3、php-5.4.7-Win32-VC9-x86、mysql 5.5.27
?
nginxとphpはダウンロードして解凍すれば利用可能ですが、mysqlはインストールする必要があります。
?
php 解凍ディレクトリで、php.ini-development を php.ini ファイルにコピーし、その中で mysql モジュールをアクティブ化します。
?
;extension=php_exif.dll ; Must be after mbstring as it depends on it extension=php_mysql.dll ;extension=php_mysqli.dll ;extension=php_oci8.dll ; Use with Oracle 10gR2 Instant Client ;extension=php_oci8_11g.dll ; Use with Oracle 11gR2 Instant Client ;extension=php_openssl.dll ;extension=php_pdo_firebird.dll extension=php_pdo_mysql.dll ;extension=php_pdo_oci.dll
?
拡張機能のディレクトリを指定する行のコメントは削除する必要があることに注意してください。削除しないと、PHP はこれらの拡張機能をロードするデフォルト値として ext を自動的に使用しません。
?
; Directory in which the loadable extensions (modules) reside. ; http://php.net/extension-dir ; extension_dir = "./" ; On windows: extension_dir = "ext"
?
次に、PHP 組み込み CGI プログラムを開始し、nginx によってポート 9000 で送信されたリクエストをリッスンします。
?
php-5.4.7-Win32-VC9-x86> php-cgi.exe -b 127.0.0.1:9000
nginx ディレクトリで、conf/nginx.conf を変更し、fastcgi をアクティブ化します。
?
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; #fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #fastcgi_param SCRIPT_FILENAME D:/software/nginx-1.2.3/html$fastcgi_script_name; include fastcgi_params; }
?
デフォルトの設定ファイルでは、fastcgi_param SCRIPT_FILENAME が /scripts$fastcgi_script_name; で設定されていることに注意してください。これは、ここから .php ファイルを見つけることを意味します。このデフォルト設定は間違っています。この設定を使用すると、php ページにアクセスすると、「入力ファイルが指定されていません」というエラーが返されます。これを次の 2 つに変更する必要があります。現在のルート Web パスを表す $document_root を使用するか、ルート Web パスの絶対パスを直接使用します。
?
通常、index.php はルート パスのインデックスに配置する必要があります:
location / { root html; index index.html index.htm index.php; }
?
設定が完了したら、nginx を起動します。
?
D:\software\nginx-1.2.3> start nginx
document_root に単純な PHP ファイルを作成し、テストします:
?
<?php phpinfo(); ?>
?
ローカルで確認します: http://localhost:8080/index.php。通常はアクセスを有効にし、myspartan1 を表示できます