Запущенный Composer возвращает: «Не удалось открыть входной файл: composer.phar»


214

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

php composer.phar update

но я получил ошибку:

Could not open input file: composer.phar

Так что я немного погуглил и попробовал

php composer.phar install

но все равно получаю ту же ошибку. Поэтому, пожалуйста, расскажите, как обращаться с этим композитором, чтобы установить новые расширения или пакеты, такие как data-fixtures в symfony2, используя wamp.


Вы установили composer.phar в нужном месте ??
— hizbul25

У меня была эта проблема при попытке настроить композитора глобально. Я закончил тем, что добавил alias composer="php C:\\\\Users\\\\MyUsername\\\\bin\\\\composer.phar"к своему файлу .bashrc . Некрасиво, но сработало.
— Батандва

15
Решение для пользователя windows ниже @Jamil, вам нужно использовать composer, а не php composer.phar
— Carlos487

Вам не нужен .phar, если вы уже установили composer, просто запустите обновление
— composer

Ответы:


280

Если вы следовали инструкциям, подобным этим:

https://getcomposer.org/doc/00-intro.md

Которые говорят вам сделать следующее:

$ curl -sS https://getcomposer.org/installer | php
$ mv composer.phar /usr/local/bin/composer

Тогда, вероятно, вы, как и я, выполняли эти команды и не читали следующую часть страницы, в которой говорилось, что вам следует прекратить ссылаться на composer.phar по его полному имени и сокращать его как исполняемый файл (который вы просто переименовали с помощью mv команда). Итак, это:

$ php composer.phar update friendsofsymfony/elastica-bundle

Становится так:

$ composer update friendsofsymfony/elastica-bundle

37
Следует помнить, что если вы правильно установили его (в Windows) и добавили в переменную PATH своей среды, вам не нужно вводить php composer.phar и использовать вместо него composer.
— AturSams

@ Крис Москини Кажется, вы можете мне помочь. Посмотрите на это: stackoverflow.com/questions/52091827/…
— Успешный мужчина


151

У меня была та же проблема в Windows, и я использовал другое решение. Я использовал установочный файл Composer_Setup.exe, предоставленный веб-сайтом композитора, и он выполняет глобальные установку.

После установки убедитесь, что переменная PATH указывает на каталог, в котором хранится composer.phar. Обычно это так C:\ProgramData\ComposerSetup\bin( ProgramData может быть скрытым каталогом ). Само собой разумеется, но также убедитесь, что исполняемый файл PHP также находится в переменной PATH.

Вы можете просто позвонить

composer install

вместо того

php composer.phar install

6
Это наконец работает, я не понимаю, почему я не могу найти эту информацию нигде на сайте композитора ...
— Хеннинг Фишер

4
Спасибо! Это не упоминается в разделе «Основное использование» в документах Composer. Getcomposer.org/doc/01-basic-usage.md#install-dependencies
— Ник Роландо,

После этого ответа прошло более двух лет, а документы до сих пор не обновлены, поэтому у меня возникла та же проблема. Спасибо!
— Энди Мерсер

105

Задний план

Полезно знать, что есть два способа установить (и использовать) Composer: локально как файл в каталоге вашего проекта или глобально как исполняемый файл всей системы.

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

Как обычный PHP-файл, который вы хотите выполнить в командной строке, вам нужно будет запустить его с PHP:

php composer.phar update

Что в основном рассказывает phpисполняемый для запуска файла composer.pharс в updateкачестве аргумента.

Однако, если вы установите его глобально , вы можете сделать сам Composer исполняемым, так что вы можете вызывать его без php (и не нужно загружать его для каждого проекта). Другими словами, вы можете использовать composer следующим образом:

composer update

Поскольку вы выполняете php composer.phar update, и вы получаете ошибку Could not open input file: composer.phar, вы, вероятно, не composer.pharв вашем текущем каталоге.

Решение

Если у вас установлен Composer глобально, просто запустите composer updateвместо php composer.phar update.

Если у вас еще не установлен Composer, загрузите PHAR с помощью следующей команды:

curl -sS https://getcomposer.org/installer | php

