2016-04-29 116 views
4

我使用的是Ubuntu 16.04 LTS,我想使用Mongodb和PHP。爲此,我認爲sudo apt-get install php5-mongo(對於Ubuntu 14.04 LTS足夠了)就足夠了,但我錯了。我得到這樣的錯誤,如E: Unable to locate package php5-mongo如何在Ubuntu 16.04中安裝Mongodb PHP擴展LTS

我剛升格爲Ubuntu 16.04 LTS,想用mongodbPHP。運行PHP版本是PHP Version 7.0.4-7ubuntu2

那麼我能做些什麼來解決這個問題?

+0

嗯,如果你正在運行php7,你爲什麼要安裝一個php5軟件包?也許它是php7-mongo? –

+0

@MarcB,我也試過'sudo apt-get安裝php7-mongo'這個,但是沒有得到任何積極的結果 –

+0

所以去看看16.04lts版本庫並找出包名是什麼。甚至像'dpkg -L | grep -i mongo' –

回答

5

恐怕你現在有點失去運氣。目前的情況是有兩個MongoDB擴展:

  • 「php-mongo」,這是「老」的;此擴展支持最高爲PHP 5. *,但不支持PHP7。只有錯誤修復計劃;
  • 「php-mongodb」,這是「新」的;這個擴展支持PHP5和PHP7;

現在的問題是,新的不兼容舊的,因爲他們的整個內部是完全不同的。不幸的是,很少有地方使用新語法的例子,因爲絕大多數與Mongo相關的代碼是使用舊的擴展名編寫的。現在看來,如果你已經轉向PHP7,你唯一的選擇就是使用「new」擴展,這意味着你以前的代碼將停止工作。

我見過幾個嘗試創建一個用於使這兩種可能的遷移的polyfill(例如:https://github.com/alcaeus/mongo-php-adapter),但是因爲我自己沒有嘗試過,我不能說它的工作效果如何。

看起來,這個庫http://mongodb.github.io/mongo-php-library/應該彌補差距 - 在給它一個鏡頭之後,我相信它應該覆蓋大部分「舊」功能而不會更新代碼太多。