ホームページ >バックエンド開発 >PHPチュートリアル >Windows で FastCGI モードで PHP を実行する Apache 1.3_PHP チュートリアル
我一直以来都是以 ISAPI 模式运行 php(做为现在的主流开发语言) 的,这种方式最大的缺点就是稳定性不好,当 php(做为现在的主流开发语言) 出错的时候,apache(Unix平台最流行的WEB服务器平台)进程也死掉了。后来看到网上关于 php(做为现在的主流开发语言) 以 Fastcgi(现在已经不多人在用了) 模式运行的介绍,其中提到的种种好处(稳定、安全、高性能)让我决定尝试一下。
不过事情远不如预计的那么顺利。Google 了无数次也没找到一篇如何在 Windows 下用 apache(Unix平台最流行的WEB服务器平台) + Fastcgi(现在已经不多人在用了) 跑 php(做为现在的主流开发语言) 的资料,iis(微软的WEB服务器平台) + Fastcgi(现在已经不多人在用了) 跑 php(做为现在的主流开发语言) 的倒是不少。其中有一篇提到 Zend 公司也推荐以 Fastcgi(现在已经不多人在用了) 模式运行 php(做为现在的主流开发语言)(http://php(做为现在的主流开发语言)lens.com/php(做为现在的主流开发语言)everywhere/fastcgi(现在已经不多人在用了)-php(做为现在的主流开发语言))。
经过几个小时的摸索,终于成功实现了 apache(Unix平台最流行的WEB服务器平台) 1.3 + Fastcgi(现在已经不多人在用了) 跑 php(做为现在的主流开发语言)。
准备工作:
首先访问 http://www.fastcgi(现在已经不多人在用了).com/dist/ 下载用于 apache(Unix平台最流行的WEB服务器平台) 的 mod_fastcgi(现在已经不多人在用了)。我使用的是 mod_fastcgi(现在已经不多人在用了)-2.4.2-AP13.dll。下载后将这个文件复制到 apache(Unix平台最流行的WEB服务器平台) 的 modules 目录中。
下载 php(做为现在的主流开发语言)(我使用的 php(做为现在的主流开发语言)-5.0.4),并解压缩,根据需要修改 php(做为现在的主流开发语言).ini 文件。注意不需要从 php(做为现在的主流开发语言) 所在目录复制任何文件到 Windows 目录中。
修改配置:
然后修改 httpd.conf 文件,加入下面几行:
LoadModule fastcgi(现在已经不多人在用了)_module modules/mod_fastcgi(现在已经不多人在用了)-2.4.2-AP13.dll
ScriptAlias /fcgi(现在已经不多人在用了)-php(做为现在的主流开发语言)5/ "d:/usr/local/php(做为现在的主流开发语言)-5.0.4/"
Fastcgi(现在已经不多人在用了)Server "d:/usr/local/php(做为现在的主流开发语言)-5.0.4/php(做为现在的主流开发语言)-cgi(现在已经不多人在用了).exe" -processes 3
# 说明:此处的 -processes 3 表示启动三个 php(做为现在的主流开发语言)-cgi(现在已经不多人在用了).exe 进程,
# 关于 Fastcgi(现在已经不多人在用了)Server 的详细参数请参考 Fastcgi(现在已经不多人在用了) 文档。
AddType application/x-httpd-fastphp(做为现在的主流开发语言)5 .php(做为现在的主流开发语言)
Action application/x-httpd-fastphp(做为现在的主流开发语言)5 "/fcgi(现在已经不多人在用了)-php(做为现在的主流开发语言)5/php(做为现在的主流开发语言)-cgi(现在已经不多人在用了).exe"
# 说明:根据你的 php(做为现在的主流开发语言) 文件所在位置修改上面两处黑体字。
修改完成后,重新启动 apache(Unix平台最流行的WEB服务器平台) 即可。
よくある質問:
私の多くの実験によると、最も一般的な問題は主にパスが原因で発生します。したがって、まず php (現在の主流の開発言語として).ini および httpd.conf ファイル内のすべてのパスが正しいかどうかを確認してください。 2 つ目は、php (現在の主流の開発言語として) が以前にシステムにインストールされている場合、C:Windowsphp (現在の主流の開発言語として).ini の名前を変更するか削除する必要があります。
次に、php (現在の主流の開発言語として) ファイルが保存されているディレクトリに十分な権限があるかどうかを確認します (私はそれをEveryone - フル コントロールに設定しました。とにかく、開発において多くのセキュリティ制限を考慮する必要はありません)機械)。
Fastcgi(現在はあまり使用していない) phpを実行するモード(現在の主流の開発言語として)
利点: Fastcgiでphpを実行する(現在はあまり使用していない)モード(現在の主流の開発言語として)主流の開発言語)には、いくつかの主な利点があります。 1 つ目は php (現在の主流の開発言語として) です。エラーが発生しても、Apache (Unix プラットフォームで最も人気のある WEB サーバー プラットフォーム) はダウンしません。主流の開発言語) 私自身のプロセスがクラッシュします (ただし、Fastcgi(現在はあまり使用していない) は、クラッシュしたプロセスを置き換えるために新しい php(現在の主流の開発言語として) プロセスをすぐに再起動します)。第二に、Fastcgi(現在はあまり使用していない)モードはphp(現在の主流の開発言語として)を実行します。これはISAPIモードよりもパフォーマンスが優れています(私は元々apache(Unixプラットフォームで最も人気のあるWEBサーバープラットフォーム)を使用していました) ) ベンチがテストを実施しましたが、結果を保存するのを忘れました。興味がある場合は、自分でテストできます。 最後に、php
5とphp(現在の主流の開発言語として)4を同時に実行することができます。以下の設定ファイルを参照すると、2 つの仮想ホストが確立され、1 つは php(現在の主流の開発言語)5 を使用し、もう 1 つは php(現在の主流の開発言語)4 を使用します。 LoadModule fastcgi
(今はあまり多くの人が使っていません)_module modules/mod_fastcgi(あまり多くの人が使っていません)-2.4.2-AP13.dll ScriptAlias /fcgi
(あまり多くの人が使っていません)多くの人が使用しています)-php(現在の主流の開発言語として)5/ "d:/usr/local/php(現在の主流の開発言語として)-5.0.4/ " Fastcgi (現在はあまり多くの人が使用していません)
Server "d:/usr/local/php(現在の主流の開発言語として)-5.0.4/php(現在の主流の開発言語として) -cgi(今はあまり使っている人がいない).exe" -processes 3 ScriptAlias /fcgi(今はあまり使っている人がいない)
-php(現在の主流の開発言語として)4 / "d:/usr/local/php(現在の主流の開発言語として)-4.3.11/" Fastcgi(今はあまり多くの人が使っていません)
Server "d:/usr/local/ php(現在の主流の開発言語として)-4.3.11/php(現在の主流の開発言語として).exe" Listen 80
DocumentRoot d:/www
ServerName php
(現在の主流の開発言語として)
5.localhost AddType application/x-httpd-fastphp
5.php(現在の主流の開発言語として) 主流の開発言語) Action application/x-httpd-fastphp(現在の主流の開発言語として)
5 "/fcgi(現在はあまり使用していない)-php(現在の主流の開発言語として) 開発言語) 5/php(現在の主流の開発言語として)-cgi(今はあまり多くの人が使っていません).exe"
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allowed,deny
Allowすべてから
Listen 8080
NameVirtualHost *:8080Options Indexes FollowSymlinks MultiViews
ServerName php