Ошибка "Failed opening required bootstrap/../vendor/autoload.php" в Laravel 5
Причина ошибки
Ошибка Failed opening required bootstrap/../vendor/autoload.php возникает, когда Composer не сгенерировал файл автозагрузки vendor/autoload.php. Этот файл создаётся автоматически при выполнении команд composer install или composer update. Если его нет — значит, процесс установки зависимостей был прерван или выполнен некорректно.
Решение (пошаговая инструкция)
- Удалите папку vendor полностью (не только содержимое, а саму папку):
- Удалите файл composer.lock (если есть):
- Очистите кэш Composer (это важно, особенно если ранее были сбои):
- Выполните установку зависимостей заново с флагом
--prefer-dist(скачивает стабильные версии пакетов): - Проверьте результат — в папке
vendorдолжен появиться файлautoload.php:
# В командной строке (Windows — cmd или PowerShell)
cd C:\xampp\htdocs\myproject
rmdir /s vendor
del composer.lock
composer clear-cache
composer install --prefer-dist --no-dev
Флаг --no-dev пропускает установку пакетов для разработки (они не нужны для продакшена, но и не помешают). Если вы разрабатываете локально, можно без этого флага.
dir vendor\autoload.php
Если файл есть — ошибка исчезнет.
Если ошибка осталась — проверьте PHP и Composer
- Версия PHP: Laravel 5 требует PHP >= 7.0. Убедитесь, что у вас PHP 7.4 (ваша версия подходит).
- Наличие PHP в PATH: В командной строке выполните
php -v. Если команда не найдена — добавьте путь к PHP в переменную среды PATH. - Права доступа: На Windows это редкость, но убедитесь, что у папки проекта нет атрибута "Только чтение".
- Антивирус/блокировщики: Некоторые антивирусы могут блокировать создание файлов Composer'ом. Временно отключите защиту в реальном времени и повторите шаги.
Альтернативный способ — ручная генерация autoload
Если Composer работает, но файл не создаётся, попробуйте принудительно сгенерировать автозагрузчик:
composer dump-autoload
Эта команда пересоздаёт vendor/autoload.php на основе текущих установленных пакетов.
Проверка структуры проекта
Убедитесь, что вы работаете из корневой папки Laravel (где лежат artisan, composer.json, bootstrap). Если вы случайно создали проект внутри другой папки — пути могут быть неверными.
После выполнения всех шагов запустите php artisan serve — ошибка должна исчезнуть, и вы увидите приветственную страницу Laravel.
Дополнительная причина: несовместимость версий Laravel и PHP
Хотя у вас PHP 7.4, убедитесь, что версия Laravel 5 совместима с этой версией PHP. Laravel 5.5 и выше поддерживают PHP 7.4, но более старые версии (5.0–5.4) могут требовать PHP 7.0–7.2. Если вы установили Laravel 5.0 или 5.1 через Composer без указания версии, он мог скачать устаревшую сборку.
Решение: явно укажите версию Laravel
# Удалите старый проект и создайте новый с конкретной версией
cd C:\xampp\htdocs
rmdir /s myproject
composer create-project laravel/laravel myproject "5.8.*" --prefer-dist
Версия 5.8.* — последняя стабильная в линейке Laravel 5, она точно работает с PHP 7.4. После установки повторите шаги из первого ответа (очистка кэша, composer install).
Если проблема с путями на Windows
Иногда на Windows пути с обратной и прямой косой чертой путаются. Откройте файл bootstrap/autoload.php и замените:
require __DIR__.'/../vendor/autoload.php';
на абсолютный путь:
require 'C:\xampp\htdocs\myproject\vendor\autoload.php';
Это временное решение — после исправления основной причины верните относительный путь.
Также проверьте, что в composer.json нет синтаксических ошибок — выполните composer validate. Если он сообщает об ошибках, исправьте их и повторите установку.