2012-07-09 60 views
0

沒有找到我需要我的CentOS 5.4的機器上的MongoDB PHP驅動程序。我的PHP版本是5.1.6。我下載了RPM並安裝了它。在/ usr/bin目錄中創建多個文件。我複製CentOS的 - 蒙戈班PHP

/usr/bin/mongo 

/usr/lib/php/modules 

這是表明做的phpinfo什麼的extension_dir();.

我也加入/etc/php.ini中

extension=mongo.so 

。 但是在執行我的PHP腳本,我仍然得到

Mongo class not found. 

什麼錯嗎?

而且,我的phpinfo()顯示PHP版本5.1.6,而在命令行運行PHP 5.3.3所示。有什麼可能是錯的嗎?

在此先感謝。

+0

你編輯正確的'php.ini'?你重啓了你的服務器嗎?試試'phpinfo()' – KingCrunch 2012-07-09 10:52:42

+0

當你說你安裝了哪一個RPM到你的意思? PHP?蒙戈?或Mongo PHP擴展? – 2012-07-09 10:53:14

+1

運行'php -m | grep mongo'從命令行。如果你什麼也沒有檢查,你編輯了正確的ini文件,並且它正在加載'php --ini' – Leigh 2012-07-09 10:53:29

回答

1

你說你的網絡服務器和命令行PHP報告不同的版本。這些將要安裝在不同的位置,以及它們的擴展是API互不兼容。

當你安裝了php_mongo延伸,它可能已經使用了PHP命令行來確定要安裝擴展的目錄。

確保你有你的服務器的PHP版本正確php_mongo,它是在正確的擴展目錄中。 (從php.ini中獲取目錄返回的phpinfo()

我希望你認識到PHP 5.1也過時了很多年。除非你有特別原因需要使用舊的版本,你也應該看看升級到最新版本。

編輯:

剛纔看了您的評論「我還必須提到的是在/ usr/bin中/蒙戈是一個二進制可執行文件,但它不是有一個.so擴展林複製它是/ usr/lib中/ PHP /模塊」

不不不! :)

這是蒙戈命令行客戶端。這不是PHP的擴展!

您可以運行一個find /* -name "mongo.so"來查看安裝程序放置文件的位置,這可能也會提示您安裝了哪個版本的PHP。

+0

該死!你是對的 !!我在兩者之間混淆。從來沒有想過,因爲我認爲我正在使用正確的東西!非常感謝..現在就做出更正。 – Cygnus 2012-07-09 11:07:29

0

重新啓動httpd的!

yum service httpd restart 
+1

我做到了。儘管檢查我的編輯。 – Cygnus 2012-07-09 10:56:37

1

看起來好像您將MongoDB服務器的RPM包與安裝MongoDB PHP driver的要求混淆在一起。 PHP的驅動程序提供對服務器的訪問從你的PHP應用程序,並且不安裝任何命令行工具。

+0

你說得對。我在兩者之間混淆。該死的 !! :/ – Cygnus 2012-07-09 11:08:43