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

資訊專欄INFORMATION COLUMN

macOS Sierra + Homebrew + PHP 7 + OCI8安裝

HollisChuang / 2024人閱讀

摘要:中間兩個(gè)符號(hào)鏈接如果不建立,會(huì)加載失敗,提示找不到對(duì)應(yīng)的文件。后面兩個(gè)符號(hào)鏈接如果不建立,今后在執(zhí)行的過程中函數(shù)會(huì)拋異常。如果今后依然遇到其他失敗的信息,則以此類推,將目錄下的文件都在下建立符號(hào)鏈接即可。

先這樣安裝PHP:

brew install php71 --with-gmp --with-homebrew-curl --with-homebrew-libxml2 --with-imap --with-pear

然后去Oracle官網(wǎng)下載InstantClient相關(guān)的三個(gè)包,一個(gè)是Basic,一個(gè)是SQLPlus,還有一個(gè)是SDK:

instantclient-basic-macos.x64-11.2.0.3.0
instantclient-sqlplus-macos.x64-11.2.0.3.0
instantclient-sdk-macos.x64-11.2.0.3.0

下載后把這三個(gè)包里的內(nèi)容都解壓放到一個(gè)目錄下,假設(shè)是/usr/local/instantclient,然后建立幾個(gè)符號(hào)鏈接,之后的編譯和最后生成的oci8.so文件會(huì)用到:

ln -s /usr/local/instantclient/libclntsh.dylib.11.1 /usr/local/instantclient/libclntsh.dylib
ln -s /usr/local/instantclient/libclntsh.dylib.11.1 /usr/local/lib/
ln -s /usr/local/instantclient/libnnz11.dylib /usr/local/lib/
ln -s /usr/local/instantclient/libocci.dylib.11.1 /usr/local/lib/
ln -s /usr/local/instantclient/libociei.dylib /usr/local/lib/

注意:其中第一個(gè)符號(hào)鏈接如果不建立,編譯的時(shí)候會(huì)出錯(cuò)。中間兩個(gè)符號(hào)鏈接如果不建立,oci8.so會(huì)加載失敗,提示找不到對(duì)應(yīng)的dylib文件。后面兩個(gè)符號(hào)鏈接如果不建立,今后在執(zhí)行PHP的過程中oci_connect()函數(shù)會(huì)拋異常。如果今后依然遇到其他失敗的信息,則以此類推,將instantclient目錄下的dylib文件都在/usr/local/lib下建立符號(hào)鏈接即可。如果想簡(jiǎn)單粗暴一些,那也可以把instantclient下的dylib文件都拷貝到/usr/local/lib下

然后安裝OCI8:

pecl install oci8

在提示輸入instantclient目錄位置的地方,輸入instantclient,/usr/local/instantclient,像這樣:

downloading oci8-2.1.3.tgz ...
Starting to download oci8-2.1.3.tgz (191,920 bytes)
.........................................done: 191,920 bytes
10 source files, building
running: phpize
Configuring for:
PHP Api Version:         20160303
Zend Module Api No:      20160303
Zend Extension Api No:   320160303
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,/usr/locall/instantclient

然后pecl就會(huì)編譯并安裝oci8.so文件。最后可能會(huì)遇到這個(gè)錯(cuò)誤:

Build process completed successfully
Installing "/usr/local/Cellar/php71/7.1.1_12/lib/php/extensions/no-debug-non-zts-20160303/oci8.so"

Fatal error: Uncaught Error: Call to a member function getFilelist() on null in /usr/local/Cellar/php71/7.1.1_12/lib/php/PEAR/Command/Install.php:747
Stack trace:
#0 /usr/local/Cellar/php71/7.1.1_12/lib/php/PEAR/Command/Common.php(270): PEAR_Command_Install->doInstall("install", Array, Array)
#1 /usr/local/Cellar/php71/7.1.1_12/lib/php/pearcmd.php(316): PEAR_Command_Common->run("install", Array, Array)
#2 /usr/local/Cellar/php71/7.1.1_12/lib/php/peclcmd.php(31): require_once("/usr/local/Cell...")
#3 {main}
  thrown in /usr/local/Cellar/php71/7.1.1_12/lib/php/PEAR/Command/Install.php on line 747

