Запуск композитора повертає: "Не вдалося відкрити вхідний файл: composer.phar"


213

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

php composer.phar update

але я отримав помилку:

Could not open input file: composer.phar

Тому я трохи погуглився і спробував

php composer.phar install

але все ж отримує ту саму помилку. Тому, будь ласка, вкажіть, як поводитися з цим композитором, щоб встановити нові розширення або розшарування, такі як світильники даних у symfony2, використовуючи wamp.


Ви встановили composer.phar в потрібне місце ??
hizbul25

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

14
Рішення для користувачів Windows нижче наведено на @Jamil, вам потрібно скористатися композитором, а не php composer.phar
Carlos487

Вам не потрібно .phar, якщо ви вже встановили композитор, просто запустіть оновлення композитора
meddy

Відповіді:


279

Якщо ви дотримувались таких інструкцій:

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

@Chris Moschini Здається, ви можете мені допомогти. Подивіться на це: stackoverflow.com/questions/52091827/…
Людина успіху

чи потрібно встановлювати композитора в кожному проекті, я встановив композитора за допомогою їх інсталятора
Sushant Bhargav

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#installing-dependencies
Нік Роландо

Минуло більше двох років з моменту цієї відповіді, і документи досі не оновлювалися, тому у мене була та сама проблема. Дякую!
Енді Мерсер

105

Фон

Корисно знати, що існує два способи встановлення (і використання) композитора: локально як файл у каталозі проекту, або глобально як виконуваний у всій системі.

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

Як і звичайний файл PHP, який потрібно виконати в командному рядку, вам доведеться запустити його з PHP:

php composer.phar update

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

Однак якщо ви встановите його в усьому світі , ви можете зробити композитора самим виконуваним, тому можете назвати його без php (і не потрібно завантажувати його для кожного проекту). Іншими словами, ви можете використовувати композитор так:

composer update

Оскільки ви виконуєте php composer.phar updateта отримуєте помилку Could not open input file: composer.phar, ви, мабуть, не маєтеcomposer.phar у вашому поточному каталозі немає.

Рішення

Якщо у вас Composer встановлений у всьому світі, просто запустіть composer updateйого php composer.phar update.

Якщо у вас ще не встановлений композитор, завантажте 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

et voila! Працюючий композитор :-)


Дякую, агент Смулдерс. ;)
Стівен Вентімілья

Працював для мене, але мені довелося змінити один рядок, щоб він працював належним чином $ alias composer = '/ usr / local / bin / composer'
Стеф Моро

У моєму Mac OS XI додала команду псевдонім до мого .bash_profile. Це зробить псевдонім стійким для нових термінальних сесій.
noctufaber

1
Другий рядок не працює mv composer.phar /usr/local/bin/composer.phar. Я отримую помилку: mv: regular File '/usr/local/bin/composer.phar'не вдалося встановити: відсутні права.
Пітер

12

Я виявив, що це спрацювало, оскільки у мене не було встановлених завитків. У Windows 8 із встановленим XAMPP. Це додасть його до вашої локальної збірки, яку я використовую .gitignore, щоб уникнути репо

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

Я отримав це звідси: https://getcomposer.org/download/


12

Щоб вирішити цю проблему, перше, що вам потрібно зробити, це отримати останню версію композитора:

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

Я рекомендую вам перемістити файл composer.phar у глобальну дирекцію "бін", у моєму випадку (OS X) шлях:

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

ніж вам потрібно створити файл псевдоніма для легкого доступу

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

Якщо все нормально, зараз прийшов час перевірити нашу композиторську версію:

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 Це здається спробою відповісти. Якщо ви вважаєте, що ця відповідь неправильна, тоді ви можете її спростувати.
Artjom B.

2

Легка відповідь, перейдіть до каталогу, де у вас вже є файл composer.json, який ви хочете запустити (в ідеалі ваша папка проекту), потім завантажте композитор у ту саму папку, а потім миттєво запустіть команду встановлення так:

 php composer.phar install

Це автоматично знайде composer.json і запустить необхідні сценарії. Удачі. Цей матеріал - вітер для майстрів терміналів і абсолютно дивний для решти нас


2

Я використовую Windows 8.0. У моєму випадку для встановлення чи оновлення я просто використовую встановлення композитора або щось інше замість php composer.phar. Це працювало для мене так, як

composer require google/apiclient:1.*

2

