php-fpm for Windows?
PHP-FPM的主页 http://php-fpm.org/ 声明它自PHP 5.3.3以来一直是PHP的一部分。现在,我想知道,当我从 php.net 下载最新的PHP二进制文件时,其中没有php-fpm。我如何获得它?它甚至可用于Windows吗?
PHP-FPM的主页 http://php-fpm.org/ 声明它自PHP 5.3.3以来一直是PHP的一部分。现在,我想知道,当我从 php.net 下载最新的PHP二进制文件时,其中没有php-fpm。我如何获得它?它甚至可用于Windows吗?
以下是如何在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 所需要的。我下载了一个稍旧的版本,php-5.3.10-Win32-VC9-x86.zip,从这里 http://windows.php.net/downloads/releases/archives/,因为我想匹配在我的生产服务器上运行的版本。
解压缩文件,例如解压缩到 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"
通过取消注释来启用以下模块:
extension=php_curl.dll
extension=php_mbstring.dll
extension=php_mysqli.dll
在某个地方创建一个.bat文件,例如 start-php-fcgi.bat在 web 服务器目录或 PHP 目录中:
@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
双击.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;
}
这篇文章很旧,我必须在这里权衡,因为这里发布的内容不是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过程。