Документы php возвращают "разрешение отказано" в `require '/ root / vendor / autload.php'` - PullRequest
0 голосов
/ 09 апреля 2019

Я действительно борюсь здесь.Я просто пытаюсь вывести содержимое коллекции 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.

1 Ответ

0 голосов
/ 09 апреля 2019

Дайте разрешение этому пути: "root / vendor / autoload.php"

Дайте разрешение 777

И использовали "require_once" вместо "require".

Это ошибка, потому что не дано разрешение на чтение файла в эту папку.

один раз дайте разрешение, затем попробуйте снова.Надеюсь, код будет работать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...