目次
PHP5 をインストールします
Nginx をインストールします
PHP FastCGI を構成する
PHP FastCGI と Nginx を同時に起動するために start_nginx.bat を作成します:
ホームページ バックエンド開発 PHPチュートリアル Windows での Nginx + PHP5 のインストールと構成

Windows での Nginx + PHP5 のインストールと構成

Jun 13, 2016 pm 01:13 PM
fastcgi nginx php server windows

Windows での Nginx + PHP5 のインストールと構成

PHP5 をインストールします

まず、http://windows.php.net/download/ からダウンロードします。 最新の PHP 5.3 Windows バージョンをダウンロードします。ここでは、PHP は FastCGI モードで実行されるため、None Thead Safe バージョンをダウンロードしてください。

C:php5 に解凍し、圧縮パッケージ内の php.ini-recommended の名前を php.ini に変更してから、いくつかのオプションを開いて変更します。

1
2
3
4
5
6
7
8
9
10
11
ログイン後にコピー
<span style="color: #000099;">error_reporting</span>
 <span style="color: #000066; font-weight: bold;">=</span>
<span style="color: #660066;"> E_ALL</span>

<span style="color: #000099;">display_errors</span>
 <span style="color: #000066; font-weight: bold;">=</span>
<span style="color: #660066;"> On</span>

<span style="color: #000099;">extension_dir</span>
 <span style="color: #000066; font-weight: bold;">=</span>
 <span style="color: #993333;">"C:\php5\ext"</span>

?
<span style="color: #666666; font-style: italic;">; 动态扩展,可以根据需要去掉 extension 前面的注释 ; </span>

<span style="color: #666666; font-style: italic;">; 如加载 PDO, MySQL</span>

<span style="color: #000099;">extension</span>
<span style="color: #000066; font-weight: bold;">=</span>
<span style="color: #660066;">php_pdo.dll</span>

<span style="color: #000099;">extension</span>
<span style="color: #000066; font-weight: bold;">=</span>
<span style="color: #660066;">php_pdo_mysql.dll</span>

?
<span style="color: #666666; font-style: italic;">; CGI 设置</span>

cgi.fix_pathinfo <span style="color: #000066; font-weight: bold;">=</span>
<span style="color: #660066;"> 1</span>
ログイン後にコピー

?

PHP の拡張機能をロードするときは、依存関係に注意する必要があります。たとえば、php_exif.dll には php_mbstring.dll が必要です。 正常にロードするには、php_mbstring.dll を php_exif.dll の前に配置する必要があります。一部の拡張機能は、PHP 5.0 以降などの追加の dll ファイルに依存します。 、php_mysqli.dll は libmysql.dll と php_oci8.dll に依存します。Oracle 8 をインストールする必要があります。 クライアント。これらの依存関係についてよくわからない場合は、インストール パッケージの install.txt ファイルを参照してください。

依存ファイルの検索順序: 最初は php.exe が配置されているディレクトリ、次に Apache の bin ディレクトリなどの Web サーバーの起動場所が検索されます。 Windows PATH 環境変数内のディレクトリ。ここではしないでください 必要に応じて、ファイルを Windows ディレクトリにコピーし、将来の PHP アップグレードを容易にするために C:php5 を PATH に追加します。

Nginx をインストールします

v0.7.52 から、Nginx は Windows バージョンの Nginx のリリースを開始します。公式 Web サイトからダウンロードできます:
http://nginx.net

Windows 用の古いバージョンの Nginx が必要な場合は、Kevin Worthington で見つけることができます。 ウェブサイトで探してください。

私は 0.8.29 を使用しています。ダウンロード後、リリース ファイルを C:nginx に解凍します。

それでは、PHP で動作できるように Nginx を設定するにはどうすればよいでしょうか?

PHP FastCGI を構成する

Nginx はリクエストを処理するために FastCGI サーバーと連携する必要があります。PHP FastCGI サーバーを実行するには 2 つの方法があります。1 つは PHP の組み込み FastCGI マネージャーを使用する方法です。

1
ログイン後にコピー
C:<span style="color: #000000; font-weight: bold;">/</span>
php5<span style="color: #000000; font-weight: bold;">/</span>
php-cgi.exe <span style="color: #660033;">-b</span>
 127.0.0.1:<span style="color: #000000;">9000</span>
 <span style="color: #660033;">-c</span>
 C:<span style="color: #000000; font-weight: bold;">/</span>
php5<span style="color: #000000; font-weight: bold;">/</span>
php.ini
ログイン後にコピー

もう 1 つの方法は、PHP-FPM、cgi-fcgi などのサードパーティ ツールを使用することです。どうやら! Windows でこれらのツールを使用するのは面倒です。おそらく Cygwin のようなものが必要です。そうする人もいます。 、それは面倒なことだと思いますが。

次のステップでは、PHP リクエストを PHP FastCGI サーバーに転送するように Nginx を変更します。

1
2
3
4
5
6
ログイン後にコピー
<span style="color: #adadad; font-style: italic;"># pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000</span>