不去管它,在/usr/local/etc/php/71/conf.d/目錄下手工建一個(gè)ext-oci8.ini文件:

[oci8]
extension="/usr/local/Cellar/php71/7.1.1_12/lib/php/extensions/no-debug-non-zts-20160303/oci8.so"

注意:extension后面一定要寫pecl安裝的oci8.so文件所在的絕對(duì)路徑,我之前寫了相對(duì)路徑,加載失敗

然后執(zhí)行php -i | grep oci8來驗(yàn)證是否安裝成功:

hongliang@macmini2012 ~ $ php -i | grep oci8
/usr/local/etc/php/7.1/conf.d/ext-oci8.ini,
oci8
oci8.connection_class => no value => no value
oci8.default_prefetch => 100 => 100
oci8.events => Off => Off
oci8.max_persistent => -1 => -1
oci8.old_oci_close_semantics => Off => Off
oci8.persistent_timeout => -1 => -1
oci8.ping_interval => 60 => 60
oci8.privileged_connect => Off => Off
oci8.statement_cache_size => 20 => 20

然后重啟php-fpm:

brew services restart php71

然后隨便寫一個(gè)php文件,輸出phpinfo()內(nèi)容,如果看到oci8相關(guān)的參數(shù),那就說明安裝成功了

另外,如果訪問Oracle數(shù)據(jù)發(fā)生could not generate unique server group name錯(cuò)誤,則:

sudo vi /etc/hosts

然后加入:

127.0.0.1 hostname

Oracle要求本機(jī)的hostname必須可以正確指向127.0.0.1本機(jī)IP。如果不確定本機(jī)hostname是多少,則在命令行里敲hostname就可以了

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

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

相關(guān)文章

  • MacOS Sierra安裝 Apache 和多個(gè)版本的 PHP

    摘要:上面的命令會(huì)從源碼下載,并進(jìn)行編譯安裝。我在安裝的時(shí)候遇到了一個(gè)錯(cuò)誤最終在上找到了該。其原因可能是的沒有正確安裝。第二行命令的作用是賦予可執(zhí)行權(quán)限。 本文主要內(nèi)容翻譯自《macOS 10.12 Sierra Apache Setup: Multiple PHP Versions》,并加入了自己的實(shí)踐。 前言:每次搭建開發(fā)環(huán)境真的是一件很麻煩的事情,但隨著時(shí)間的推移和系統(tǒng)環(huán)境的差異,網(wǎng)上...

    DandJ 評(píng)論0 收藏0
  • MacOS Sierra安裝 Apache 和多個(gè)版本的 PHP

    摘要:上面的命令會(huì)從源碼下載,并進(jìn)行編譯安裝。我在安裝的時(shí)候遇到了一個(gè)錯(cuò)誤最終在上找到了該。其原因可能是的沒有正確安裝。第二行命令的作用是賦予可執(zhí)行權(quán)限。 本文主要內(nèi)容翻譯自《macOS 10.12 Sierra Apache Setup: Multiple PHP Versions》,并加入了自己的實(shí)踐。 前言:每次搭建開發(fā)環(huán)境真的是一件很麻煩的事情,但隨著時(shí)間的推移和系統(tǒng)環(huán)境的差異,網(wǎng)上...

    wh469012917 評(píng)論0 收藏0
  • MacOS High Sierra下完整搭建MNMP開發(fā)環(huán)境

    摘要:一些關(guān)于在最新下搭建開發(fā)環(huán)境的流程建議,直接進(jìn)入正題安裝開發(fā)常用包軟件又叫,是上的軟件包管理工具,能在中方便的安裝軟件或者卸載軟件,和系統(tǒng)中的非常相似,只需要一個(gè)命令,非常方便。 一些關(guān)于在最新 Macos 下搭建LNMP開發(fā)環(huán)境的流程建議,直接進(jìn)入正題: Preparing安裝 Homebrew、Ohmyzsh、開發(fā)常用包&軟件 1.1 Homebrew Homebrew又叫Br...

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

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

0條評(píng)論

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