require (vendor/autoload.php): не удалось открыть поток

Я знаю, что этот вопрос был опубликован много раз, но для меня это, кажется, другая проблема.

Действительно, эта ошибка

Предупреждение: require (vendor/autoload.php): не удалось открыть поток: нет такого файла или каталога в C:\xampp\htdocs\site_web\send_mail.php в строке 3

Неустранимая ошибка: require(): для неудачного открытия требуется "vendor/autoload.php" (include_path = 'C:\xampp\php\PEAR') в C:\xampp\htdocs\site_web\send_mail.php в строке 3

появляется в начале моего кода из этой строки:

require 'vendor/autoload.php';

Таким образом, я предполагаю, что файл /vendor/autoload.php должен быть где-то на моем компьютере (я установил композитор и composer require phpmailer/phpmailer).

Итак, я искал этот файл, используя: dir/s autoload.php в командной строке Windows и нашел его здесь: C:\Windows\SysWOW64\vendor\autoload.php,

но для меня папка syswow64 не имеет ничего общего с autoload.php, я не вижу, чего здесь не хватает.

Ответы

Ответ 1

Вам не хватает composer install, которая импортирует ваши пакеты и создаст папку vendor вместе со скриптом автозагрузки.

Убедитесь, что ваш относительный путь правильный. Например, примеры сценариев в PHPMailer находятся в examples/, под корнем проекта, поэтому правильный относительный путь для загрузки автозагрузчика ../vendor/autoload.php оттуда будет ../vendor/autoload.php.

C:\Windows\SysWOW64\vendor\autoload.php вы нашли в C:\Windows\SysWOW64\vendor\autoload.php вероятно, является глобальной установкой композитора, куда вы обычно помещаете такие вещи, как phpcs, phpunit, phpmd и т.д.

composer update - это не то же самое, и, вероятно, не то, что вы хотите использовать - если ваш код тестируется с вашими текущими версиями пакета, то запуск update может вызвать сбои, которые могут потребовать дальнейшей работы и тестирования, поэтому не запускайте update если у вас нет конкретная причина. Чтобы уточнить далее - вы, вероятно, должны запускать composer update локально, но не на своем сервере.

Я часто вижу жалобы на то, что люди не могут использовать composer, потому что они не могут запустить его на своем сервере (например, потому что он используется совместно и у них нет доступа к оболочке). В этом случае вы все равно можете использовать composer: запустить его локально (среда, в которой нет таких ограничений) и загрузить локальную папку вендора, которую он генерирует вместе со всеми другими вашими PHP-скриптами.

Ответ 2

Если вы получите ошибку также при запуске

composer install

Сначала запустите эту команду

composer dump-autoload

Эта команда очистит все скомпилированные файлы и их пути.

Ответ 4

Сначала убедитесь, что вы установили композитор.

composer install

Если вы уже установили, обновите композитор.

composer update

Ответ 5

Правильная конфигурация autoload.php:

A) Быстрый ответ:

Неверный путь autoload.php. то есть. C:\Windows\SysWOW64\vendor\autoload.php На сегодняшний день вам необходимо изменить его на: C:\Users\<Windows User Name>\vendor\autoload.php


B) Шаги с примером: в качестве примера возьмем facebook/php-graph-sdk; при необходимости измените Package Name.

  1. Установить композитор.exe
  2. Откройте CMD Prompt. pMPhg.png + R + тип CMD
  3. Выполнение этой команды: для composer require facebook/graph-sdk
  4. Включить путь на странице PHP: require_once 'C:\Users\<Windows User Name>\vendor\autoload.php';
  5. Определите конфигурацию Secrets и Access Token для вашего пакета... и т.д.
  6. Счастливый codinig.

C) Дополнительная информация:

Установка композитора в Windows устанавливает этот путь по умолчанию для ваших pacakges; вы можете найти их там и включить путь автозагрузчика:

C:\Users\<Windows User Name>\vendor

По тому же вопросу вы спросили; ответом был этот путь для WAMP Server 64 BIT для Windows.

Затем просто в вашем приложении PHP измените это:

require_once __DIR__ . '/vendor/autoload.php'; 

Для того, чтобы:

require_once 'C:\Users\<Windows User Name>\vendor\autoload.php'; 

Найдите имя пользователя Windows в разделе C:\Users\

Прежде всего, как указано выше в B), вам нужно запустить эту команду:

composer require <package name>

для facebook php SDK, например:

composer require facebook/graph-sdk

Спасибо, что задали этот вопрос;оценил, поскольку это помогло мне исправить аналогичную проблему и закончил писать этот простой учебник.

Ответ 6

У меня был этот путь в моей машине:

