PHP 7での作業を開始したいのですが、問題が1つあります...私は主にデータベースにMongoDBを使用していますが、問題はMongoDBのインストール方法がわからないことですPHPのドライバー/クライアント7。
私の現在のインストールはPHP 5.6で、私のMacではbrew install php56-mongo
がトリックを行います。
誰でも私のMacまたはUbuntuインストールでこれを動作させる方法をお勧めできますか?
事前に感謝し、感謝します!
PHPバージョン5.99.99またはそれ以前のMongo拡張が置き換えられました:
https://pecl.php.net/package/mongo
代わりにPHPバージョン7.99.99以上の新しいものを使用してください:
https://pecl.php.net/package/mongodb
PECL/PEAR拡張機能をインストールできます 自動的に :
pecl install mongodb
or手動 .
classesも変更されました:
new \MongoClient(); // legacy class!
http://php.net/manual/en/book.mongo.php を参照してください
new \MongoDB\Driver\Manager(); // new classes!
http://php.net/manual/en/set.mongodb.php を参照してください
互換性に関する追加情報はここにあります:
https://docs.mongodb.org/ecosystem/drivers/php/#compatibility
PHP 7をサポートするMongoDBドライバーは 12月22日リリース のみでした-brewなどのダウンストリームリポジトリは更新されていません。
更新は、現在php70-mongo
brewスクリプトがないことを確認しましたが、アクティブな プルリクエスト が追加されています。
peclを使用して手動でインストールする ができます:
pecl channel-update pecl.php.net
pecl install mongodb
echo "extension=mongodb.so" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"`
Ubuntu 7.04 LTSでPHP 7.0をMongoDBに接続する方法は?
1)次のリンクを使用してLAMPをインストールします。 Apache2、mysql、php 7.0をインストールします。 https://www.digitalocean.com/community/tutorials/how-to-install-linux-Apache-mysql-php-lamp-stack-on-ubuntu-16-04
2)次のリンクの手順を使用して、UbuntuにMongoDBコミュニティエディションをインストールします。 http://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/
3)次のコマンドを入力して、peclからmongoDB拡張機能を取得します
Sudo apt install php-pear
4)/etc/php/Apache2/7.0
のphp.iniファイルに以下を追加します
extension=mongodb.so
重要-クラスも変更されました:
new MongoClient(); //Old Class
new MongoDB\Driver\Manager(); // New Class
次のコマンドでmongodbドライバーをインストールできます。
Sudo apt-get install php-mongodb
PHPバージョン5.99.99以前のMongoDBドライバーは次のとおりでした。 https://pecl.php.net/package/mongo これをインストールするには、使用する必要があります。
Sudo apt-get install php-pear php5-dev
Sudo pecl install mongo
PHP 7以降、これは新しいドライバーです https://pecl.php.net/package/mongodb 使用するには、Sudo pecl install mongodb
ComposerでLaravelフレームワークまたはプロジェクトを使用している場合、このライブラリは最も適切なライブラリです。 https://github.com/jenssegers/Laravel-MongoDB バージョン3.0を使用します。 0を使用してPHP 7およびLaravel 5サポートを取得し、それ以外の場合は古いバージョン2.2.2 Composerコマンドを使用します。
作曲家にはjenssegers/mongodbが必要です
コンポーザなしで他のPHPフレームワークを使用している場合は、このライブラリを使用します。 https://github.com/mongodb/mongo-php-library これも上記で使用されています図書館
いいえ、残念ながらレガシードライバーはPHP7をサポートしていません。 コミット と JIRAチケット は、これが正式に確定された場所です。
新しいPHP MongoDBドライバーを見つけることができます ここのPECLで (または GitHub )。
インストールするには、次のようにします。
pecl channel-update pecl.php.net
pecl install mongodb
echo "extension=mongodb.so" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"`
新しいドライバーのドキュメントは here にあります。私はドキュメントからのメモを含めたいです:
最終的に、この拡張機能は単独で使用するためのものではありません。ユーザーは mongo-php-library などの1つ以上のユーザーランドPHPライブラリと一緒にこのドライバーを使用することを検討する必要があります。
新しいmongodb
ドライバー/ PHP拡張機能は、従来のmongo
ドライバーよりもはるかに低レベルであり、ドライバーの上に高レベルのライブラリを使用することをお勧めしますコードで直接使用するのではなく。
Mongo PHP Library ( releases )は、PHPの公式の高レベルライブラリであり、プロジェクトでの使用が推奨されています。まだベータ版ですが、これはPHP7で前進するための最も安全で将来性のあるパスであるようです。
誰かがレガシードライバーをPHP7に移植することは可能かもしれませんが、レガシードライバーには他の多くの問題があるので、おそらくそれほど多くの必要性はありません。
古い質問ですが、新しい優れたソリューションです。 Mongostead7 自動スクリプトを使用して、必要なものをすべてインストールします。私のためにうまく働いた。追加の作業は必要ありません。
次のように使用します。
Sudo curl -sS https://raw.githubusercontent.com/zakhttp/Mongostead7/master/mongoHomestead7.sh | Sudo sh
答えを補完し、私のために働いたものを公開する:
1は、ランプをインストールするためにこのガイドに従いました https://www.digitalocean.com/community/tutorials/how-to-install-linux-Apache-mysql-php-lamp-stack-on-ubuntu-16 -04 (3番目の手順は、mongoクライアントのインストールにのみ必要です)
2 $ Sudo apt-get install php7.0-dev
3 $ Sudo pecl install mongodb
4 $ Sudo nano /etc/php/7.0/Apache2/php.ini
ファイルに次の行を追加します。
extension = mongo.so;
(ファイルの正確な場所を指定する必要があるかもしれません。私の場合、ファイルは/usr/lib/php/20151012/mongodb.soにありました。)
そして、これがすべてPHP 7.0のmongoクライアントをインストールするためのものです。
プランシュ・ティワリの答えを補完しています
私もほとんどあきらめました。 PHP 7xのMongoDBドライバーの場合、Ubuntu 18.04Peclは機能しません。代わりに、試してください:
Sudo apt-get install php-mongodb
次に、プロジェクトフォルダーのベースにmongodbライブラリをインストールします https://docs.mongodb.com/php-library/current/tutorial/install-php-library/
composer require mongodb/mongodb
composer install
ドライバが提供する下位レベルの機能にアクセスします。
最後に、php.iniに移動して追加します
extension = mongo.so
apacheを再起動します
テストするには、これをphpファイルに追加してみてください。
<?php
require_once __DIR__ . "/vendor/autoload.php";
$collection = (new MongoDB\Client)->test->users;
print_r($collection);
?>
これはPHP7のUbuntuでうまくいきました:
Sudo apt-get install php7.0-mongodb
Ubuntu 16.04でPHPバージョン7.0を使用しています。 mongoドライバー/クライアントのインストールに関する詳細情報を提供しています。まず、mongodbを手動でインストールしてから、mongodb-phpドライバーをインストールしました。
1)mongo dbをインストールします。次のコマンドを入力します。
$ Sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
$ echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | Sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
$ Sudo apt-get update
$ Sudo apt-get install -y mongodb-org
Mongdbをサービスとして適切に起動するには、つまり、システムの起動時にMongodbを自動的に起動するには、次の手順に従います。
次のコマンドを入力して、/ etc/systemd/system /にファイルmongodb.serviceを作成します。
$ Sudo nano /etc/systemd/system/mongodb.service
次の内容を貼り付けます:
[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
[Service]
User=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf
[Install]
WantedBy=multi-user.target
次に、次のコマンドを入力します。
$ Sudo systemctl start mongodb
$ Sudo systemctl enable mongodb
2)mongo-phpドライバーのインストール:
$ Sudo pecl install mongodb
また、エラーが表示される場合があります:phpizeが見つかりません。 Phpizeは、ビルド環境を作成するために使用されるコマンドです。このエラーは、pecl拡張機能のインストール時に表示される可能性があります。 phpizeコマンドが見つからないというこの問題を解決するには、ユーザーはphp5-devパッケージをインストールする必要があります。それをインストールするには、次のコマンドを入力します。
$ Sudo apt-get install php7.0-dev
次に、/ etc/php/7.0/Apache2ディレクトリにあるphp.iniファイルに、mongo db拡張を追加します。
$ Sudo nano /etc/php/7.0/Apache2/php.ini
ファイルに次の行を追加します。
extension = mongo.so;
(ファイルの正確な場所を指定する必要があるかもしれません。私の場合、ファイルは/usr/lib/php/20151012/mongodb.soにありました。)
そのため、mongo dbはそのドライバーとともにインストールされます。
3)mongo-phpクラスが変更されたことに注意してください。ネットで利用可能なリソースのほとんどは、置き換えられた古いクラスを使用したソリューションを提供します。参照できるリンクは次のとおりです。
http://php.net/manual/en/set.mongodb.php
http://zetcode.com/db/mongodbphp/
基本的なデータベース操作用のコマンドを次に示します。
$mng = new MongoDB\Driver\Manager(); // Driver Object created
データベースにデータを挿入するには:
$bulk = new MongoDB\Driver\BulkWrite;
$doc = ["_id" => new MongoDB\BSON\ObjectID, "data" => $someData, "info" => $someInfo];
$bulk->insert($doc);
$mng->executeBulkWrite('dbName.collectionName', $bulk);
データを取得する場合:
$query = new MongoDB\Driver\Query([]);
$rows = $mng->executeQuery("dbName.collectionName", $query);
foreach ($rows as $row)
{
echo "$row->data - $row->info\n";
}
UBUNTU 16.0.4(07.12.2016)
pHP-MONGODBドライバーのインストール:コマンド:
-Sudo pecl install mongodb->résultat:ビルドプロセスが正常に完了しました '/usr/lib/php/20151012/mongodb.so'のインストールOK:channel://pecl.php.net/mongodb-1.2。 0構成オプション「php_ini」がphp.iniの場所に設定されていないphp.iniに「extension = mongodb.so」を追加する必要があります
-> la librairie se trouve dans "/usr/lib/php/20151012/mongodb.so"
- Sudo systemctl restart Apache2.service
https://secure.php.net/manual/en/mongodb.installation.pecl.php
- create 2 new files called "30-mongodb.ini" in both path to add the extension to your server:
-/etc/php/7.0/fpm/conf.d/30-mongodb.ini
-/etc/php/7.0/cli/conf.d/30-mongodb.ini
Commandes :
Sudo nano /etc/php/7.0/fpm/conf.d/30-mongodb.ini
-> add "extension=mongodb.so"
Sudo nano /etc/php/7.0/cli/conf.d/30-mongodb.ini
-> add "extension=mongodb.so"
- Test if the mongodb extension is running in your server :
Commandes :
php --ini
doctrineMongoDBBundleのインストール: http://symfony.com/doc/current/bundles/DoctrineMongoDBBundle/index.html 、 http://www.doctrine-project.org/2016/06/ 09/odm-1-1-0-and-1-0-6.html 、
Commandes :
- cd
- cd my_project_name
- ls -a composer*
-> résultat : composer.json composer.lock
- Sudo nano composer.json
- Add to the composer.json in "require" array
"doctrine/mongodb-odm": "^1.0",
"doctrine/mongodb-odm-bundle": "^3.0"
- Add to the composer.json in "require" array
"alcaeus/mongo-php-adapter": "^1.0",
"ext-mongo": "*"
- Add a new array :
"provide":
{
"ext-mongo": "1.6.12"
}
- Move
Sudo cp -i /usr/lib/php/20151012/mongodb.so /etc/php/7.0/cli
ソリューションを提供するには、投稿するために少なくとも10の評判が必要です...
古いPHP5コードをPHP7で動作させることに苦労している場合、検討したいソリューションの1つは https://github.com/alcaeus/mongo-php-adapter です。
アダプターライブラリを含むほとんどの場合、新しいドライバー/ライブラリアプローチを使用して、PHP7で古いPHP5コードを適切に動作させるために必要なことはすべて気付きました。
次に、コードを新しいMongoDB PHPライブラリ( https://github.com/mongodb/mongo-php-library )に移行するか、またはネイティブドライバを使用して、速度の向上を図ります。