我真的在这里挣扎。我只是想通过php页面输出MongoDB集合的内容;而已。但是,在阅读了多个教程后,我无法成功连接到我的MongoDB。
我了解到通过Composer连接到MongoDB是一个可行的选择。
所以我按照本教程安装Composer:
https://www.digitalocean.com/community/tutorials/how-to-install-and-use-composer-on-ubuntu-16-04
1.
cd ~
curl -sS https://getcomposer.org/installer -o composer-setup.php
2.
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
3.
composer require mongodb/mongodb
根据this tutorial,我现在需要在我的php文件中输入require 'vendor/autoload.php';
。 “没有相应的文件和目录。”好吧,所以我运行sudo find / -name autoload.php
并在autoload.php
找到/root/vendor/autload.php
。所以我最终得到以下php文件:
<?php
require '/root/vendor/autoload.php'; // Composer autoloader
use MongoDB\Driver\Manager as Mongo;
$mongo = new Mongo("mongodb://127.0.0.1:27017");
$collection = $mongo->blogDB->posts;
$result = $collection->find()->toArray();
print_r($result);
?>
但是在执行php文件时,我收到以下错误:
Warning: require(/root/vendor/autoload.php): failed to open stream: Permission denied in /var/www/html/mySite/read.php on line 2
Fatal error: require(): Failed opening required '/root/vendor/autoload.php' (include_path='.:/usr/share/php') in /var/www/html/mySite/read.php on line 2
我试过sudo chmod o+w /root/vendor/
无济于事。我可以简单地将autoload.php
安全地移动到新位置而不会破坏Composer配置吗?我在哪里可以移动它?
我想过从头开始卸载/重新安装Composer(这次是在管理员帐户内而不是像上次一样在root帐户中),但是sudo apt-get purge --auto-remove composer
失败了,我认为错误Package 'composer' is not installed, so not removed
是有意义的,因为我没有通过apt
安装它。
授予此路径权限:“root / vendor / autoload.php”
给予许可777
并使用“require_once”而不是“require”。
这是错误,因为未授予对此文件夹的文件读取权限。
一旦给予许可,然后再试一次。希望代码可以工作