php-fpm for Windows?

2022-08-30 12:16:28

PHP-FPM的主页 http://php-fpm.org/ 声明它自PHP 5.3.3以来一直是PHP的一部分。现在,我想知道,当我从 php.net 下载最新的PHP二进制文件时,其中没有php-fpm。我如何获得它?它甚至可用于Windows吗?


答案 1

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

  1. 从 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/,因为我想匹配在我的生产服务器上运行的版本。

  2. 解压缩文件,例如解压缩到 C:\php-5.3.10-Win32-VC9-x86

  3. 根据需要编辑 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
    
  4. 在某个地方创建一个.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
    
  5. 双击.bat文件以启动 php-fpm。将弹出一个窗口,并在其运行时保持打开状态。它有点烦人,但还没有考虑将其设置为服务。

  6. 配置您的网络服务器。如果您希望将其与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;
    }
    

答案 2

这篇文章很旧,我必须在这里权衡,因为这里发布的内容不是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过程。


推荐