php配置oci8
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php配置oci8相关的知识,希望对你有一定的参考价值。
1.下载oracle client rpm
Instant Client for Linux http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64
oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64
$rpm -ivh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
$rpm -ivh oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm
这里下这两个就可以,然后安装
随即会在这个目录下生成.so的文件
/usr/lib/oracle/11.2/client64/lib
$ls /usr/lib/oracle/11.2/client64/lib
$echo /usr/lib/oracle/11.2/client64/lib/ > /etc/ld.so.conf.d/oracle_client.conf
At this point, you‘re ready to register your newly-installed libraries:
$ldconfig -v
2.配置phpize
下载的版本要和php版本一致,不然装不了
php-devel-5.3.3-26 x86_64 download
phpize,一种构建工具,为php扩展准备构建环境。
[[email protected] tmp]# rpm -ivh php-devel-5.3.3-26.el6.x86_64.rpm
warning: php-devel-5.3.3-26.el6.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 192a7d7d: NOKEY
Preparing... ########################################### [100%]
1:php-devel ########################################### [100%]
[[email protected] tmp]# whereis phpize
phpize: /usr/bin/phpize /usr/share/man/man1/phpize.1.gz
3.配置oci8
https://pecl.php.net/package/oci8 oci8下载
[[email protected] oci]# cd
oci8-1.3.3/ oci8-1.3.3.tgz package.xml
[[email protected] oci]# cd oci8-1.3.3
[[email protected] oci8-1.3.3]# ls
config.m4 CREDITS oci8_collection.c oci8_interface.c oci8_statement.c php_oci8_int.h tests
config.w32 oci8.c oci8.dsp oci8_lob.c php_oci8.h README
[[email protected] oci8-1.3.3]# phpize
Configuring for:
PHP Api Version: 20090626
Zend Module Api No: 20090626
Zend Extension Api No: 220090626
When prompted, enter either the value of $ORACLE_HOME, or instantclient,/path/to/instant/client/lib.
Note: Do not enter the variable $ORACLE_HOME because it will not be expanded. Instead, enter the actual path of the Oracle home directory.
If using an RPM-based installation of Oracle Instant Client, the configure line will look like this:
./configure --with-oci8=shared,instantclient,/usr/lib/oracle/<version>/client/lib
For example, --with-oci8=shared,instantclient,/usr/lib/oracle/12.1/client/lib
Note that Oracle Instant Client support first appeared in PHP 4.3.11 and 5.0.4 and originally used the option --with-oci8-instant-client to configure PHP.
[[email protected] oci8-1.3.3]# ./configure -with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client64/lib
....
checking for cc option to produce PIC... -fPIC -DPIC
checking if cc PIC flag -fPIC -DPIC works... yes
checking if cc static flag -static works... no
checking if cc supports -c -o file.o... yes
checking if cc supports -c -o file.o... (cached) yes
checking whether the cc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
configure: creating ./config.status
config.status: creating config.h
config.status: executing libtool commands
make install
Libraries have been installed in:
/tmp/oci/oci8-1.3.3/modules
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR‘
flag during linking and do at least one of the following:
- add LIBDIR to the `LD_LIBRARY_PATH‘ environment variable
during execution
- add LIBDIR to the `LD_RUN_PATH‘ environment variable
during linking
- use the `-Wl,-rpath -Wl,LIBDIR‘ linker flag
- have your system administrator add LIBDIR to `/etc/ld.so.conf‘
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
Installing shared extensions: /usr/lib64/php/modules/
$echo extension=oci8.so > /etc/php.d/oci8.ini
$/etc/init.d/httpd restart
oci8的安装官方文档参考如下:
http://php.net/manual/en/oci8.installation.php
4.验证下php能否连上oracle数据库:
可以看到phpinfo中的信息oci8模块已经加载了
[[email protected] html]# more get_dbinfo.php
<?php
$db_connect = oci_connect(‘system‘, ‘xxx‘, ‘(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1
30.131)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = deff)))‘);
$sql_query = oci_parse($db_connect, ‘select status from v$instance‘);
oci_execute($sql_query,OCI_DEFAULT);
##echo $sql_query
while($r=oci_fetch_row($sql_query))
{
echo $r[0];
echo "<BR>";
}
?>
[[email protected] html]# php get_dbinfo.php
OPEN<BR>[[email protected] html]#
在这里,关于php的配置全部完成,后面就是关于一些php与数据库,与shell脚本相结合做出html界面的东西。
=============ENDED============
以上是关于php配置oci8的主要内容,如果未能解决你的问题,请参考以下文章