wamp升级PHP版本,并连接Oracle

项目中原有的版本是 5.5.12,被扫描出CVE漏洞,要升级版本,虽然升级了肯定也会有漏洞。目前要将 5.5.12 升级到 5.6.7 。使用的集成环境 wamp。不要问我为什么又要搞 php,我也不知道啊。

系统: Windows Server 2012 R2

数据库:Oracle 11g

Windows用户到 https://windows.php.net/ 或者历史版本 https://windows.php.net/downloads/releases/archives/ 下载对应的版本。

这里直接使用 Php 5.6.7 x64 进行下载。

将文件解压存入到 wamp/bin/php 目录下,如图所示。之后将原有的 php.iniphpForApache.iniwampserver.conf 复制到新版本的 php 文件夹下。

对 php.ini 进行配置,根据直接的实际路径进行修改。

1
extension_dir = "d:/wamp/bin/php/php5.6.7/ext/"

对 wamp 进行重新启动,然后就可以在 php 选项中进行环境的切换。

此时就可以切换到新的 php 版本了。

对于 php 5.6 以上的版本,默认的链接 dll 为 php_oci8_12c.dll,也就是说,无法直接链接 oracle 11g 数据库。

版本选择注意

这里要注意,不能随便选择版本。

Oracle client 要和当前Oracle版本匹配,位数也要匹配。

oci 中也要和 php 版本对应,而且位数和线程安全也要一直。具体可以通过phpinfo() 来进行查看。

https://island-hexo.oss-cn-beijing.aliyuncs.com/phpinfo.png

要下载oracle client,http://www.oracle.com/technetwork/cn/database/features/instant-client/index-092699-zhs.html 针对自己的系统 php 版本和 oracle 版本进行下载。

连接Oracle 11g 需要 11.2.0.4.0 版 ,需要Basic Light 和 SQL*Plus 两个包。

下载完成后,同时解压。将解压后的文件路径添加到系统环境变量里,重启系统。

我们需要安装与 php 版本对应的 oci 包。oci 8 中对应版本为 5.6的2.0.10,对于位数和 nts 情况可以通过 phpinfo 来查看。

解压后里面会有几个 dll,我们使用 php_oci8.dll 和 php_oci8_11g.dll 复制到 wamp/bin/php/php5.6.7/ext/ 下。

重新启动 wamp,通过 phpinfo() 可以查看是否有 oci8 模块。

https://island-hexo.oss-cn-beijing.aliyuncs.com/oci8.png

此时就可以完成php5.6.7 对 oracle 11g 的连接。

要是外网访问 APache,首先要设置一个静态 IP,这样可以通过静态 IP 进行访问。

静态IP注意事项
如果已经使用了静态 ip,但是通过 ipconfig 仍旧可以看到 IPv4 地址 和你之前写的不是同一个IP,而配置的IP为复制,说明该ip已经被占用,需要更换一个IP。

在Windows Server 中,在 Internet协议版本4 中设置 IP 地址。

在Windows 防火墙内将 80 端口打开,允许出站和入站。

然后就可以通过其他机器访问该IP上的资源了。

目前来说,可以对系统进行访问,但是当我们进行页面访问的时候就会提示403错误。

针对该问题,需要进行对 Apache 配置文件进行设置。

修改 ./wamp/bin/apache/apache2.4.9/conf/httpd.conf 修改为以下

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
<Directory />
	Options FollowSymLinks
	AllowOverride none
	Require all granted
</Directory>

<Directory "d:/wamp/www/">
	Options Indexs FollowSymLinks
	AllowOverride all
	Require all granted
</Directory>

同时要对 ./wamp/bin/apache/apache2.4.9/conf/extra/httpd-vhosts.conf 进行修改。

对下面进行修改,改为自己的地址。

1
DocumentRoot "d:/wamp/www"

在上面的配置中有几个大的坑需要注意一下。

  1. 版本和位数一定要一致;
  2. 不同版本连接 Oracle 一定要下载对应版本的 clinet 并且对应的 oci;
  3. 网络配置上,如果出现了静态IP更改,就要更换静态IP,要不然连接不上。