我有Windows XP,最近我安装了wamp(apache-mysql-php)32位.我测试了安装(用php和apache连接到mysql数据库),一切正常.
现在我需要连接到Oracle数据库,所以我尝试启用一些与Oracle和oci8相关的扩展.
我做了:
1)我打开php.ini文件,我删除了以下行之前的分号:
之前:
;extension=php_oci8.dll
;extension=php_oci8_11g.dll
Run Code Online (Sandbox Code Playgroud)
后:
extension=php_oci8.dll
extension=php_oci8_11g.dll
Run Code Online (Sandbox Code Playgroud)
2)我重新启动了apache和所有服务,我得到了一个
3)在php_error.log文件中我得到:
**PHP Warning: PHP Startup: in Unknown on line 0**
Run Code Online (Sandbox Code Playgroud)
所以,我认为检查我的扩展php文件夹的位置以及那些dll文件是否存在是个好主意.
在php.ini中,我的扩展文件夹位于:
extension_dir = "C:/wamp/bin/php/php5.4.16/ext/"
Run Code Online (Sandbox Code Playgroud)
该文件夹存在,这两个库(php_oci8.dll php_oci8_11g.dll)都在该文件夹中.
4) 我在Windows中的'Path'系统变量中添加了以下内容:
C:\wamp\bin\php\php5.4.16\ext;
Run Code Online (Sandbox Code Playgroud)
5)我在Apache的文件夹中复制了这两个dll文件,但它再次无效!
C:\wamp\bin\apache\Apache2.4.4\bin
Run Code Online (Sandbox Code Playgroud)
6)另外,我检查了phpinfo页面,我获得的"oci8"的唯一条目如下:
配置命令
"--with-oci8=C:\php-sdk\oracle\instantclient10\sdk,shared" "--with-oci8-11g=C:\php-sdk\oracle\instantclient11\sdk,shared"
Run Code Online (Sandbox Code Playgroud)
嗯...... 我的系统中不存在以下文件夹:
C:\php-sdk\oracle\instantclient10\sdk
C:\php-sdk\oracle\instantclient11\sdk
Run Code Online (Sandbox Code Playgroud)
那么,为了正确启用oci8扩展,接下来应该做些什么呢?
谢谢
[解决了]
我下载了Instant Client Package - Basic(版本10.2.0.5)并将其解压缩.
然后我将该包的所有文件复制到以下文件夹中:
C:/wamp/bin/php/php5.4.16/ext/
C:/wamp/bin/apache/Apache2.4.4/bin
Run Code Online (Sandbox Code Playgroud)
它以这种方式对我有用.之后加载了oci8模块.