apache2 fcgi 安装多版本 PHP ,fcgi 不生效?

2017-06-05 13:46:11 +08:00
 m939594960

服务器环境:ubuntu 14.04 LTS + apache 2.4.7

.htaccess 文件中添加

AddHandler fcgid-script .php
Options +ExecCGI
FcgidWrapper /var/www/cgi-bin/php-fastcgi

这个文件 /var/www/cgi-bin/php-fastcgi 的内容

PHPRC=/etc/php56/
export PHPRC # php.ini directory.
export PHP_FCGI_MAX_REQUESTS=5000 # Num requests before restarting process.
export PHP_FCGI_CHILDREN=8
exec /usr/local/php56/bin/php-cgi # Call the regular PHP handler.

/usr/local/php56/bin/php-cgi -v 的结果

phpinfo 的结果

版本也没切换到理想的 php5.6 而且运行的模式好像也不是 fcgi

这是什么问题呢?

1482 次点击
所在节点    问与答
5 条回复
m939594960
2017-06-05 14:36:32 +08:00
大神们快来帮忙看看啊
stywell
2017-06-05 17:04:24 +08:00
1.apache 集成 php 一般采用 apche 模块方式, 也就是在 httpd.conf 里面有一个 php 的 apche 模块! 所以首先确认已经去掉 php 模块, 并且安装正确编译的 fast-cgi 模块及其主配置!

2.虚拟主机配置段内的 AllowOverride 是设置 .htaccess 文件中的那些内容可以覆盖主配置的! 所以请安装官方文档配置该字段

3.检查.htaccess 内配置的正确性


4.以上, 不确定能解决问题, 但你可以试试... 我也是半截瓮...
m939594960
2017-06-05 17:09:58 +08:00
@stywell #2 2~3 点都进行确认过了,应该是没问题的。第一点这块我想让原来的老程序走 php 的 apache 模块,新的程序(某个虚拟主机)走 fast-cgi 这种模式是可行的么?还是我当初一开始的思路就有问题
stywell
2017-06-05 18:11:59 +08:00
@m939594960
我觉得你还是, 用同一种方式比较好, 别 模块方式 和 fastCGI 方式 混用了, 更难处理!
刚才没详细看你的配置, 你的配置字段有些不对(如:FcgidWrapper)! 请参阅官方文章! 注意配置字段生效的上下文!

http://httpd.apache.org/docs/2.4/zh-cn/mod/core.html#allowoverride
http://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html

还有, 不建议把 fast-cgi 这么重要的配置放在.htaccess 里, 太不安全! 你可以放在虚拟主机的配置段! 然后备份 apache 的 conf 的!
m939594960
2017-06-05 18:20:37 +08:00
@stywell #4 放在.htaccess 只是为了方便调试,最后会调整到配置文件中,我看了下 FcgidWrapper 没发现有问题啊,我这段就是在这个手册上复制的
<Location /phpapp/> </Location> 我放在这里面也不行啊~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/366043

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX