成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Mac OS X 10.9編譯OCI8模塊

tianhang / 2257人閱讀

摘要:無論是還是圖形庫(kù),都是以動(dòng)態(tài)鏈接庫(kù)的形式發(fā)布的。但是那里寫的很啰嗦,居然還要安裝,那里倒是找到了一篇關(guān)于動(dòng)態(tài)鏈接庫(kù)模塊編譯的東西。

  

本文為筆者以前的記錄,雖然是10.9的版本,但是應(yīng)該也是能在10.10上完美成功

最近要做圖書館查詢服務(wù)的轉(zhuǎn)換php,上次寫oracle中間層的時(shí)候因?yàn)闆]有oci8模塊和oracle實(shí)例,所以手工寫代碼沒有調(diào)試,這次工作量有些龐大,所以花費(fèi)了一些時(shí)間來安裝oci8模塊,方便php調(diào)試工作。

php是通過動(dòng)態(tài)加載動(dòng)態(tài)鏈接庫(kù)來使用各個(gè)php擴(kuò)展的。無論是mysql還是gd圖形庫(kù),都是以動(dòng)態(tài)鏈接庫(kù)的形式發(fā)布的。我首先baidu了一下,Mac用戶想要使用oracle的人真不少,但是大多數(shù)給出的方案都是重新編譯php。很多人甚至不用Mac自帶的apache2和php,直接自己編譯apache和php,我個(gè)人是不贊同這樣做的。既然他已經(jīng)給你做好了php和apache,那這個(gè)基本上是最不會(huì)出問題的。所以我也就沒有采用,準(zhǔn)備選擇編譯成.so的形式來加載。

但是翻看了一個(gè)多小時(shí),幾乎沒有編譯so模塊的文章,即使有編譯的文章也都是靠macport,brew等第三方軟件包下載zlib等各種庫(kù)文件來編譯,個(gè)人精神潔癖問題 ,這種方式也不在選擇之列。

既然網(wǎng)上沒有,那我就去看一下php和oracle的官方文檔。但是oracle那里寫的很啰嗦,居然還要安裝oracle11g,php那里倒是找到了一篇關(guān)于動(dòng)態(tài)鏈接庫(kù)模塊編譯的東西。

有三種方法

重新編譯整個(gè)php,./configure --with-oci8=shared

以動(dòng)態(tài)鏈接庫(kù)的形式

以靜態(tài)鏈接庫(kù)的形式

啰哩啰唆的說了一堆,其實(shí)就是具體編譯oci8.so然后在php.ini中加載。


上google搜索了一下有這么一個(gè)外國(guó)網(wǎng)站倒是有了一篇關(guān)于編譯oci8的文章

  

OCI8 relies on OS X having several client libraries and tools from
Oracle installed on OS X. For most intents and purposes download the
64-bit version of the following files under the title "Version
10.2.0.4 (64-bit)":

  

instantclient-basic-10.2.0.4.0-macosx-x64.zip
instantclient-sqlplus-10.2.0.4.0-macosx-x64.zip
instantclient-sdk-10.2.0.4.0-macosx-x64.zip

其實(shí)就是要下載Oracle官方的instantclient,根據(jù)basic中的dylib文件和sdk中的頭文件來編譯,至于第二個(gè)sqlplus則是可有可無的東西,用來獨(dú)立連接oracle數(shù)據(jù)庫(kù),官方下載地址 我當(dāng)然不可能去下載10g的客戶端,直接下載了11g的instantclient。 下載完成以后解壓所有文件到一個(gè)文件夾instantclient_11_2里面,目錄如下:

下面打開終端,復(fù)制必要的文件到系統(tǒng)目錄下。

sudo cp instantclient_11_2/sdk/include/*.h /usr/include(這個(gè)/usr/include文件夾是Xcode安裝命令行工具以后有的)
sudo cp instantclient_11_2/sqlplus /usr/bin(這個(gè)其實(shí)就是安裝sqlplus客戶端,其實(shí)不弄也可以的)
sudo cp instantclient_11_2/*.dylib /usr/lib
sudo cp instantclient_11_2/*.dylib.* /usr/lib(這其實(shí)就是復(fù)制lib動(dòng)態(tài)鏈接庫(kù))

# 下面到/usr/lib目錄做個(gè)符號(hào)鏈接
sudo ln -s libclntsh.dylib.10.1 libclntsh.dylib

接下來下載編譯oci8,其實(shí)這個(gè)可以用pecl來自動(dòng)化完成。但是你必須安裝好autoconf和Xcode命令行工具,autoconf我是直接編譯安裝的,這個(gè)百度搜索一下就行了,Xcode命令行工具本來我安裝的,結(jié)果10.8-10.9的時(shí)候被升級(jí)干掉了,所以只能再安裝一遍,我是后來編譯出錯(cuò),查看信息,發(fā)現(xiàn)是缺少頭文件,當(dāng)時(shí)很納悶,都放到/usr/include了怎么還缺少,原來是命令行工具的include文件夾被干掉了。只能再重新安裝。

用pecl很自動(dòng)化的

sudo pecl install oci8

然后出現(xiàn)提示:

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動(dòng)態(tài)鏈接庫(kù)的目錄的意思
直接輸入instantclient,/usr/lib然后就編譯好了oci8.so
如果沒有pecl,那手動(dòng)下載oci8的源代碼:

php_oci8-1.3.4.tgz

解壓zip文件進(jìn)入目錄

phpize
./configure --with-oci8=shared,instantclient,/usr/lib 看到這里大家都明白了,其實(shí)就是和pecl一樣,要你提供lib文件的目錄位置
make
make install

然后打開/etc/php.ini在extension的段落加上extension=oci8.so就行了,重啟apache使用phpinfo函數(shù)就能看到oci8被成功加載了。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/21029.html

相關(guān)文章

  • Mac OS X 10.9配置AMP環(huán)境

    摘要:寫一個(gè)簡(jiǎn)單的文件測(cè)試一下配置結(jié)果,這次我們把文件建在我們個(gè)人的網(wǎng)站目錄吧?,F(xiàn)在環(huán)境搭建完成,要正常使用我們需要配置用戶,默認(rèn)用戶的密碼是空值,實(shí)際使用肯定需要修改一下。 2015年5月9日更新 更新內(nèi)容:針對(duì)Mac OS X 10.10.3不能訪問用戶目錄 http://localhost/~lulin 檢查Apache版本是否升級(jí) Server version: Apache/2...

    miracledan 評(píng)論0 收藏0
  • Mac OS xDebug PhpStorm 快速配置

    摘要:確定環(huán)境的干凈。這一步要優(yōu)化的話應(yīng)該是做一個(gè)類似緩存的機(jī)制,對(duì)于這種配置加載的性能提升所以我們?cè)谡{(diào)試必然是要在這里配置環(huán)境的接口。 前言 在網(wǎng)上找了一些相關(guān)配置的例子,覺得很多比較復(fù)雜,并且配置項(xiàng)過于多了,有很多冗余并不是最開始就需要的配置,所以寫一下記錄,也方便以后自己查閱。 一、brew 安裝 php 在 Mac OS 這邊不需要手動(dòng)去下載編譯打包,直接使用 brew 進(jìn)行快捷安裝...

    forrest23 評(píng)論0 收藏0
  • PHP 5.3 連接 Oracle 的客戶端及 PDO_OCI 模塊安裝

    摘要:連接數(shù)據(jù)庫(kù)雖然不是最佳拍檔,但組內(nèi)開發(fā)確實(shí)有這樣需求。安裝是的連接數(shù)據(jù)庫(kù)的簡(jiǎn)單客戶端,不用安裝一個(gè)客戶端就可以連接數(shù)據(jù)庫(kù),有和版本。接下來還要讓系統(tǒng)能夠找到客戶端的庫(kù)文件,修改執(zhí)行使環(huán)境變量生效。 php連接oracle數(shù)據(jù)庫(kù)雖然不是最佳拍檔,但組內(nèi)開發(fā)確實(shí)有這樣需求。如果沒有參考合適的文檔,這個(gè)過程還是挺折磨人的,下面是一個(gè)記錄,原型是國(guó)外的一篇博客 Installing PDO_O...

    SwordFly 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<