Привіт, друзі, виконайте кроки, щоб вирішити цю проблему в ОС MAC

  • Крок 1: спочатку запустіть команду в Terminal зі своїм каталогом проектів

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

  • Крок 2: Перемістіть composer.phar у своєму каталозі проектів

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

  • Крок 3: Налаштування псевдоніму композитора

    $ alias composer = '/ Програми / MAMP / htdocs / bashrushAPI / composer.phar'

  • Крок 4: Перевірте композиторську версію зараз

    $ композитор --версія

    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

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

ваш композитор.фар повинен бути розміщений вище.


Я використовую Windows8 і встановив exe композитора, як на getcomposer.org/download . Потім я скопіював файл composer.phar у мій проект відповідно до структури, показаної вами. Файли composer.json і composer.lock вже були там, оскільки це було завантаження пакету symfony за замовчуванням. Після цього, коли я виконував команду udpate композитора, пройшло близько півгодини, але ще не завершено. Що не так? Будь ласка, підкажіть. Спасибі заздалегідь!
користувач3291745

добре, ви використовуєте cmd для команди? тому вам слід змінити правильний каталог. Краще забезпечте структуру свого каталогу знімком екрана.
hizbul25

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

C: cd wamp \ www \ Symfony
hizbul25

в цьому плані розробники завжди пропонують linux для php / python / ruby. :)
hizbul25

1

Для Windows я створив composer.cmd і використав текст нижче:

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

де встановлено composer.phar і до мого шляху додано c: \ program \ php \.

Не впевнений, чому це не робиться автоматично.


1

Для Windows10 Pro виконайте вказані нижче дії. виберіть властивості, перевірте опцію програми Розблокувати. запустіть інсталятор, запустіть команду CMD з правами адміністратора. У командному рядку запустіть, composer --versionщоб переконатися, що він встановлений у всьому світі. Ви можете мати змогу зараз запустити composer require drush/drushЦе для залежності від ударної роботи за допомогою композитора.


1

Просто відкрийте cmd як адміністратор і перейдіть у папку свого проекту і перевірте, чи працює він чи не використовується команда композитора.

Вищенаведена помилка через те, що композитор не доступний у всьому світі. Тому вам потрібно запустити "cmd" як адміністратор.

Це добре працює для мене.


1

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


0

Ваш composer.phar повинен бути у вихідних файлах. У мене була така ж проблема, і я просто вирізав свій composer.phar у папку моєї рамки стандартного видання , де є весь мій сильний текстовий проект.


0

якщо композитор вже встановлений, все, що вам потрібно, - це знати, де знаходиться файл composer.phar (його каталог), після чого ви переходите до свого проекту Symfony, де у вас є composer.json, і з цього каталогу ви виконуєте файл composer.phar. У вікнах ось що потрібно зробити.

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

Це все




0

До цієї проблеми я дістався, намагаючись встановити композитор на машину Window 7 з http://getcomposer.org/download сторінки . Оскільки існувала вже складена версія (надана інструментом набуття Device Desktop), установка не вдається, і єдиним шансом було виправити цю проблему вручну. (або видалити композитор інструмента 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%" %*

Відкрийте знову свою консоль вікна, і це повинно зробити трюк.

EDIT: ця проблема виникає, оскільки вона завжди використовує папку% ~ dp0% composerScript% як виконання композитора. Тоді всі конфігурації робляться в тій папці (крім того, що стоїть у поточній папці проекту), а не у папці проекту.

Поки що я не знайшов, щоб зробити ручну композиційну інсталяцію для глобальної роботи в Windows. Можливо, вам слід продовжити композитор для встановлення Windows, згаданий вище.


0

Не отримуйте доступ до композитора, встановивши композитор composer.pher

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


0

Ви можете просто спробувати цю команду, якщо ви вже встановили композитор:

composer update 

або якщо ви хочете додати трохи композиції до свого композитора, спробуйте це:

composer require "/../"

0

використовуйте композитор самостійно без php

подібно до :

composer create-project --prefer-dist --stability=dev developeruz/yii-vue-app basic

0

Я виправив ту саму проблему, виконавши нижче кроки

  1. Відкрити каталог проектів за допомогою терміналу ( який ви використовуєте, тобто м'яти )
  2. Тепер встановіть композитор у цьому каталозі відповідно до заданих вказівок на https://getcomposer.org/download/

php -r "копія (" https://getcomposer.org/installer ', 'composer-setup.php');"

php -r "if (hash_file ('SHA384', 'composer-setup.php') === 'наданий-хеш-код') {echo 'Installer verified';} else {echo 'Установник пошкоджений'; відключити посилання ('composer-setup.php');} відлуння PHP_EOL; "

php composer-setup.php php -r "відключення ('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.