Avatar ·

Ошибка "Could not open input file: artisan" при запуске Artisan в Laravel

Всем привет! Только начал изучать Laravel 4, и сразу столкнулся с проблемой. Установил Laravel через Composer, всё прошло успешно. Но когда пытаюсь запустить Artisan из командной строки, чтобы создать контроллер или выполнить миграцию, вылезает ошибка: ``` Could not open input file: artisan ``` Я нахожусь в корневой папке проекта, где лежат папки `app`, `vendor`, `public` и файл `artisan`. Вот что я ввожу: ```bash cd /var/www/myproject php artisan list ``` В ответ получаю эту ошибку. Пробовал указывать полный путь: ```bash php /var/www/myproject/artisan list ``` Тогда ошибка меняется на: `Could not open input file: /var/www/myproject/artisan`. Это как-то связано с тем, что PHP не видит файл? Права на файл `artisan` стоят `644`. Проверил — PHP установлен, работает. Что я делаю не так? Пробовал гуглить, но решения вроде "проверь путь" не помогают. Может быть, я неправильно установил Laravel? Или нужно что-то настраивать в PHP? Структура проекта стандартная, вот как она выглядит: ``` myproject/ ├── app/ ├── bootstrap/ ├── vendor/ ├── public/ ├── artisan ├── composer.json ├── composer.lock └── ... ``` Помогите, пожалуйста, разобраться! Уже второй день мучаюсь. <<>>

Основная причина и самое простое решение

Ошибка "Could not open input file: artisan" в 99% случаев возникает из-за того, что вы запускаете команду php artisan не из корневой директории вашего Laravel-проекта. Даже если вам кажется, что вы находитесь в правильной папке, есть нюансы.

Файл artisan — это PHP-скрипт, который находится в самом корне проекта. Когда вы пишете php artisan, PHP ищет файл с именем artisan в текущей рабочей директории. Если его там нет — возникает ошибка.

Пошаговое решение

Проверьте следующие пункты:

  1. Убедитесь, что вы в корне проекта. Выполните команду pwd (Linux/Mac) или cd (Windows без параметров). Путь должен заканчиваться на папку, где лежат app, vendor и сам artisan.
  2. Проверьте наличие файла. Выполните ls -la (Linux) или dir (Windows). В списке должен быть файл artisan. Если его нет — вы либо не до конца установили Laravel, либо случайно удалили его.
  3. Используйте абсолютный путь. Если вы точно знаете путь к проекту, попробуйте:
    php /полный/путь/к/проекту/artisan list
    Если и это не работает, значит, проблема в самом файле или в PHP.

Если файл есть, но ошибка остаётся

Иногда файл 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.