location ~ ^(.+\.php)(.*)$ {
    root            D:/public_html;
    fastcgi_param   SCRIPT_FILENAME     $document_root$fastcgi_script_name;  
    <span style="color: #00007f;">include</span>
         php.conf;
}
ログイン後にコピー

ルート、つまり $document_root は、php スクリプトのルート ディレクトリを指し、Web サイトのルート ディレクトリに設定されます。 Windowsで 以下では、ルート パスに注意する必要があります。パス区切り文字として Windows のデフォルトの代わりに「/」を使用することをお勧めします。 "" としないと、問題が発生しやすくなります。たとえば、このパス: D:public_htmltest は機能せず、Nginx は 500 エラーをスローします。 テスト内の t はタブ文字として解析されます。もちろん、D:\public_html\test のようにバックスラッシュ エスケープを追加することもできます。

php.conf 設定ファイル:

1
2
3
4
5
6
7
8
9
10
11
12
ログイン後にコピー
ログイン後にコピー
<span style="color: #adadad; font-style: italic;"># 连接到本机 9000 端口,这里的端口是指 PHP FastCGI Server 开启的端口,</span>

<span style="color: #adadad; font-style: italic;"># 请与 php-cgi.exe 开启的端口保持一致</span>

<span style="color: #adadad; font-style: italic;"># 当 Nginx 收到 php 文件的请求时,会自动转发到 PHP FastCGI Server</span>

fastcgi_pass    127.0.0.1:<span style="color: #ff0000;">9000</span>
;
fastcgi_index   index.php;
?
<span style="color: #adadad; font-style: italic;"># Nginx 默认是不支持 CGI PATH_INFO,SCRIPT_NAME 的值也不标准(糅合了 PATH_INFO)</span>

<span style="color: #adadad; font-style: italic;"># 下面的两行指令,可以从 SCRIPT_NAME 中剥离出 PATH_INFO</span>

fastcgi_split_path_info     ^(.+\.php)(.*)$;
fastcgi_param PATH_INFO     $fastcgi_path_info;
?
<span style="color: #00007f;">include</span>
   fastcgi_params;
ログイン後にコピー

設定を保存するために独立した php.conf を作成するのは、単に nginx.conf を効率化するためです。これをすべてメインの設定ファイルに記述することもできます。

php.ini を変更し、cgi.fix_pathinfo = 1 に設定します 、これは非常に重要です。PHP は SCRIPT_FILENAME を実際のファイル アドレスに修正します。そうしないと、PHP は処理する必要がある php ファイルを見つけることができなくなります。

その他の設定、メインサーバー:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
ログイン後にコピー
<span style="color: #adadad; font-style: italic;"># 默认开启的进程数</span>

worker_processes  <span style="color: #ff0000;">1</span>
;
?
error_log  logs/error.log;
<span style="color: #adadad; font-style: italic;">#error_log  logs/error.log  notice;</span>

<span style="color: #adadad; font-style: italic;">#error_log  logs/error.log  info;</span>

?
<span style="color: #adadad; font-style: italic;">#pid        logs/nginx.pid;</span>

?
events {
<span style="color: #adadad; font-style: italic;"># 一个进程所处理的最大连接数上限,</span>

<span style="color: #adadad; font-style: italic;"># 本地开发,不需要默认的 1024,这里改为 64</span>

    worker_connections  <span style="color: #ff0000;">64</span>
;
}
ログイン後にコピー

デフォルトのindex.phpindex.htmlなどのホームページファイルがディレクトリにない場合、Nginxは403エラーをスローします。このディレクトリをリストする必要がある場合は、http {…}に次のコマンドを追加します。 🎜 >

1
2
3
ログイン後にコピー
autoindex <span style="color: #0000ff;">on</span>
;
autoindex_exact_size <span style="color: #0000ff;">on</span>
;
autoindex_localtime <span style="color: #0000ff;">on</span>
;
ログイン後にコピー
OK、統合しましょう

PHP FastCGI と Nginx を同時に起動するために start_nginx.bat を作成します:

1
2
3
4
5
6
7
8
9
10
11
12
ログイン後にコピー
ログイン後にコピー
<span style="color: #33cc33;">@</span>
<span style="color: #b1b100; font-weight: bold;">echo</span>
 off
<span style="color: #808080; font-style: italic;">REM Windows 下无效</span>

<span style="color: #808080; font-style: italic;">REM set PHP_FCGI_CHILDREN=5</span>

<span style="color: #808080; font-style: italic;">
REM 每个进程处理的最大请求数,或设置为 Windows 环境变量</span>

<span style="color: #b1b100; font-weight: bold;">set</span>
 PHP_FCGI_MAX_REQUESTS=1000
?
<span style="color: #b1b100; font-weight: bold;">echo</span>
 Starting PHP FastCGI...
RunHiddenConsole C:/php5/php-cgi.exe -b 127.0.0.1:9000 -c C:/php5/php.ini
?
<span style="color: #b1b100; font-weight: bold;">echo</span>
 Starting nginx...
