我已经在新安装的Ubuntu 18.04服务器上安装了mongodb,虽然我可以在命令行上使用mongo,但似乎无法使用PHP连接到它。
我一直按照https://www.youtube.com/watch?v=RQcQ5tvb5E8&t=620s进行操作:
apt安装mongodb-server
apt install php-pear#获取PECL
apt install php7.2-dev#获取phpize
pecl安装mongodb
phpinfo()显示 extension_dir = / usr / lib / php / 20170718 ,而mongodb.so实际上位于该目录中,并且具有与所有其他文件相同的所有权和权限。 php -i | grep extension_dir 显示 extension_dir => / usr / lib / php / 20170718 => / usr / lib / php / 20170718
然后我将 extension = mongodb.so 添加到了 /etc/php/7.2/apache2/php.ini 中,与列出的其他扩展名相同。在 /etc/php/7.2/cli / 下也有一个php.ini文件,因此我在其中添加了这一行。然后,我重新启动了apache2服务。
我在/var/www/html/mongo.php下创建了一个测试文件
<?php
$m = new Mongo();
var_dump($m);exit;
当我浏览到该页面时,出现“此页面无法正常工作; Chrome中出现HTTP ERROR 500'消息。我也尝试过 Mongodb(); , MongoClient(); , MongodbClient(); , mongo(); , mongodb(); 和 mongodbclient(); ,但无济于事。
答案 0 :(得分:0)
请确保您还安装了mongodb php驱动程序。请先确认php版本。
在Ubuntu上,您可以执行以下操作:
sudo apt-get install php-mongodb
或对于特定的PHP版本相同:
sudo apt-get install php5.6-mongo
或
sudo apt-get install php7.0-mongodb
然后重新启动服务。
sudo systemctl reload nginx
答案 1 :(得分:0)
您应该尝试其中的一些
https://docs.mongodb.com/ecosystem/drivers/php/
https://www.php.net/manual/en/mongodb.tutorial.library.php
它们应该可以与php7 +作曲家一起正常工作
实际上,使用作曲家非常简单(像这样):
`$ composer require mongodb/mongodb
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Installing mongodb/mongodb (1.0.0)
Downloading: 100%
Writing lock file
Generating autoload files
创建文件:test.php(在运行作曲家的位置)
<?php
require 'vendor/autoload.php'; // include Composer's autoloader
$client = new MongoDB\Client("mongodb://localhost:27017");
$collection = $client->demo->beers;
$result = $collection->insertOne( [ 'name' => 'Hinterland', 'brewery' => 'BrewDog' ] );
echo "Inserted with Object ID '{$result->getInsertedId()}'";
?>
那应该足够了