### Windows Server 2008 64位环境下PHP连接Oracle数据库详解
#### 一、概述
在Windows Server 2008 64位环境下使用PHP连接Oracle数据库是一项常见需求,尤其对于需要进行跨平台数据处理的应用而言更是如此。本文档将详细介绍整个配置过程,包括必要的软件安装、环境变量配置以及PHP扩展启用等步骤。
#### 二、准备工作
**1. 下载 Oracle Instant Client**
- **下载地址**: [http://www.oracle.com/technetwork/topics/winx64soft-089540.html](http://www.oracle.com/technetwork/topics/winx64soft-089540.html)
- **下载内容**: instantclient-basic-windows.x64-11.2.0.4.0
- **解压路径**: `D:\Program Files(x86)\Oracle64Client\instantclient_11_2`
- 注: 客户端版本需与数据库版本保持一致,否则可能导致连接失败或不稳定。
**2. 配置系统环境变量**
- 在PATH环境变量后加入: `;D:\Program Files(x86)\Oracle64Client\instantclient_11_2`
**3. 用户变量设置**
- 添加PATH,值为: `C:\phpdev\Apache24\bin;C:\phpdev\php;C:\phpdev\MySQL\bin`
**4. 系统变量配置**
- ORACLE_HOME,值为: `C:\instantclient_11_2`
- NLS_LANG值为: `SIMPLIFIED CHINESE_CHINA.ZHS16GBK`
- TNS_ADMIN值为: `C:\instantclient_11_2\NETWORK\ADMIN`
- Path中添加: `C:\instantclient_11_2;`
**注意事项**:
- 32位和64位系统需要使用不同的Instant Client程序。
- 版本不一致会导致`php_oci8.dll`无法加载,同时`oci.dll`也无法正常工作。
- 必须正确配置相应的环境变量才能确保连接成功。
#### 三、配置PHP支持OCI扩展
**1. 修改PHP配置文件**
- 打开`php.ini`文件,找到并开启OCI扩展配置,例如:
- 将`;extension=oci8`前的分号去掉以启用扩展。
- 如果使用的是64位系统,确保使用了`oci8_64bit`扩展。
**2. 重启Apache服务**
- 使用命令`httpd -k restart`来重启Apache服务(假设Apache已安装并配置)。
**3. 测试扩展是否启用**
- 使用`phpinfo()`函数查看扩展是否已成功启用。
- 如果一切正常,`phpinfo()`页面应该会显示OCI8扩展的相关信息。
#### 四、测试数据库连接
**1. 创建测试脚本**
- 在站点根目录创建一个名为`oracle.php`的文件。
- 编写以下代码进行连接测试:
```php
<?php
$conn = oci_connect('test', 'test', '192.168.23.131:1521/dev');
if (!$conn) {
$error = oci_error();
print htmlentities($error['message']);
exit;
} else {
echo "Connected to Oracle Successfully!" . "<br>";
oci_close($conn);
}
?>
```
**2. 运行测试脚本**
- 在浏览器地址栏输入`http://localhost/oracle.php`
- 如果一切正常,页面将显示“Connected to Oracle Successfully!”。
#### 五、总结
通过以上步骤,您可以在Windows Server 2008 64位环境下成功配置PHP连接Oracle数据库。注意所有配置细节,特别是Oracle客户端和数据库版本的一致性,以及正确的环境变量配置,这对于实现稳定的数据库连接至关重要。