一、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模組配置之前 。該方法雖然也可以,不過不推薦,因為我上面的方法自動會查看各模組之間的依賴關係 ,再決定載入的先後順序 。如果遇到其他模組存在該情況時,同樣可以自動解決掉。