Apache服务器配置Php7
2015年12月3日,php7正式Released。此前一直听说这个版本的性能提高的非常非常多,所以想亲自试一试,在自己机器上部署了一遍,在安装部署过程中,也遇到不少问题,故写此文,以存留备查。也可以为大家提供一些参考意见。
首先,Apache服务器下载2.4版本,Php下载7.0版本。附地址:
Apache服务器下载地址:
http://httpd.apache.org/
php下载地址:
http://php.net/
在下载Php的时候,会发现Php7依赖的是VC14,这是个什么版本呢?
其实是VC++2015对应的依赖库,下载地址可以在这里找到:https://www.microsoft.com/zh-CN/download/details.aspx?id=48145
本人在安装的时候就忽略了这一步,直接安装配置Apache+Php,但是在启动Httpd的服务的时候会报“Cannot load php7apache2_4.dll into server” 的错误,这一步卡了一阵子。
在安装完依赖库后,进行apache+Php配置,这里的配置php.ini跟以前没什么区别,Apache的httpd.conf有点小区别,就是加载模块库不太一样,即:
LoadModule php7_module E:/php7/php7apache2_4.dll
在php5时,加载的是php5_module,现在版本升级了,这里也要做对应修改。
到这里,配置完成之后,启动Apache服务,发现服务启动不起来,查找Windows应用程序运行日志发现如下错误:
错误应用程序名称: httpd.exe,版本: 2.4.17.0,时间戳: 0x
错误模块名称: php7ts.dll,版本: 7.0.0.0,时间戳: 0x
由于目前用Php7的较少,所以费了些时间在网上google了一下,在一个比较隐蔽的地方找到了解决方案:
把Php的路径加入到系统Path
这个倒是以前没有过的。
将php的路径加入到Path里之后,再启动Httpd服务,这次正常了。
使用 phpinfo()输出如下:
至此,Apache2.4支持Php7就配置完成,其中有两点需要注意的:
- Php依赖的C++类库版本;
- 将Php路径加入到系统Path里;
之前据网上流传,Php7的向下兼容性达到99.99%,故拿以前用CI写的一个web站点测试了一下,发现有些错误提示:
Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP __construct
Php7的特性里有一条:
类的同名构造函数不推荐(目前没有移除,后续会去掉);
于是查了下报错的类,原来在这些类里直接使用的类名来写的构造函数,构造函数名都改成 __construct 网站就顺利跑起来了。
简单测了下Php7的性能,是提升不少,但没宣传中的那么多,可能是我的机器太陈旧了。^_^
- 上一篇: php插入javaScript代码
- 下一篇: PHP----JS相互调用