C:/xampp5.0/htdocs/project-recordando-symfony/project-recordando-symfony

Затем я запустил composer install и/или composer update и она вернула эту ошибку:

ErrorException ZipArchive::extractTo...

Эта ошибка связана с тем, что ваш путь слишком длинный, я изменил на:

C:/xampp5.0/htdocs/p-symfony/*

и работает!

Ответ 7

Если вы клонировали свой проект из Github или получили его откуда-то еще, вы столкнетесь с этой ошибкой. Это потому, что вам не хватает папки продавца и других файлов. Папка vendor содержит пакеты, которые зависят от вашего проекта. Зависимости пакета хранятся в файле composer.json и папка была исключена при загрузке в Github.

Исправьте эту ошибку, просто запустив:

composer install

Тогда вы получите все активы, необходимые для вашего проекта.

Ответ 8

запустить composer update. Это

Ответ 9

Я смог решить, удалив композитора и переустановить правильный путь. Вот что я сделал:

  • sudo apt удалить композитор
  • sudo apt autoclean && sudo apt autoremove
  • Устанавливается глобально с инструкциями из: https://getcomposer.org/doc/00-intro.md Загрузить с: https://getcomposer.org/installer global install: mv composer.phar/usr/local/bin/composer ( Примечание: мне пришлось переместить мой в mv composer.phar/usr/bin/composer)

Затем я смог снова установить композитор. Нашел мой ответ внизу этой проблемы: https://github.com/composer/composer/issues/5510

Ответ 10

Во-первых, просмотрите маршрут внутри index.php

require __DIR__.'/../vendor/autoload.php';

$app = require_once __DIR__.'/../bootstrap/app.php';

в моем случае маршрут не работал, мне пришлось просмотреть каталоги.

Ответ 11

Эта проблема произошла со мной, когда я клонирую проекты из git и хочу запустить в первый раз. Я запустил composer install в каталоге и его работу для меня.

Ответ 12

В папке вашего проекта отсутствует папка vendor, поэтому вы получили эту ошибку:

Предупреждение: требуется (vendor/autoload.php): не удалось открыть поток: нет такого файла или каталога в

Когда вы загружаете проект через git, проект загружается без папки vendor

Вам нужен /vendor потому что там есть все ваши пакеты, включая все классы, которые использует Laravel. Каталог vendor содержит ваши зависимости Composer.

Решение простое, просто запустите эту команду:

composer update --no-scripts 
composer update
  • composer update --no-scripts Пропускает выполнение скриптов, определенных в файле composer.json.
  • composer update composer Обновит ваши зависимости, как они указаны в файле composer.json.

С помощью этой команды вы заново создадите папку vendor в своем проекте, после чего ваш проект начнет работать нормально.

Ответ 13

Измените свойство auto_prepend_file на php.ini

; Automatically add files before PHP document. 
;http://php.net/auto-prepend-file 
auto_prepend_file =

Ответ 14

Только это: композитор требует symfony/finder

Ответ 15

*** PHP Предупреждение: require_once (C:\xampp\htdocs\test1/bootstrap/app.php): не удалось открыть поток: нет такого файла или каталога в C:\xampp\htdocs\test1\artisan в строке 20 Предупреждение: require_once (C:\xampp\htdocs\test1/bootstrap/app.php): не удалось открыть поток: нет такого файла или каталога в C:\xampp\htdocs\test1\artisan в строке 20 PHP Неустранимая ошибка: require_once(): Не удалось открыть окно "C:\xampp\htdocs\test1/bootstrap/app.php" (include_path = 'C:\xampp\php\PEAR') в C:\xampp\htdocs\test1\artisan в строке 20

Неустранимая ошибка: require_once(): Не удалось выполнить открытие: C:\xampp\htdocs\test1/bootstrap/app.php '(include_path =' C:\xampp\php\PEAR ') в C:\xampp\htdocs\test1\ремесленник на линии 20 ***

Эта проблема из-за отсутствия загрузочного файла в папке проекта. Эта проблема не может быть исправлена с помощью переустановки или обновления композитора.. вы можете исправить, используя: если у вас есть другой доступ к проекту, просто откройте этот проект и скопируйте папку с файлом начальной загрузки и например, у вас есть недостающая папка проекта: у меня есть два теста проекта 1 и тест 2 (вы можете создать свой проект, используя cmd => тест-проект laravel/laravel для композитора 1) теперь перейдите к атому и откройте тест проекта 1 и проверьте 2. эта ошибка возникает в тесте 1, вы можете просто скопировать файл начальной загрузки из теста 2 и прошлого, чтобы протестировать изменения 1.save.. затем перейдите в cmd, просто введите php artisan serve.. тогда ваша проблема будет решена.