ton*_*nix 8 php apache fastcgi mod-fastcgi
请允许我声明我是FastCGI的新手.我的OS X机器上有MAMP的Apache.默认的PHP处理程序是Apache Handler 2.0(libphp5.so).我想改变FastCGI并遵循这里的答案:如何配置Apache在Ubuntu 12.04上通过终端运行PHP作为FastCGI?
我在httpd.conf的末尾添加了以下内容:
<IfModule mod_fastcgi.c>
AddHandler php5.fcgi .php
Action php5.fcgi /php5.fcgi
Alias /php5.fcgi /Applications/MAMP/fcgi-bin/php5.fcgi
FastCgiServer /Applications/MAMP/fcgi-bin/php5.fcgi -socket /Applications/MAMP/tmp/php-fcgi/php5-fpm.sock -pass-header Authorization -idle-timeout 3600
#FastCgiExternalServer /Applications/MAMP/fcgi-bin/php5.fcgi -socket /Applications/MAMP/tmp/php-fcgi/php5-fpm.sock -pass-header Authorization -idle-timeout 3600
<Directory /Applications/MAMP/fcgi-bin>
Order allow,deny
Allow from all
</Directory>
</IfModule>
Run Code Online (Sandbox Code Playgroud)
但是,正如您所看到的,FastCgiExternalServer已被注释掉.相反,我不得不使用FastCgiServer原因,否则Apache在尝试请求页面时会给我以下错误:
[星期五06月23日23:25:22] [错误] [客户端:: 1](2)没有这样的文件或目录:FastCGI:无法连接到服务器"/Applications/MAMP/fcgi-bin/php5.fcgi" : 连接失败
[星期五06月23日23:25:22 2016] [错误] [client :: 1] FastCGI:从服务器"/Applications/MAMP/fcgi-bin/php5.fcgi"收到的不完整标题(0字节)
但/Applications/MAMP/fcgi-bin/php5.fcgi存在且其内容是:
#!/bin/bash
PHP_CGI=/Applications/MAMP/bin/php/php5.6.2/bin/php-cgi
exec $PHP_CGI
Run Code Online (Sandbox Code Playgroud)
什么之间的区别FastCgiServer和FastCgiExternalServer,为什么FastCgiExternalServer在我的情况没有工作,但FastCgiServer工作?
cov*_*ner 12
FastCgiServer是一个服务器,mod_fastcgi将进行进程管理 - 上下旋转实例并为它们提供一个unix域套接字来监听.启动fastcgi服务器无需外部操作.
FastCgiExternalServer是mod_fastcgi不会对其进行任何进程管理的服务器 - 它只会触及您告诉它使用的unix或TCP套接字并转发对它的请求/响应.你或httpd之外的一些守护进程必须启动一些东西来监听列出的套接字.最基本的方法是'fcgistarter'实用程序,其他选项是像php-fpm这样的东西.
| 归档时间: |
|
| 查看次数: |
7113 次 |
| 最近记录: |