首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php-fpm for Windows?

php-fpm for Windows?
EN

Stack Overflow用户
提问于 2010-12-27 23:25:01
回答 5查看 60.8K关注 0票数 39

PHP -FPM的主页http://php-fpm.org/指出,它是PHP5.3.3以后的PHP的一部分。现在,我在想,当我从php.net下载最新的PHP二进制文件时,里面没有php-fpm。我怎么才能得到它?它甚至可以在Windows上使用吗?

EN

回答 5

Stack Overflow用户

发布于 2012-05-18 01:41:13

下面是如何在Windows上设置php-fpm:

  1. http://windows.php.net/download/下载.zip文件。.zip文件应该是包含FastCGI文件(php-cgi.exe)的VC9。不要下载VC6,也不要下载.msi文件,因为要安装php-fpm,您需要已经安装了IIS。zip文件包含php-cgi.exe,这是php-fpm所需的。我从这里下载了一个稍微老一点的版本,C:\php-5.3.10-Win32-VC9-x86
  2. Edit -5.3.10-win32-vc9-x86.zip,因为我想匹配我的生产服务器上运行的版本。
  3. 解压文件,例如根据需要解压成php.ini文件。我做了什么:nginx安全设置cgi.fix_pathinfo=0 extension_dir =“C:\php-5.3.10-win32-vc9-x86\ext”通过取消注释来启用以下模块:

在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

  • Double 127.0.0.1:9123 -c -b单击.bat文件启动php-fpm。将弹出一个窗口,并在运行时保持打开状态。这是一种恼人的,但只是没有考虑将其设置为服务yet.

  • Configure您的网络服务器。如果你想在nginx中使用它,这里有一个127.0.0.1:9123的配置示例:

位置~ .php$ { fastcgi_pass 127.0.0.1:9123;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}

票数 27
EN

Stack Overflow用户

发布于 2014-08-08 10:28:18

Alan的回答是一个很好的开始。但是,对于Apache2.4和更高版本,您不需要将PHP-FPM作为单独的服务运行,您可以使用mod_fcgid来处理Apache中的所有事情。

下面是一个配置示例:

代码语言:javascript
复制
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。我花了痛苦的几天才弄明白。

票数 14
EN

Stack Overflow用户

发布于 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进程。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4539670

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档