Window下Apache+PHP切换PHP版本

一下载合适的PHP版本

打开cmd 输入 httpd -v 查看当前apache的版本以及支持的系统位数
Window下Apache+PHP切换PHP版本
这里可以看到apache32位的,所以我们下载的php也是需要PHP 32
进入php官网查看PHP版本此地址有全部的window PHP版本
我们需要下载的时 我win32-x86的PHP版本
Window下Apache+PHP切换PHP版本
php官网源下载很慢以下有我已下载好的php版本
百度网盘地址
提取码:fevg

二 安装

将下载好的php解压到系统的Web目录,这个是我的web服务器目录
Window下Apache+PHP切换PHP版本
配置Apache将php7配置成apache的模块
打开Apache\conf\httpd.conf
添加以下命令:
Window下Apache+PHP切换PHP版本
可以配置多个这样的命令,达到PHP版本切换的目的。

三 配置PHP

将php7下的php.ini-production复制一份,然后重命名为php.ini
编辑php.ini
1配置时区,去掉分号在等号后面加上 PRC
Window下Apache+PHP切换PHP版本
2 开启扩展,去掉以下命令之前的分号就是将扩展打开
Window下Apache+PHP切换PHP版本
3 配置php扩展目录,这个目录为php7下的ext文件路径,如果配置则php找不到扩展,第三步也起不了作用
Window下Apache+PHP切换PHP版本
4 curl扩展开启不了的原因
这个问题容易手配PHP的时候出现, 在php.ini中正确开启了curl扩展后, 在PHPINFO中却看不到相关的信息, 而Apache的日志会显示以下错误:

PHP Warning: PHP Startup: Unable to load dynamic library ‘D:\DEV\ENV\php-5.3.10\ext\php_curl.dll’ - xd5xd2xb2xbbxb5xbdxd6xb8xb6xa8xb5xc4xc4xa3xbfxe9xa1xa3rn in Unknown on line 0

什么原因造成的这个问题呢?

答案是curl扩展对库文件有依赖, 就像在Linux下面编译PHP的时候也需要安装依赖的库一样.

在PHP官网手册的Windows下安装扩展库的页面上已经详细的标注了PHP所有的扩展文件依赖那些库. 其中特别提示了以下内容 (http://php.net/manual/zh/install.windows.extensions.php)

有些扩展库需要额外的 DLL 才能工作。其中一部分包括在发行包里,PHP 4 中在 C:phpdlls目录下,PHP 5 中在主目录下,但还有一些,例如 Oracle( php_oci8.dll)所需要的 DLL 没有绑定在发行包里。如果安装 PHP 4,将绑定的 DLL 从 C:phpdlls拷贝到主目录 C:php中。别忘了将 C:php放到系统路径 PATH中去

在页面的介绍中,我们可以查询到curl扩展依赖libeay32.dll, ssleay32.dll这两个库文件, 这两个文件已经附属在PHP的Windows程序包中,我们无需去单独下载. 搞清楚了这些, 解决方法也很简单了: 让Windows或者Apache能顺利加载到这个2个dll文件即可, 下面我列出几个解决方案

方案1 将libeay32.dll, ssleay32.dll拷贝到c:windowssystem32文件夹中

方案2 将你PHP程序的目录加入到系统的PATH变量中即可

方案3 如果你使用的是Apache服务器且使用模块的方式来运行PHP的话, 可以在httpd.conf中加载PHP模块的配置语句之前加上下面两句话让Apache来加载这两个dll, 例子如下:
loadfile “D:\amp\php7\ssleay32.dll”
loadfile “D:\amp\php7\libeay32.dll”