Это загрузит установщик и запустит его с помощью php. Установщик загрузит фактический PHAR Composer в ваш текущий рабочий каталог и сделает его исполняемым.

Чтобы установить Composer глобально (я рекомендую это), скопируйте файл в свое место PATH. Точное местоположение зависит от операционной системы и настроек, см. Https://getcomposer.org/doc/00-intro.md#globally для получения дополнительной информации.

Лично я предпочитаю устанавливать Composer в свой домашний каталог, поэтому мне не нужно sudoустанавливать или обновлять composerисполняемый файл (что может быть угрозой безопасности). Поскольку я работаю в Linux, я использую следующую команду:

mv composer.phar ~/.local/bin/composer

1
Я хотел бы обновить этот ответ более одного раза. Помимо ответа на вопрос, он проясняет вопрос о разнице между локальной и глобальной установкой Composer. Спасибо тебе за это.
— NaijaProgrammer

49

Если кто-то еще зашел так низко на странице и все еще не нашел рабочего ответа (как я), используйте это:

$ curl -sS https://getcomposer.org/installer | php
$ mv composer.phar /usr/local/bin/composer.phar
$ alias composer='/usr/local/bin/composer.phar'
$ composer --version

и вуаля! Работающий композитор :-)


Спасибо, агент Смулдерс. ;)
— Стивен Вентимилья

Работал для меня, но мне пришлось изменить одну строку, чтобы она работала правильно $ alias composer = '/ usr / local / bin / composer'
— Стеф Моро,

На моем Mac OS XI я добавил команду alias в мой файл .bash_profile. Это сделает псевдоним постоянным для новых терминальных сеансов.
— noctufaber

1
Вторая строка не работает mv composer.phar /usr/local/bin/composer.phar. Я получаю сообщение об ошибке: mv: regular File '/usr/local/bin/composer.phar'не удалось установить: отсутствуют права.
— Питер

12

Я обнаружил, что это сработало, так как у меня не было установлено curl. На Windows 8 с установленным XAMPP. Это добавит его в вашу локальную сборку. Я использую .gitignore, чтобы избежать репо

php -r "readfile('https://getcomposer.org/installer');" | php

Я получил это здесь: https://getcomposer.org/download/


12

Чтобы решить эту проблему, первое, что вам нужно сделать, это получить последнюю версию composer:

curl -sS https://getcomposer.org/installer | php

Я рекомендую вам переместить файл composer.phar в глобальную директорию bin, в моем случае (OS X) путь:

mv composer.phar /usr/local/bin/composer.phar

чем вам нужно создать файл псевдонимов для быстрого доступа

alias composer='/usr/local/bin/composer.phar'

Если все в порядке, пришло время проверить нашу версию Composer:

composer --version

Давайте снова сделаем композитора великим.


10

Это сработало для меня:

composer install

Без

php composer install

даже без расширения? Кроме того, добавьте в свои строки кода 4-символьную неопределенность, чтобы они были отформатированы как код
— YakovL

4

Вчера я пытался установить Yii2 framework на Windows 10, и у меня возникла та же проблема (не удалось открыть входной файл: composer.phar) при выполнении этой команды:

php composer.phar create-project yiisoft/yii2-app-advanced advanced 2.0.9

Проблема в том, что файл composer.phr отсутствует в текущем каталоге, необходимо указать полный путь к composer.phr

php C:\ProgramData\Composer\bin\composer.phar create-project yiisoft/yii2-app-advanced advanced 2.0.9

Или вы можете создать проект yii2 с помощью этой команды:

 composer create-project yiisoft/yii2-app-advanced advanced 2.0.9

Или

composer.phar create-project yiisoft/yii2-app-advanced advanced 2.0.9


3

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

composer update

composer require "samplelibraryyouwant"


3
Это не дает ответа на вопрос. Чтобы критиковать или запросить разъяснения у автора, оставьте комментарий под своим постом.
— Бас ван Штайн

@BasvanStein Это похоже на попытку ответить. Если вы считаете, что этот ответ неправильный, вы можете понизить его.
— Артжом Б.

2

Простой ответ, перейдите в каталог, где у вас уже есть файл composer.json, который вы хотите запустить (в идеале, в папку вашего проекта), затем загрузите composer в ту же папку, а затем сразу же запустите команду установки следующим образом:

 php composer.phar install

