摘要:中間兩個符號鏈接如果不建立,會加載失敗,提示找不到對應的文件。后面兩個符號鏈接如果不建立,今后在執行的過程中函數會拋異常。如果今后依然遇到其他失敗的信息,則以此類推,將目錄下的文件都在下建立符號鏈接即可。
先這樣安裝PHP:
brew install php71 --with-gmp --with-homebrew-curl --with-homebrew-libxml2 --with-imap --with-pear
然后去Oracle官網下載InstantClient相關的三個包,一個是Basic,一個是SQLPlus,還有一個是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
下載后把這三個包里的內容都解壓放到一個目錄下,假設是/usr/local/instantclient,然后建立幾個符號鏈接,之后的編譯和最后生成的oci8.so文件會用到:
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/
注意:其中第一個符號鏈接如果不建立,編譯的時候會出錯。中間兩個符號鏈接如果不建立,oci8.so會加載失敗,提示找不到對應的dylib文件。后面兩個符號鏈接如果不建立,今后在執行PHP的過程中oci_connect()函數會拋異常。如果今后依然遇到其他失敗的信息,則以此類推,將instantclient目錄下的dylib文件都在/usr/local/lib下建立符號鏈接即可。如果想簡單粗暴一些,那也可以把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就會編譯并安裝oci8.so文件。最后可能會遇到這個錯誤:
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/目錄下手工建一個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文件所在的絕對路徑,我之前寫了相對路徑,加載失敗
然后執行php -i | grep oci8來驗證是否安裝成功:
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
然后隨便寫一個php文件,輸出phpinfo()內容,如果看到oci8相關的參數,那就說明安裝成功了
另外,如果訪問Oracle數據發生could not generate unique server group name錯誤,則:
sudo vi /etc/hosts
然后加入:
127.0.0.1 hostname
Oracle要求本機的hostname必須可以正確指向127.0.0.1本機IP。如果不確定本機hostname是多少,則在命令行里敲hostname就可以了
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/31967.html
摘要:上面的命令會從源碼下載,并進行編譯安裝。我在安裝的時候遇到了一個錯誤最終在上找到了該。其原因可能是的沒有正確安裝。第二行命令的作用是賦予可執行權限。 本文主要內容翻譯自《macOS 10.12 Sierra Apache Setup: Multiple PHP Versions》,并加入了自己的實踐。 前言:每次搭建開發環境真的是一件很麻煩的事情,但隨著時間的推移和系統環境的差異,網上...
摘要:上面的命令會從源碼下載,并進行編譯安裝。我在安裝的時候遇到了一個錯誤最終在上找到了該。其原因可能是的沒有正確安裝。第二行命令的作用是賦予可執行權限。 本文主要內容翻譯自《macOS 10.12 Sierra Apache Setup: Multiple PHP Versions》,并加入了自己的實踐。 前言:每次搭建開發環境真的是一件很麻煩的事情,但隨著時間的推移和系統環境的差異,網上...
摘要:一些關于在最新下搭建開發環境的流程建議,直接進入正題安裝開發常用包軟件又叫,是上的軟件包管理工具,能在中方便的安裝軟件或者卸載軟件,和系統中的非常相似,只需要一個命令,非常方便。 一些關于在最新 Macos 下搭建LNMP開發環境的流程建議,直接進入正題: Preparing安裝 Homebrew、Ohmyzsh、開發常用包&軟件 1.1 Homebrew Homebrew又叫Br...
閱讀 1892·2021-11-23 09:51
閱讀 1534·2021-11-19 09:40
閱讀 3208·2021-11-11 11:01
閱讀 1104·2021-09-27 13:34
閱讀 1835·2021-09-22 15:56
閱讀 2121·2019-08-30 15:52
閱讀 1060·2019-08-30 14:13
閱讀 3473·2019-08-30 14:10