我尝试使用 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 实例。