Это автоматически найдет composer.json и запустит необходимые скрипты. Удачи. Этот материал - бриз для конечных волшебников и совершенно странный для всех нас.


2

Я использую Windows 8.0. В моем случае для установки или обновления я просто использую composer install или что-то еще вместо php composer.phar. Это сработало для меня, как

composer require google/apiclient:1.*

2

Привет друзья, следуйте инструкциям, чтобы исправить эту проблему в MAC OS

  • Шаг 1: сначала запустите команду в Терминале с вашим каталогом проекта

    $ curl -sS https://getcomposer.org/installer | PHP

  • Шаг 2: Переместите composer.phar в каталог вашего проекта

    $ mv composer.phar /Applications/MAMP/htdocs/bashrushAPI/composer.phar

  • Шаг 3: Настройка псевдонима композитора

    $ alias composer = '/ Applications / MAMP / htdocs / bashrushAPI / composer.phar'

  • Шаг 4: Проверьте версию композитора сейчас

    $ composer --version

    Composer version 1.7.2 2018-08-16 16:57:12

  • Шаг 5: Подтвердите папки проекта и файл, расположенный ниже

    $ ls

    CONTRIBUTING.md docker-compose.yml templates README.md logs tests composer.json phpunit.xml vendor composer.lock public composer.phar src

  • Шаг 6: Теперь обновите композитор

    обновление $ composer.phar

    Loading composer repositories with package information Updating dependencies (including require-dev) Nothing to install or update Generating autoload files

  • Шаг 7: Запустите ваш пример проекта

    $ php composer.phar start

    php -S localhost:8080 -t public [Thu Sep 27 03:16:11 2018] ::1:51177 [200]: / [Thu Sep 27 03:16:11 2018] ::1:51178 [404]: /favicon.ico - No such file or directory


1

введите описание изображения здесь

Ваш composer.phar должен быть расположен выше.


Я использую windows8 и установил exe из composer как на getcomposer.org/download . Затем я скопировал файл composer.phar в свой проект в соответствии с показанной вами структурой. Файлы composer.json и composer.lock уже были там, поскольку это была загрузка пакета symfony по умолчанию. После того, как я выполнил команду composer udpate, это заняло около получаса, но еще не завершилось. В чем дело? Пожалуйста, предложите. Заранее спасибо!
— user3291745

хорошо, вы используете cmd для команды? поэтому вы должны сменить каталог правильно. Лучше предоставьте свою структуру каталогов со снимком экрана.
— hizbul25

Stackoverflow не позволяет мне загружать изображения, так как я только что родился, у меня меньше очков или репутации. Я запускаю команду обновления composer в каталоге C: \ wamp \ www \ Symfony \, и в этом каталоге я вижу приложение папок composer.phar, composer.json, composer.lock, bin, vendor, src и web.
— user3291745

C: cd wamp \ www \ Symfony
— hizbul25

В связи с этим разработчик всегда предлагает linux для php / python / ruby. :)
— hizbul25

1

Для окон я сделал composer.cmd и использовал следующий текст:

php c:\programs\php\composer.phar %*

где composer.phar установлен и c: \ Programs \ php \ добавлен в мой путь.

Не уверен, почему это не делается автоматически.


1

Для Windows10 Pro следующие шаги решают проблему. В свойствах выберите опцию Разблокировать программу. Запустите установщик, запустите команду CMD с правами администратора. По команде Promp запустите, composer --versionчтобы убедиться, что он установлен глобально. Теперь вы должны быть в состоянии выполнить composer require drush/drushэто для зависимости от Drush с помощью composer.


1

Просто откройте cmd от имени администратора и зайдите в папку вашего проекта и убедитесь, что она работает или нет, используя команду composer.

Вышеупомянутая ошибка из-за того, что композитор не доступен глобально. Поэтому вам нужно запустить «cmd» от имени администратора.

Это работает нормально для меня.


1

Запустите следующее в командной строке:
curl -sS https://getcomposer.org/installer | php


0

Ваш composer.phar должен быть в исходных файлах. У меня была такая же проблема, и я просто вырезал свой composer.phar в мою папку framework-standard-edition , где находится весь мой текстовый проект.


