ホームページ >バックエンド開発 >PHPチュートリアル >Windows nginx PHP設定
伝説によると、nginx は Apache よりも負荷分散がはるかに優れており、成果物と呼ぶことができます。しかし、私は新しいものにはまったく興味がありませんでした。ただし、多くのサーバーは http サーバーとして nginx を使用しています。今日はそれについて少し学んでみましょう。インターネットで検索すると、Linux での nginx と php の設定が紹介されていることがほとんどです。今度は Windows で試してみたいと思いますが、情報が少なく、あまり正確ではないことがわかりました。この過程でも多くの問題に遭遇しましたが、幸運なことに、いくつかの苦労の末に最終的に解決することができました。 Windows での nginx と php の設定について説明します。間違いがある場合はご容赦ください。
準備リソース:
APM を使用していることがわかりました。これは非常に使いやすく、Apache、PHP、MySQL を統合しています。今回これをオフにするには、3 つのファイルを再ダウンロードする必要があります。リソースを準備する必要があります。そうしないとプレイできません。ふふ。
Nginx ダウンロード アドレス: http://sysoev.ru/nginx/nginx-0.8.16.zip
PHP ダウンロード アドレス: http://cn.php.net/distributions/php-5.2.11-Win32.zip
MySQL ダウンロード アドレス: http://download.mysql.cn/download_file/zip/5.0/mysql-5.0.22-win32.zip
PHP の設定:
ダウンロードした PHP を次の場所に抽出します: D:php, Just find好きな場所で。 php.ini-recommended をバックアップし、名前を php.ini に変更します。次にphp.iniを編集します。
基本的には、PHP 設定ファイルに多くの変更はありません。拡張ファイルを開くなどの詳細については説明しません。注意する必要がある重要な点がいくつかあります。
docroot??php ファイルを指定します。保存ディレクトリは documentroot です。 doc_root = “e:www”拡張子格納ディレクトリ extension_dir??実際の拡張子格納アドレスに変更します。 extension_dir = “./ext”
デフォルトのタイムゾーンの変更??[日付]を追加します: date.timezone = Asia/ChongQing
nginxはcgi phpを必要とするため、以下の場所が重要なポイントです。それ以外の場合、nginx phpを開くことができませんファイル:
enable_dl = On
cgi.force_redirect = 0
cgi.fix_pathinfo=1
fastcgi.impersonate = 1
cgi.rfc2616_headers = 1
Nginx を構成します:
ダウンロードした nginx を D:nginx ディレクトリに抽出します。設定ファイルは conf ディレクトリに保存する必要があるのは明らかですが、他に何を言うことができますか?以前は、nginx.conf ファイルの変更が必要でした。
見たかどうかわかりませんが、構成ファイルが非常に明確でシンプルであることを嬉しく思います。少なくともApacheよりはずっとシンプルです。それは人々を心の底から幸せに見せます。具体的な設定は次のとおりです:
エラー ログを開きます: error_log logs/error.log;
スレッド数を変更します。これはローカル開発に使用されるため、スレッド数が多すぎません: worker_connections 64;
デフォルトを変更します。ファイルエンコーディング: charset gbk;
Nginx と PHP を開始します:
Nginx の開始は非常に簡単で、nginx ディレクトリの下にある nginx.exe をダブルクリックするだけです。ただし、phpの起動はcgiを使用するため少し特殊です。インターネット上の方法に従って RunHiddenConsole.exe をダウンロードしました。このツールで実行された cmd ウィンドウは自動的に閉じます。そうしないと、CMD ウィンドウが常に表示されていると、頭がくらくらしてしまいます。
phpを起動するためのstart_php.batを作成します。 ファイルの内容は以下の通りです:
@echo off
echo PHP FastCGIの起動...
RunHiddenConsole.exe d:phpphp-cgi.exe -b 127.0.0.1: 9000 - c d: phpphp.ini
@echo off
echo nginx を停止しています...
taskkill /F /IM nginx.exe > nul
echo Stopping PHP FastCGI...
taskkill /F /IM php-cgi.exe > nul
exit
デフォルトのポート 80 を使用しているため、localhost に直接アクセスできます。 2 つのスクリーンショットを以下に示します。
ようこそnginx
nginxのディレクトリ構造
設定ファイルの図:
ここの画像は単なるランダムなスクリーンショットであり、テキストは赤くマークされていません。ランダムに書き、無駄な部分をすべて削除しました(無駄ではありません。構成を変更または拡張しなかっただけです)。
nginx conf desc
nginx 設定ファイル:
php.ini 長すぎますので、後で渡します。 nginx 設定ファイルをリリースするだけですが、驚かないでください。
#user 誰も ;
worker_processes 1 ;
error_log logs/error.log ;
#error_log logs/error.log 通知 ;
#error_log logs/error.log 情報 ;
#pid logs/nginx.pid ;
イベント {
worker_connections 64 ;
}
http {
include mime.types ;
default_type application/octet-stream ;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# ' "$http_user_agent" "$http_x_forwarded_for" ;
#access_log logs/access.log main ;
sendfile on ;
#tcp_nopush オン ;
#keepalive_timeout 0 ;
keepalive_timeout 65 ;
#gzip オン ;
サーバー {
聞く 80 ;
サーバー名 ローカルホスト ;
文字セット gbk ;
#access_log logs/host.access.log main ;
location / {
root e:www ;
インデックス index.htmlindex.htmindex.php ;
自動インデックスオン ;
}
#error_page 404 / 404.html ;
# サーバーエラーページを静的ページ /50x.html にリダイレクトします
#
error_page 500 502 503 504 /50x.html ;
location = /50x.html {
root html ;
}
# 127.0.0.1でリッスンするApacheにPHPスクリプトをプロキシします: 80
#
#location ~ .php$ {
# proxy_pass http://127. 0.0.1 ;
# }
# 127.0.0.1でリッスンしているFastCGIサーバーにPHPスクリプトを渡す: 9000
#
#location ~ .php$ {
# root html ;
# fastcgi_pass 127.0.0.1: 9000 ;
# fastcgi_index index.php ;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name ;
# include fastcgi_params ;
# }
location ~ .php$ {
fastcgi_pass 127.0.0.1: 9000 ;
fastcgi_index index.php ;
fastcgi_param SCRIPT_FILENAME e:www$fastcgi_script_name ;
fastcgi_params を含めます。
}
# Apache のドキュメントルートの場合、.htaccess ファイルへのアクセスを拒否します
# nginx のドキュメントルートと一致する
#
#location ~ /.ht {
# denyすべて;
# }
}
# IP、名前、ポートベースの構成を組み合わせて使用する別の仮想ホスト
#
#server {
# listen 8000 ;
# 聞いてください somename: 8080 ;
# server_name somename alias another.alias ;
# location / {
# root html ;
# index index.htmlindex.htm ;
# }
# }
# HTTPSサーバー
#
#server {
# listen 443 ;
# server_name localhost ;
# ssl オン ;
# ssl_certificate cert.pem ;
# ssl_certificate_key cert.key ;
# ssl_session_timeout 5m ;
# ssl_protocols SSLv2 SSLv3 TLSv1 ;
# ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP ;
# ssl_prefer_server_ciphers オン ;
# location / {
# root html ;
# index index.htmlindex.htm ;
# }
# }
}