设置 apache 和 mod_fastcgi 与 php-fpm 一起工作,但不起作用

设置 apache 和 mod_fastcgi 与 php-fpm 一起工作,但不起作用

我尝试使用 apache 设置 php-fpm

我仍然缺少一块拼图,因为页面返回 404

The requested URL /php-fpm/index.php was not found on this server.

Apache/2.2.24 (Unix) DAV/2 mod_fastcgi/2.4.6 Server at test.dev Port 80

据我所知,别名中提到的路径不必存在,但它应该与以下 ExternalServer 指令匹配。套接字路径与 php-fpm 配置中设置的完全相同。我 chmodded -R 777 var 和 tmp 目录以及站点目录。我看到套接字和 fastcgi 具有相同的所有者“_www”,这些是默认设置,无需更改它们。

php54 --with-php-fpm、mod_fastcgi 随 Homebrew 一起安装,但是本指南也没有帮助我

我还能做什么?任何建议都非常感谢。

这是我的 httpd 中的内容

<IfModule mod_fastcgi.c>
 #   <FilesMatch \.php$>
   #     SetHandler php-script
 #   </FilesMatch>
 #   Action php-script /php.external
#    Alias   /php.external   /var/run/mod_fastcgi/php.fpm
AddHandler php-fastcgi .php
Action php-fastcgi /php-fpm
 Alias   /php-fpm   /var/run/mod_fastcgi/php.fpm

    FastCGIExternalServer /var/run/mod_fastcgi/php.fpm -socket /tmp/php-fpm.sock -idle-timeout 900 -pass-header Authorization
    AddType application/x-httpd-fastphp5 .php
    DirectoryIndex index.php index.shtml index.cgi index.html index.htm
    Options +Indexes +FollowSymLinks +ExecCGI +Includes +MultiViews
    <Directory "/var/run/mod_fastcgi/">
        Order deny,allow
        Deny from all
        <Files "php.fpm">
            Order allow,deny
            Allow from all
        </Files>
    </Directory>
</IfModule>


<VirtualHost *>  
    DocumentRoot "/Users/redres/Webdev/testsite/public"  
    ServerName test.dev
    ServerAlias www.test.dev
  <Location /php-fpm>
              Order Deny,Allow
              Deny from all
              Allow from env=REDIRECT_STATUS
          </Location>

答案1

我花了好几天的时间研究 Apache 2.2 和 PHP-FPM,直到我意识到除非FastCgiWrapper设置为 ,否则它无法工作Off。不确定这对你是否有影响,但它解决了我的问题。请注意任何Apache 执行的 FastCgi 脚本将不是此后通过 suexec 运行。PHP-FPM 不需要这个,但您可能正在运行其他 FastCgi 实例。

相关内容