Запущенный 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.