如何将OCI8安装到现有的PHP?

zac*_*con 5 php linux oci8

根据这个(从PECL安装OCI8,自动化),我所要做的就是输入pecl oci8 install.

但这只会让我反复出现以下错误.

No releases available for package pecl.php.net/oci8.

另一个网站建议我试试pear install pecl/oci8.发生同样的错误.

我该怎么做才能解决这个问题?

Hap*_*ppy 5

我在 Ubuntu LTS 14.04 上遇到同样的错误:

~$ sudo pecl install oci8
No releases available for package "pecl.php.net/oci8"
install failed
Run Code Online (Sandbox Code Playgroud)

最后的原因是代理问题:我的电脑位于公司代理服务器之后。运行以下命令添加代理

~$ sudo pear config-set http_proxy http://proxy.mycompany.com:8080/
config-set succeeded
Run Code Online (Sandbox Code Playgroud)

然后再次运行命令,效果如下

~$ sudo pecl install oci8
downloading oci8-2.0.8.tgz ...
Starting to download oci8-2.0.8.tgz (190,854 bytes)
....done: 190,854 bytes
11 source files, building
running: phpize
Configuring for:
PHP Api Version:         20121113
Zend Module Api No:      20121212
Zend Extension Api No:   220121212
Run Code Online (Sandbox Code Playgroud)

这里我们输入 Oracle Instant 客户端文件夹,如下所示:

Please provide the path to the ORACLE_HOME directory. Use 'instantclient,/path/to/instant/client/lib' if you're compiling with Oracle Instant Client [autodetect] : instantclient,/opt/oracle/instantclient_12_1
Run Code Online (Sandbox Code Playgroud)

然后命令行继续输出:

building in /tmp/pear/temp/pear-build-rootJafknN/oci8-2.0.8
running: /tmp/pear/temp/oci8/configure --with-oci8=instantclient,/opt/oracle/instantclient_12_1
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
...
...
Build process completed successfully
Installing '/usr/lib/php5/20121212/oci8.so'
install ok: channel://pecl.php.net/oci8-2.0.8
configuration option "php_ini" is not set to php.ini location
You should add "extension=oci8.so" to php.ini
Run Code Online (Sandbox Code Playgroud)

祝你好运。