Запуск композитора повертає: "Не вдалося відкрити вхідний файл: 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.