Ubuntu 13.10(生意気なサンショウウオ)を使用していますが、Sudo apt-get install php5-mongo
は、mongodbデータベースドライバーをインストールするのに十分です。
しかし、そのような運はありません。 php5-fpmを使用しているため、最初にphp5enmod mongo
しかし、それでもエラーが発生します:
include(MongoClient.php): failed to open stream: No such file or directory
代わりに、インストールするために以下を実行する必要があります(より多くのディスク容量を使用します)。
Sudo apt-get install php5-dev make php-pear
Sudo pecl install mongo
Sudo echo "extension=mongo.so" | tee /etc/php5/mods-available/mongo.ini
私の質問は、なぜSudo apt-get install php5-mongo
足りる? Ubuntuリポジトリに問題がありますか? ubuntuリポジトリを調べて、使用しているバージョンまたはMongoClient.php
は含まれません。私は「ubuntu:saucy
"ベースとしてのdockerイメージ。デフォルトではユニバースが含まれています。
Ubuntu 14.04では、Sudo apt-get install php5-mongo
は、完全に機能するmongo PHP拡張機能になります。したがって、問題を引き起こすパッケージングの問題がUbuntu 13.10にあるだけだと思います。
ソリューション:Ubuntu 13.10の代わりにUbuntu 14.04 LTSを使用します。
ただし、Ubuntu 13.10を使用するhaveがある場合は、php5-mongo
Ubuntuパッケージ、代わりにpecl経由でmongo拡張機能をインストールします。
Sudo apt-get install php5-dev make php-pear
Sudo pecl install mongo
Sudo echo "extension=mongo.so" | Sudo tee /etc/php5/mods-available/mongo.ini
Ubuntuでphp5のmongoDBドライバーをインストールする最も簡単な方法は、次のコマンドを使用することです。
Sudo apt-get install php5-mongo
注意、ドライバーは正しくインストールされていますが、まだロードされていないため、Apacheを使用してサーバーを完全に再起動する必要があります。
Sudo service Apache2 restart
PHP用にmongo DBをインストールする良い方法もあります。 Ubuntu 14.04LTSがあります。
open synaptic package manager and search "mongo"
これらのパッケージを選択してインストールします。
[適用]をクリックしてパッケージをインストールします。
次に、このコマンドを使用してApache2を再起動します。
Sudo service Apache2 restart
mongo-test.phpという名前のPHPファイルを作成し、このコードをそこに貼り付けます。
<?php
// connect to mongodb
$m = new MongoClient();
echo "Connection to database successfully";
// select a database
$db = $m->mydb;
echo "Database mydb selected";
?>
このURLをテストします http://localhost/mongo-test.php
これはUbuntuのパッケージングの問題のようです。
_apt-get
_経由でPHP5-fpmもインストールしましたか? PHP5のインストール方法と、php5-mongoパッケージが更新しようとしているphp.iniファイルの間に切断があるようです。
include(MongoClient.php): failed to open stream
エラーに関しては;オートローダーが原因です。拡張機能が有効になっていないときに_new MongoClient
_を実行すると、_<classname>.php
_というファイルをインクルードしようとするオートロードにヒットします