设为首页 加入收藏

TOP

Mac OS X 10.9编译OCI8模块
2015-07-30 11:18:09 来源: 作者: 【 】 浏览:110
Tags:Mac 10.9 编译 OCI8 模块

本文为笔者以前的记录,虽然是Mac OS X 10.9的版本,但是应该也是能在10.10上完美成功


php是通过动态加载动态链接库来使用各个php扩展的。无论是mysql还是gd图形库,都是以动态链接库的形式发布的。我首先baidu了一下,Mac用户想要使用oracle的人真不少,但是大多数给出的方案都是重新编译php。很多人甚至不用Mac自带的apache2和php,直接自己编译apache和php,我个人是不赞同这样做的。既然他已经给你做好了php和apache,那这个基本上是最不会出问题的。所以我也就没有采用,准备选择编译成.so的形式来加载。


但是翻看了一个多小时,几乎没有编译so模块的文章,即使有编译的文章也都是靠macport,brew等第三方软件包下载zlib等各种库文件来编译,个人精神洁癖问题 ,这种方式也不在选择之列。


既然网上没有,那我就去看一下php和oracle的官方文档。但是oracle那里写的很啰嗦,居然还要安装oracle11g,php那里倒是找到了一篇关于动态链接库模块编译的东西。


有三种方法


啰哩啰唆的说了一堆,其实就是具体编译oci8.so然后在php.ini中加载。


上google搜索了一下有这么一个外国网站倒是有了一篇关于编译oci8的文章


其实就是要下载Oracle官方的instantclient,根据basic中的dylib文件和sdk中的头文件来编译,至于第二个sqlplus则是可有可无的东西,用来独立连接oracle数据库官方下载地址 我当然不可能去下载10g的客户端,直接下载了11g的instantclient。 下载完成以后解压所有文件到一个文件夹instantclient_11_2里面,目录如下:


图片描述


下面打开终端,复制必要的文件到系统目录下。


接下来下载编译oci8,其实这个可以用pecl来自动化完成。但是你必须安装好autoconf和Xcode命令行工具,autoconf我是直接编译安装的,这个百度搜索一下就行了,Xcode命令行工具本来我安装的,结果10.8-10.9的时候被升级干掉了,所以只能再安装一遍,我是后来编译出错,查看信息,发现是缺少头文件,当时很纳闷,都放到/usr/include了怎么还缺少,原来是命令行工具的include文件夹被干掉了。只能再重新安装。


用pecl很自动化的


然后出现提示:


这是要你提供instantclient动态链接库的目录的意思
直接输入instantclient,/usr/lib然后就编译好了oci8.so
如果没有pecl,那手动下载oci8的源代码:


php_oci8-1.3.4.tgz


解压zip文件进入目录


然后打开/etc/php.ini在extension的段落加上extension=oci8.so就行了,重启apache使用phpinfo函数就能看到oci8被成功加载了。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Java 注解入门 自动生成SQL语句 下一篇Objective-C 第一个OC程序

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: