mar*_*000 32 php windows fastcgi
PHP-FPM的主页http://php-fpm.org/表明它是PHP 5.3.3以来的PHP的一部分.现在,我想知道,当我从php.net下载最新的PHP二进制文件时,它没有php-fpm.我怎么得到它?它甚至适用于Windows吗?
Ala*_*lan 26
这里如何在Windows上设置php-fpm:
从http://windows.php.net/download/下载.zip文件..zip文件应该是VC9,它有FastCGI文件(php-cgi.exe).不要下载VC6,也不要下载.msi文件,因为它要求你已经安装了IIS才能安装php-fpm.zip文件包含php-cgi.exe,这是php-fpm所需要的.我从http://windows.php.net/downloads/releases/archives/下载了一个稍旧版本的php-5.3.10-Win32-VC9-x86.zip,因为我想匹配我的生产中运行的版本服务器.
解压缩文件,例如解压缩到C:\ php-5.3.10-Win32-VC9-x86
根据需要编辑php.ini文件.我做了什么:
# nginx security setting
cgi.fix_pathinfo=0
extension_dir = "C:\php-5.3.10-Win32-VC9-x86\ext"
Run Code Online (Sandbox Code Playgroud)
通过取消注释来启用以下模块:
extension=php_curl.dll
extension=php_mbstring.dll
extension=php_mysqli.dll
Run Code Online (Sandbox Code Playgroud)在某处创建一个.bat文件,例如webserver目录或PHP目录中的start-php-fcgi.bat:
@ECHO OFF
ECHO Starting PHP FastCGI...
set PATH=C:\php-5.3.10-Win32-VC9-x86;%PATH%
C:\php-5.3.10-Win32-VC9-x86\php-cgi.exe -b 127.0.0.1:9123 -c C:\php-5.3.10-Win32-VC9-x86\php.ini
Run Code Online (Sandbox Code Playgroud)双击.bat文件以启动php-fpm.一个窗口将弹出并在运行时保持打开状态.它有点烦人,但还没有考虑将其设置为服务.
配置您的网络服务器.如果您希望将它与nginx一起使用,请参阅127.0.0.1:9123的配置示例:
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9123;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
Run Code Online (Sandbox Code Playgroud)Eri*_*ane 11
Dereckson的回答是一个很好的开始.但是,对于Apache 2.4及更高版本,您不需要将PHP-FPM作为单独的服务运行,您可以使用mod_fcgid来处理Apache中的所有内容.
这是一个示例配置:
LoadModule fcgid_module modules/mod_fcgid.so
FcgidInitialEnv PHPRC "c:/php"
FcgidInitialEnv PATH "c:/php;C:/WINDOWS/system32;C:/WINDOWS;C:/WINDOWS/System32/Wbem;"
FcgidInitialEnv SystemRoot "C:/Windows"
FcgidInitialEnv SystemDrive "C:"
FcgidInitialEnv TEMP "C:/WINDOWS/Temp"
FcgidInitialEnv TMP "C:/WINDOWS/Temp"
FcgidInitialEnv windir "C:/WINDOWS"
FcgidIOTimeout 64
FcgidConnectTimeout 16
FcgidMaxRequestsPerProcess 500
<Files ~ "\.php$">
AddHandler fcgid-script .php
FcgidWrapper c:/php/php-cgi.exe .php
</Files>
Run Code Online (Sandbox Code Playgroud)
请注意,这是基于Apache Lounge中的帖子.虽然有用,但是他们的版本引用了c:/php/php-cgi.exe,如果你这样做,它将无法启动php-cgi.exe,至少在Windows Server 2012上,你获得HTTP 500.我痛苦的几天才弄明白.
小智 9
这个帖子很旧,我必须在这里权衡,因为这里发布的不是PHP-FPM,它使用Fast-CGI运行PHP.
是PHP-FPM代表PHP-FastCGI流程管理器,因此实现了FastCGI,但您忘记了FPM远不止于此,因为它包含不由Web服务器管理的流程管理功能.
在*nix系统上,PHP-FPM有一个单独的进程来管理PHP子进程,并具有详细的配置来指定如何管理这些进程.有关这些功能的详细阅读这里
在Windows上启动CGI进程并不是一回事.它不会产生工作进程或动态扩展它们或允许多线程.
目前还没有适用于Windows的PHP-FPM. http://php.net/manual/en/install.fpm.php#121725
但是,如您所愿,您可以根据需要启动CGI流程.
小智 2
PHP-FPM 目前仅适用于 Linux。有一些网站提供了有关如何在 cygwin 下在 Windows 上运行 php-fpm 的教程。您可以尝试这些指南。
| 归档时间: |
|
| 查看次数: |
47429 次 |
| 最近记录: |