0

если composer уже установлен, все, что вам нужно, это знать, где находится файл composer.phar (его каталог), после чего вы перемещаетесь в свой проект symfony, где у вас есть composer.json, и из этого каталога вы запускаете свой файл composer.phar. В окнах есть то, что вы должны сделать.

symfony project directory_where_composer.json_is>php the_directory_where_composer.phar_is/composer update 

Вот и все




0

Я достиг этой проблемы, когда пытался установить composer на компьютере с Windows 7 со страницы http://getcomposer.org/download . Так как существовала существующая версия compose (предоставляется утилитой acquia Dev Desktop), установка не удалась, и единственным шансом было исправить эту проблему вручную. (или удалить инструмент разработчика рабочего стола).

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

Отредактируйте файл composer.bat и должен выглядеть так:

@SET PATH=C:\Program Files (x86)\DevDesktop\php5_4;%PATH%
php.exe composer.phar %*

Смотрите, что composer.phar не имеет пути к файлу. Стоя в папке, отличной от той, в которой находится composer.phar, система не сможет найти ее. Итак, просто заполните путь к файлу composer.phar:

@SET PATH=C:\Program Files (x86)\DevDesktop\php5_4;;%PATH%
SET composerScript=composer.phar
php.exe "%~dp0%composerScript%" %*

Откройте вашу оконную консоль, и это должно сработать.

РЕДАКТИРОВАТЬ: это имеет проблему, потому что он всегда использует папку% ~ dp0% composerScript% в качестве исполнения композитора. Затем все настройки выполняются в этой папке (кроме положения в текущей папке проекта), а не в папке вашего проекта.

До сих пор я не нашел, чтобы сделать ручную установку композитора для глобальной работы в Windows. Возможно, вам следует продолжить с composer для установки Windows, упомянутой выше.


0

Не обращайтесь к композитору с помощью composer composer.pher install

использовать композитор установить


0

Вы можете просто попробовать эту команду, если вы уже установили Composer:

composer update 

или, если вы хотите добавить пакет к вашему композитору, попробуйте это:

composer require "/../"


0

Я исправил ту же проблему с помощью следующих шагов

  1. Откройте каталог проекта Используя Терминал ( который вы используете т.е. mintty )
  2. Теперь установите composer в этом каталоге в соответствии с указаниями на https://getcomposer.org/download/

php -r "copy (' https://getcomposer.org/installer ', 'composer-setup.php');"

php -r "if (hash_file ('SHA384', 'composer-setup.php') === 'the-обеспеченный-хэш-код') {echo 'Установщик проверен';} else {echo 'Установщик поврежден'; отсоединить ('composer-setup.php');} echo PHP_EOL; "

php composer-setup.php php -r "unlink ('composer-setup.php');"

  1. Теперь запустите вашу команду.

Теперь все работает нормально, потому что composer.phar файл доступен в текущем каталоге проекта.

Спасибо


0

У меня все работает, просто нужен файл composer.pharи composer.jsonв текущем проекте. Команда

php composer.phar update 

0

Команда как это:

composer.phar require intervention/image

ошибка: composer.phar: команда не найдена

Я решил проблему, следуя этому процессу

я установил композитор глобально и переименовал, composer.pharчтобы composerзатем запустить эту команду composer require intervention/image. и теперь работает нормально


0

Я знаю, что, возможно, мой ответ слишком конкретен для встроенного сервера QNAP, но на этом я закончил, пытаясь установить Yii:

Для меня, внутри QNAP NAS через PuTTY, после попытки всех вышеперечисленных трюков и обновления PATH безрезультатно, единственная работающая строка cmd:

 /mnt/ext/opt/apache/bin/php /usr/local/bin/composer create-project yiisoft/yii2-app-basic basic

Конечно, адаптируйте свой путь соответственно ...

Если я делаю which composer, у меня есть правильный ответ, но если я делаю, which phpничего не возвращается.

Кроме того, пытаясь бежать

/mnt/ext/opt/apache/bin/php composer create-project yiisoft/yii2-app-basic basic

или ссылаясь на

composer.phar

тоже не сработало ...

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.