文档章节

PHP 7 Apache 2.4 fastcgi mod_fcgid配置方法

JungleKing
 JungleKing
发布于 2015/12/22 11:06
字数 744
阅读 716
收藏 0

PHP 7可以作为Apache模块安装运行,也可以作为CGI程序运行,作为CGI程序安装运行时,不需要php5apache2_2.dll或者 php5apache2_4.dll,下载非线安全版的PHP7即可,这样可以让PHP同时支持Apache和Nginx等多个服务器软件,非线程安全版 即NTS版。

PHP7作为Apache模块安装时不能和VC 9、VC10或者VC11的Apache一起运行,以fastcgi形式安装不受此限,前提是需要安装相应的VC运行库

首先下载PHP 7和Apache 2.4,解压。

下载mod_fcgid,然后将下载得的mod_fcgid.so文件复制到Apache的modules目录

然后在httpd.conf文件中添加以下内容。

注意事项:

  • PHP安装路径如果包含空格,需要在每个空格前加一个\符号,

  • 路径中的非英文字符时必须转码为utf-8,

  • 原则上建议路径不要包含空格或中文字符。

  • 请将以下配置中的路径修改为你电脑上面正确的路径。



LoadModule fcgid_module modules/mod_fcgid.so

<IfModule fcgid_module>
        FcgidInitialEnv PHPRC "F:/Web/PHPServer/Bin/PHP"
        FcgidInitialEnv PHP_FCGI_MAX_REQUESTS      1000
        FcgidMaxRequestsPerProcess       1000
        FcgidMaxProcesses             15
        FcgidIOTimeout             120
        FcgidIdleTimeout                120
        AddType application/x-httpd-php .php
        <Files ~ "\.php$>"
          AddHandler fcgid-script .php
          FcgidWrapper "F:/Web/PHPServer/Bin/PHP/php-cgi.exe" .php
        </Files>
</IfModule>

为站点根目录的Options增加ExecCGI,假设根目录是F:/Web/www

<Directory "F:/Web/www">
        AllowOverride All
        Options -Indexes +ExecCGI
</Directory>

其他配置项略。经常出现的错误及解决方案:

Apache 以fastcgi mod_fcgid方式PHP时出现 Wrapper D:/Program cannot be accessed: (720002)\xcf\xb5\xcd\xb3\xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xce\xc4\xbc\xfe\xa1\xa3 是因为PHP的安装路径中包含空格,如D:\Program Files\PHPServer\Bin\PHP,这是Apache fastcgi mod_fcgid的一个Bug,只要将PHP安装到一个路径没有空格的目录即可,如F:\Web\PHPServer\Bin\PHP,也可以在每个空 格前加反斜线\,如"C:\Program\ Files\php\php-cgi.exe",如果路径包含中文字符等非英文字符,那么必须将配置文件转码为utf-8,否则也会出错。详见:Apache facgid FcgidWrapper Wrapper cannot be accessed.

Apache mod_fcgid: get overlap result error 多半是PHP扩展加载有误,有可能是新版PHP不再支持某些扩展,如MySQL扩展库,但却在ini文件时面加载了这些扩展,出现这样的情况,只需要双击 PHP安装目录下面的php.exe,如果有错误,会自动弹出信息提示错误,按照提示将错误改正即可。比如之前说的在php.ini里面加载了不支持的扩 展,那么就会报错:PHP Warning: PHP Startup: Unable to load dynamic library '..../php_mysql.dll' - 找不到指定的模块 in unknown on line 0,那么就在php.ini中在 extension=php_mysql.dll 前面加个英文状态的分号,或者直接删除这一行,这是因为PHP7不支持mysql扩展,原来的mysql_*系列函数不再可用。

如果没有增加ExcecCGI,将会出现403错误,即没有权限访问。


本文转载自:http://www.51-n.com/t-4335-1-1.html

共有 人打赏支持
JungleKing
粉丝 3
博文 89
码字总数 8561
作品 0
天津
程序员
Apache2.4.4 + PHP5.4.12 + FastCGI 模式配置

很悲剧的Windows服务器,而且是x64的,很悲剧的找不到php5apache.dll,于是想到以FastCGI的方式配置PHP运行。 Apache和PHP版本是发博时候的最新版,难找资料,下载地址。 Apache 2.4 win64 b...

leeldy
2013/03/02
0
1
Apache2+PHP5+mod_fcgid

apache2底下带有支持PHP解析的内嵌模块libapache2-mod-php5,一般都是使用这种方式支持PHP脚本的解析,现在想把两者分开,采用fastcgi的模式运行PHP脚本,这样还可以解析pl、python等脚本,而...

China_OS
2013/03/21
0
1
CentOS安装Apache的FastCGI模块(mod_fastcgi)

网上有很多篇关于Apache的fastcgi模块安装说明的文章,大部分都是基于Apache源码编译的,如果是通过yum install方式安装httpd的话,直接依葫芦画瓢必然会遇到各种各样的编译问题,通过查阅老...

alanlqc
2013/07/29
0
0
php安装模式mod_php和Fastcgi的选择与对比

安装php又面临到了模式的选择,以前都是选择modphp模式,因为这样安装比较方便哈,今天突然关心起FastCGI这种模式,败毒了一把,找到了一些关于modphp和Fastcgi的选择与对比这方面的讨论,现...

mickelfeng
2013/02/20
0
0
FastCGI(php-cgi)工作原理

一、FastCGI是什么?   FastCGI是语言无关的、可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获 得较高的性能。众所周知,CGI解释器的反复加载是CGI性能低下的主...

王锐
2012/07/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSX | SafariBookmarksSyncAgent意外退出解决方法

1. 启动系统, 按住⌘-R不松手2. 在实用工具(Utilities)下打开终端,输入csrutil disable, 然后回车; 你就看到提示系统完整性保护(SIP: System Integrity Protection)已禁用3. 输入reboot回车...

云迹
今天
4
0
面向对象类之间的关系

面向对象类之间的关系:is-a、has-a、use-a is-a关系也叫继承或泛化,比如大雁和鸟类之间的关系就是继承。 has-a关系称为关联关系,例如企鹅在气候寒冷的地方生活,“企鹅”和“气候”就是关...

gackey
今天
4
0
读书(附电子书)|小狗钱钱之白色的拉布拉多

关注公众号,在公众号中回复“小狗钱钱”可免费获得电子书。 一、背景 之前写了一篇文章 《小狗钱钱》 理财小白应该读的一本书,那时候我才看那本书,现在看了一大半了,发现这本书确实不错,...

tiankonguse
今天
4
0
Permissions 0777 for ‘***’ are too open

异常显示: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ......

李玉长
今天
5
0
区块链10年了,还未落地,它失败了吗?

导读 几乎每个人,甚至是对通证持怀疑态度的人,都对区块链的技术有积极的看法,因为它有可能改变世界。然而,区块链技术问世已经10年了,我们仍然没有真正的用上区块链技术。 几乎每个人,甚...

问题终结者
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部