Ошибка "Could not open input file: artisan" при запуске Artisan в Laravel
Основная причина и самое простое решение
Ошибка "Could not open input file: artisan" в 99% случаев возникает из-за того, что вы запускаете команду php artisan не из корневой директории вашего Laravel-проекта. Даже если вам кажется, что вы находитесь в правильной папке, есть нюансы.
Файл artisan — это PHP-скрипт, который находится в самом корне проекта. Когда вы пишете php artisan, PHP ищет файл с именем artisan в текущей рабочей директории. Если его там нет — возникает ошибка.
Пошаговое решение
Проверьте следующие пункты:
- Убедитесь, что вы в корне проекта. Выполните команду
pwd(Linux/Mac) илиcd(Windows без параметров). Путь должен заканчиваться на папку, где лежатapp,vendorи самartisan. - Проверьте наличие файла. Выполните
ls -la(Linux) илиdir(Windows). В списке должен быть файлartisan. Если его нет — вы либо не до конца установили Laravel, либо случайно удалили его. - Используйте абсолютный путь. Если вы точно знаете путь к проекту, попробуйте:
Если и это не работает, значит, проблема в самом файле или в PHP.php /полный/путь/к/проекту/artisan list
Если файл есть, но ошибка остаётся
Иногда файл artisan может быть повреждён или иметь неправильный shebang. Откройте его в текстовом редакторе. Первая строка должна быть:
#!/usr/bin/env php
<?php
Убедитесь, что файл начинается именно так. Если нет — переустановите Laravel или восстановите файл из репозитория.
Проблема с правами доступа
Права 644 — это нормально для чтения, но PHP должен иметь право на выполнение. Выполните:
chmod +x artisan
После этого попробуйте снова.
Альтернативный запуск через "php artisan" без пути
Если вы всё ещё в корне проекта, но ошибка не исчезает, попробуйте явно указать путь через ./:
php ./artisan list
Точка и слеш означают "текущая директория". Это помогает, если в вашей системе не настроена переменная окружения PATH или если вы используете странный терминал.
Проверка установки PHP
Редкая, но возможная причина — у вас установлена не та версия PHP или PHP вообще не установлен. Проверьте:
php -v
Если команда не найдена — установите PHP. Для Laravel 4 требуется PHP >= 5.4.
Итог: Скорее всего, вы просто не в той папке. Перейдите в корень проекта командой cd /var/www/myproject и выполните php artisan list. Ошибка исчезнет.
Дополнительный способ: проверка через Composer
Если базовые методы не помогли, возможно, у вас проблема с autoload или с самим файлом artisan. Попробуйте пересоздать его через Composer.
Выполните в корне проекта:
composer dump-autoload
Эта команда перегенерирует файлы автозагрузки. После этого попробуйте запустить Artisan снова.
Если и это не сработало, запустите:
composer install --no-scripts
Это переустановит все зависимости, но пропустит выполнение скриптов (которые могли сломать файл artisan). Затем выполните php artisan list.
Для Windows-пользователей: Убедитесь, что PHP добавлен в переменную окружения PATH. Откройте командную строку и введите where php. Если путь не отображается — добавьте его вручную через "Системные переменные среды".
Ещё один лайфхак: создайте в корне проекта файл test.php с содержимым <?php echo 'OK'; и запустите php test.php. Если выводит "OK" — PHP работает, проблема именно в файле artisan.