Я действительно борюсь здесь.Я просто пытаюсь вывести содержимое коллекции MongoDB через страницу php;вот и все.Однако я не могу успешно подключиться к своему MongoDB после прочтения нескольких учебников.
Я узнал, что подключение к вашему MongoDB через Composer - это жизнеспособный вариант.
Поэтому я следовал этому руководству, чтобы установить 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
Согласно этого урока , теперь мне нужно ввести require 'vendor/autoload.php';
в моем 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 с нуля (на этот раз в учетной записи администратора, а не в корневой учетной записи, как в прошлый раз), но sudo apt-get purge --auto-remove composer
завершается с ошибкой Package 'composer' is not installed, so not removed
что, я думаю, имеет смысл, так как я не установил его через apt
.