如何在php.ini中为oci8(Oracle)启用扩展 - PHP警告:PHP启动:在第0行的未知中

pro*_*mer 5 php apache oracle

我有Windows XP,最近我安装了wamp(apache-mysql-php)32位.我测试了安装(用php和apache连接到mysql数据库),一切正常.

现在我需要连接到Oracle数据库,所以我尝试启用一些与Oracleoci8相关的扩展.

我做了:

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和所有服务,我得到了一个

  • "PHP StartUp"警告.

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扩展,接下来应该做些什么呢?

谢谢

pro*_*mer 7

[解决了]

我下载了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模块.

  • @Yaroslav:不!这对于Windows上的Apache 2.4 + PHP 5.5 64位无效.我试过(添加即时客户端文件夹作为PATH中的第一个条目)和php_oci8.dll仍然会导致警告.只将所有这些文件复制到apache/bin才能使工作正常进行!将它们复制到php/ext是没有必要的! (3认同)