牛骨文教育服务平台(让学习变的简单)
博文笔记

Apache服务器配置Php7

创建时间:2015-12-05 投稿人: 浏览次数:962

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就配置完成,其中有两点需要注意的:

  1. Php依赖的C++类库版本;
  2. 将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的性能,是提升不少,但没宣传中的那么多,可能是我的机器太陈旧了。^_^



声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。