C:/nginx/nginx.exe -p C:/nginx
ログイン後にコピー
RunHiddenConsole.exe は、DOS ウィンドウを非表示にするために使用される小さなプログラムです。ここで見つけることができます。 ダウンロード。 start_nginx.bat を開いた後、DOS ウィンドウも表示されますが、安全に閉じることができ、Nginx と php-cgi.exe は閉じられません。


stop_nginx.bat と同じ、閉じるために使用されます:

これで基本的な設定が完了しました。

1階 vb2005xu 2012-08-09
http://www.phpvim.net/web/php/build-php5-4-and-xdebug-on-win32.html

2階 vb2005xu 2012-08-14
http://www.phpvim.net/web/php/script-for-php-buildin-fcgi-server.html

3階 vb2005xu 2012-08-15
ウィンビンダー
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHP:データベースとサーバー側のロジックの処理 PHP:データベースとサーバー側のロジックの処理 Apr 15, 2025 am 12:15 AM

PHPはMySQLIおよびPDO拡張機能を使用して、データベース操作とサーバー側のロジック処理で対話し、セッション管理などの関数を介してサーバー側のロジックを処理します。 1)MySQLIまたはPDOを使用してデータベースに接続し、SQLクエリを実行します。 2)セッション管理およびその他の機能を通じて、HTTPリクエストとユーザーステータスを処理します。 3)トランザクションを使用して、データベース操作の原子性を確保します。 4)SQLインジェクションを防ぎ、例外処理とデバッグの閉鎖接続を使用します。 5)インデックスとキャッシュを通じてパフォーマンスを最適化し、読みやすいコードを書き、エラー処理を実行します。

PHPの目的:動的なWebサイトの構築 PHPの目的:動的なWebサイトの構築 Apr 15, 2025 am 12:18 AM

PHPは動的なWebサイトを構築するために使用され、そのコア関数には次のものが含まれます。1。データベースに接続することにより、動的コンテンツを生成し、リアルタイムでWebページを生成します。 2。ユーザーのインタラクションを処理し、提出をフォームし、入力を確認し、操作に応答します。 3.セッションとユーザー認証を管理して、パーソナライズされたエクスペリエンスを提供します。 4.パフォーマンスを最適化し、ベストプラクティスに従って、ウェブサイトの効率とセキュリティを改善します。

Nginxが開始されるかどうかを確認する方法 Nginxが開始されるかどうかを確認する方法 Apr 14, 2025 pm 01:03 PM

nginxが開始されるかどうかを確認する方法:1。コマンドラインを使用します:SystemCTLステータスnginx(Linux/unix)、netstat -ano | FindStr 80(Windows); 2。ポート80が開いているかどうかを確認します。 3.システムログのnginx起動メッセージを確認します。 4. Nagios、Zabbix、Icingaなどのサードパーティツールを使用します。

PHPおよびPython:コードの例と比較 PHPおよびPython:コードの例と比較 Apr 15, 2025 am 12:07 AM

PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

Nginxが起動されているかどうかを確認する方法は? Nginxが起動されているかどうかを確認する方法は? Apr 14, 2025 pm 12:48 PM

Linuxでは、次のコマンドを使用して、nginxが起動されるかどうかを確認します。SystemCTLステータスNGINXコマンド出力に基づいて、「アクティブ:アクティブ(実行)」が表示された場合、NGINXが開始されます。 「アクティブ:非アクティブ(dead)」が表示されると、nginxが停止します。

Linuxでnginxを開始する方法 Linuxでnginxを開始する方法 Apr 14, 2025 pm 12:51 PM

Linuxでnginxを開始する手順:nginxがインストールされているかどうかを確認します。 systemctlを使用して、nginxを開始してnginxサービスを開始します。 SystemCTLを使用して、NGINXがシステムスタートアップでNGINXの自動起動を有効にすることができます。 SystemCTLステータスNGINXを使用して、スタートアップが成功していることを確認します。 Webブラウザのhttp:// localhostにアクセスして、デフォルトのウェルカムページを表示します。

Dockerでミラーを作成する方法 Dockerでミラーを作成する方法 Apr 15, 2025 am 11:27 AM

Docker画像を作成する手順:ビルド命令を含むDockerFileを書きます。 Docker Buildコマンドを使用して、ターミナルで画像を作成します。画像にタグを付け、Dockerタグコマンドを使用して名前とタグを割り当てます。

Windowsでnginxを構成する方法 Windowsでnginxを構成する方法 Apr 14, 2025 pm 12:57 PM

Windowsでnginxを構成する方法は? nginxをインストールし、仮想ホスト構成を作成します。メイン構成ファイルを変更し、仮想ホスト構成を含めます。 nginxを起動またはリロードします。構成をテストし、Webサイトを表示します。 SSLを選択的に有効にし、SSL証明書を構成します。ファイアウォールを選択的に設定して、ポート80および443のトラフィックを許可します。

See all articles