2013-02-18 75 views
1

我有一個使用Mongo後端在Heroku上託管的PHP應用程序。我已按照https://gist.github.com/pedro/1288447的說明操作。使用Mongo的PHP Heroku應用程序部署

在我在我的根文件夾中的php.ini我 extension_dir = "/app/web/ext/" extension=mongo.so

我mongo.so位於分機。

我已經初始化我mongoclient與

$mongo_url = getenv("MONGOLAB_URI"); 
    $m = new Mongo($mongo_url); 

heroku config表明MONGOLAB_URI:mongodb://heroku_app113736 7.mongolab.com:43477/heroku_app11373662

然而,應用程序仍然打破每當在new Mongo(...)PHP Fatal error: Class 'Mongo' not found

我不知道我是什麼做錯了?

+0

嘗試新MongoClient與其使用新蒙戈 – Abdelilah 2013-02-18 17:06:25

+0

的錯誤與MongoDB的PHP擴展它與Mongo Server無關。 可能是mongo擴展名不叫「Mongo」 – Shehabix 2013-02-18 17:08:16

+0

MongoClient產生相同的類未找到錯誤。 – zz3599 2013-02-18 17:09:31

回答

0

按照在https://gist.github.com/1288447

自定義擴展指令可以被添加到/應用/網絡/ EXT /與自定義的php.ini!

變化這樣的:

getenv("MONGO_URL") 

此:(從上面的鏈接的說明)

getenv("MONGO_URI") // URI not URL just like in your code above. 
+0

改變了,仍然是一樣的錯誤。然而,我注意到,在我推送日誌顯示'PHP啓動:無法加載動態庫'/app/web/ext/mongo.so' - /app/web/ext/mongo.so:無法打開共享對象文件:沒有這樣的文件或目錄在未知的行0'。我不應該得到這個,因爲我做了所有的鏈接。 – zz3599 2013-02-18 17:24:56

+0

嘗試2件事: 1-確保文件已到位,2-給予777權限或至少755 – Shehabix 2013-02-18 17:28:26

+0

我是個白癡。我錯過了延伸路徑中的愚蠢錯字。 – zz3599 2013-02-28 03:52:27

0

的的環境變量又變。

現在它的MONGOHQ_URL

0

Heroku需要安裝Mongo PHP Client才能運行您的應用程序。

安裝擴展的正確方法是內composer.json

{ 
    "require": { 
     "ext-mongo": "*" 
    } 
} 

然後composer update,推動回購協議的Heroku