2010-08-24 17 views
2

爲了測試目的,我在本地主機上運行gearman。所以我從php命令行運行gearman worker.php文件。當我在普通的apache模式下測試這個時,mongoDB工作得很好,但是當它從gearman worker文件運行時,我得到錯誤「致命錯誤:class'Mongo'not found」。現在,Mongo類來自於pecl和php.ini中的mongo.so擴展。是的,試圖找出爲什麼從CLI運行的php文件是不同的。它使用單獨的php.ini文件嗎?pecl無法在php CLI模式下工作(涉及到Gearman中的mongoDB)

回答

5

您可以通過執行php --ini來檢查CLI版本正在加載哪些.ini文件。如果您的PHP是由發行版提供的,那麼它很可能會有兩個獨立的.ini集,一個用於基於Web的CLI,另一個用於CLI。當它在線運行時,您也可以從phpinfo()獲得同等信息。

要強制它加載特定的.ini,可以使用php -c /path/to/file.ini

0

一個簡單的find/-name php.ini爲我解答了這個問題。所以是的,有一個單獨的php.ini文件。我需要添加行擴展= mongo.so。

0

這聽起來像是你正在加載不同的ini文件,或者你的機器上安裝了php的多個實例,並且apache使用了另一個。使腳本v.php:

<?php phpinfo(); 

然後嘗試從CLI運行它,然後通過本地主機查看它。 EG:

php v.php

http://localhost/v.php

相關問題