PHP -FPM的主页http://php-fpm.org/指出,它是PHP5.3.3以后的PHP的一部分。现在,我在想,当我从php.net下载最新的PHP二进制文件时,里面没有php-fpm。我怎么才能得到它?它甚至可以在Windows上使用吗?
发布于 2012-05-18 01:41:13
下面是如何在Windows上设置php-fpm:
在the服务器目录或PHP目录中启动一个.bat文件,例如extension=php_curl.dll -PHP-fcgi.bat:
@ECHO关闭ECHO启动PHP FastCGI...set PATH=C:\php-5.3.10-Win32-VC9-x86;%PATH% C:\php-5.3.10-Win32-VC9-x86\php-cgi.exe C:\php-5.3.10-Win32-VC9-x86\php.ini
位置~ .php$ { fastcgi_pass 127.0.0.1:9123;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}
发布于 2014-08-08 10:28:18
Alan的回答是一个很好的开始。但是,对于Apache2.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> 请注意,这是基于post in Apache Lounge的。正如它是有用的,他们的版本在c:/php/php-cgi.exe附近有引号,如果你这样做了,它将不会启动php-cgi.exe,至少在Windows Server 2012上,你会得到HTTP 500。我花了痛苦的几天才弄明白。
发布于 2018-01-18 14:27:34
虽然这篇文章很老了,但我必须在这里进行权衡,因为这里发布的不是PHP-FPM,而是使用Fast-CGI运行PHP。
是的,PHP-FPM代表PHP-FastCGI Process Manager,因此实现了FastCGI,但您忘记了FPM远不止于此,因为它包含不受Yes服务器管理的进程管理特性。
在*nix系统上,PHP-FPM有一个单独的进程来管理PHP子进程,并有一个详细的配置来指定如何管理这些进程。有关这些功能的详细信息,请阅读here
在windows上启动CGI进程不是一回事。它不会占用工作进程,也不会动态缩放它们,也不允许多线程。
目前还没有适用于windows的PHP-FPM。http://php.net/manual/en/install.fpm.php#121725
但是,正如建议的那样,如果愿意,您可以启动CGI进程。
https://stackoverflow.com/questions/4539670
复制相似问题