PHP添加MongoDB擴充執行個體教程

來源:互聯網
上載者:User

一、php mongo模組的編譯

先從 http://pecl.php.net/package/mongo 下載目前的stable穩定版 ,目前的最新穩定版本是1.5.2 , 安裝步驟如下:

 代碼如下 複製代碼
# wget http://pecl.php.net/get/mongo-1.5.2.tgz
# tar zxvf mongo-1.5.2.tgz
# cd mongo-1.5.2
# /usr/bin/phpize
# ./configure –with-php-config=/usr/bin/php-config
# make && make install

註:沒有 phpize 工具時 ,可以通過yum -y install php-devel 安裝後就會有該工具 。

二、php的擴充配置

完成後在/etc/php.ini中添加如下內容:

 代碼如下 複製代碼
extension=mongo.so

完成後,再使用php -m查看,發現報錯:

 代碼如下 複製代碼
# php -m|grep mongo
/usr/lib64/php/modules/mongo.so: undefined symbol: php_json_encode in Unknown on line 1

經網上查詢發現是需要對 json.so 模組依賴,經查看/usr/lib64/php/modules/目錄下已經存在json.so模組 。即然存在報錯的原因是因為json.so在mongo.so之後才載入的  。在/etc/php.ini中尋找了下json的配置,發現不存在。在/etc/php.d目錄找到了json.ini檔案 。

 代碼如下 複製代碼
# cat /etc/php.d/json.ini
; Enable json extension module
extension=json.so

知道了原因 ,也依葫蘆畫瓢 ,將剛剛在/etc/php.ini中的mongo配置刪除 ,在/etc/php.d/目錄下新增mongo.ini ,內容為extension=mongo.so ,配置完成後再使用php -m|grep mongo檢測發現正常  。

註:這裡網上也有一些方法是通過將/etc/php.d/json.ini檔案刪除,在/etc/php.ini檔案中將json模組的配置加到mongo模組配置之前 。該方法雖然也可以,不過不推薦,因為我上面的方法自動會查看各模組之間的依賴關係 ,再決定載入的先後順序 。如果遇到其他模組存在該情況時,同樣可以自動解決掉。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.