Menjalankan pengembalian Komposer: “Tidak dapat membuka file input: composer.phar”

214

Saya baru mengenal symfony2 dan membaca symblog . Pada bab ketiga saat mencoba dengan data-fix, saya mencoba perintah:

php composer.phar update

tapi saya mendapat kesalahan:

Could not open input file: composer.phar

Jadi saya googled sedikit dan mencoba

php composer.phar install

tetapi masih mendapatkan kesalahan yang sama. Jadi tolong panduan bagaimana berurusan dengan komposer ini untuk menginstal ekstensi baru atau bundel seperti data-fix di symfony2 menggunakan wamp.

pengguna3291745
sumber
apakah Anda menginstal composer.phar di tempat yang tepat ??
hizbul25
Saya mengalami masalah ini ketika mencoba mengatur komposer secara global. Saya akhirnya menambahkan alias composer="php C:\\\\Users\\\\MyUsername\\\\bin\\\\composer.phar"ke file .bashrc saya . Jelek, tapi berhasil.
Batandwa
15
Solusi untuk pengguna windows ada di bawah ini oleh @Jamil, Anda harus menggunakan komposer alih-alih menggunakan php composer.phar
Carlos487
Anda tidak perlu .phar jika Anda telah menginstal komposer, jalankan pembaruan komposer
meddy

Jawaban:

280

Jika Anda mengikuti instruksi seperti ini:

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

Yang memberitahu Anda untuk melakukan hal berikut:

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

Maka kemungkinan Anda, seperti saya, menjalankan perintah-perintah itu dan tidak membaca bagian selanjutnya dari halaman yang memberitahu Anda untuk berhenti merujuk pada composer.phar dengan nama lengkapnya dan menyingkatnya sebagai executable (yang baru saja Anda ganti namanya dengan mv perintah). Jadi ini:

$ php composer.phar update friendsofsymfony/elastica-bundle

Menjadi ini:

$ composer update friendsofsymfony/elastica-bundle
Chris Moschini
sumber
37
Yang perlu diingat adalah bahwa jika Anda menginstalnya dengan benar (pada Windows) dan menambahkannya ke variabel PATH lingkungan Anda, maka Anda tidak perlu mengetikkan php composer.phar dan menggunakan komposer sebagai gantinya.
AturSams
@ Chris Moschini Sepertinya Anda dapat membantu saya. Lihat ini: stackoverflow.com/questions/52091827/…
Success Man
apakah kita harus menginstal komposer di setiap proyek, saya menginstal komposer menggunakan installer mereka
Sushant Bhargav
151

Saya memiliki masalah yang sama pada Windows dan menggunakan solusi yang berbeda. Saya menggunakan file instalasi Composer_Setup.exe yang disediakan oleh situs web komposer dan itu menginstal global .

Setelah menginstal, pastikan variabel PATH Anda menunjuk ke direktori tempat composer.phar disimpan. Ini biasanya C:\ProgramData\ComposerSetup\bin( ProgramData mungkin direktori tersembunyi ). Tak perlu dikatakan lagi, tetapi juga pastikan bahwa executable PHP juga ada dalam variabel PATH Anda.

Anda kemudian dapat menelepon

composer install

dari pada

php composer.phar install
Dev Tidak Dikenal
sumber
6
Ini akhirnya berhasil, saya tidak mengerti mengapa saya tidak dapat menemukan info ini di situs web komposer ....
Henning Fischer
4
Terima kasih! Itu tidak disebutkan di bagian "penggunaan dasar" di dokumen Komposer .. getcomposer.org/doc/01-basic-usage.md#installing-dependencies
Nick Rolando
Sudah lebih dari dua tahun sejak jawaban ini, dan dokumen masih belum diperbarui, jadi saya punya masalah yang sama. Terima kasih!
Andy Mercer
105

Latar Belakang

Sangat membantu untuk mengetahui bahwa ada dua cara untuk menginstal (dan menggunakan) Komposer: secara lokal sebagai file dalam direktori proyek Anda, atau secara global sebagai executable di seluruh sistem.

Menginstal Komposer secara lokal berarti Anda mengunduh file ( composer.phar- yang merupakan Arsip PHP ) ke direktori proyek Anda. Anda harus mengunduhnya untuk setiap proyek yang membutuhkan Penggubah.

Seperti file PHP biasa yang ingin Anda jalankan di baris perintah, Anda harus menjalankannya dengan PHP:

php composer.phar update

Yang pada dasarnya memberitahu phpexecutable untuk menjalankan file composer.phardengan updateargumen.

Namun, jika Anda menginstalnya secara global , Anda dapat membuat komposer itu sendiri dapat dieksekusi, sehingga Anda dapat memanggilnya tanpa php (dan tidak harus mengunduhnya untuk setiap proyek). Dengan kata lain, Anda dapat menggunakan komposer seperti ini:

composer update

Karena Anda mengeksekusi php composer.phar update, dan Anda mendapatkan kesalahan Could not open input file: composer.phar, Anda mungkin tidak punyacomposer.phar dalam direktori Anda saat ini.

Larutan

Jika Anda memiliki Composer yang terinstal secara global, jalankan saja composer updatealih-alih php composer.phar update.

Jika Anda belum menginstal Composer, unduh PHAR menggunakan perintah berikut:

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

Ini akan mengunduh installer dan menjalankannya menggunakan php. Pemasang akan mengunduh PHAR Komposer aktual ke direktori kerja Anda saat ini, dan membuatnya dapat dieksekusi.

Untuk menginstal Komposer secara global (saya sarankan ini), salin file ke lokasi di Anda PATH. Lokasi yang tepat berbeda untuk setiap sistem operasi dan pengaturan, lihat https://getcomposer.org/doc/00-intro.md#globally untuk informasi lebih lanjut.

Secara pribadi, saya lebih suka menginstal Komposer di direktori home saya jadi saya tidak perlu sudomenginstal atau memperbarui yang composerdapat dieksekusi (yang bisa menjadi risiko keamanan). Karena saya menggunakan Linux, saya menggunakan perintah berikut:

mv composer.phar ~/.local/bin/composer
Nic Wortel
sumber
1
Saya berharap dapat memperbarui jawaban ini lebih dari sekali. Selain menjawab pertanyaan, itu menjelaskan pertanyaan tentang perbedaan antara pemasangan Komposer lokal dan global. Terima kasih untuk ini.
NaijaProgrammer
49

Jika ada orang lain yang datang serendah ini di halaman dan masih tidak menemukan jawaban yang berfungsi (seperti yang saya lakukan), gunakan ini:

$ 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! Komposer yang bekerja :-)

Stan Smulders
sumber
Terima kasih, Agen Smulders. ;)
Steven Ventimiglia
Bekerja untuk saya, tetapi saya harus mengubah satu baris sehingga akan berfungsi dengan baik $ alias composer = '/ usr / local / bin / composer'
Steph Moreau
Di Mac OS XI saya menambahkan perintah alias ke .bash_profile saya. Ini akan membuat alias persisten untuk sesi terminal baru.
noctufaber
1
Baris kedua tidak berfungsi mv composer.phar /usr/local/bin/composer.phar. Saya mendapatkan kesalahan: mv: regular File '/usr/local/bin/composer.phar'tidak dapat diinstal: hak yang hilang.
Peter
12

Saya menemukan ini berfungsi karena saya tidak memiliki curl diinstal. Di Windows 8 dengan XAMPP diinstal. Ini akan menambahkannya ke build lokal Anda, saya menggunakan .gitignore untuk menghindari repo

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

Saya mendapatkannya dari sini: https://getcomposer.org/download/

purencool
sumber
12

Untuk mengatasi masalah ini, hal pertama yang perlu Anda lakukan adalah mendapatkan versi komposer terakhir:

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

Saya sarankan Anda untuk memindahkan file composer.phar ke directoy global "bin", dalam kasus saya (OS X) jalannya adalah:

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

daripada Anda perlu membuat file alias untuk akses mudah

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

Jika semuanya baik-baik saja, sekarang saatnya untuk memverifikasi versi Komposer kami:

composer --version

Mari kita buat komposer hebat lagi.

Achref Gassoumi
sumber
10

Ini bekerja untuk saya:

composer install

Tanpa

php composer install
Mohamed Fanane
sumber
bahkan tanpa ekstensi? Juga, tolong tambahkan 4 spasi indetation ke baris kode Anda sehingga mereka diformat sebagai kode
YakovL
4

Kemarin saya mencoba menginstal kerangka Yii2 di Windows 10 dan saya memiliki masalah yang sama (Tidak dapat membuka file input: composer.phar) menjalankan perintah ini:

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

Masalahnya adalah file composer.phr tidak ada dalam direktori saat ini, Anda harus memberikan path path lengkap seperti composer.phr

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

Atau Anda dapat membuat proyek yii2 menggunakan perintah ini:

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

Atau

composer.phar create-project yiisoft/yii2-app-advanced advanced 2.0.9
Muhammad Shahzad
sumber
4

Gunakan ini :

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

Saya memiliki masalah yang sama. Itu diselesaikan ketika saya membuat komposer tersedia secara global. Sekarang saya dapat mengatur perintah dari mana saja di folder.

composer update

composer require "samplelibraryyouwant"

Kiren Siva
sumber
3
Ini tidak memberikan jawaban untuk pertanyaan itu. Untuk mengkritik atau meminta klarifikasi dari penulis, tinggalkan komentar di bawah posting mereka.
Bas van Stein
@BasvanStein Sepertinya ini merupakan upaya untuk menjawab. Jika menurut Anda jawaban ini salah, maka Anda dapat membatalkannya.
Artjom B.
2

Jawabannya mudah, arahkan ke direktori di mana Anda sudah memiliki file composer.json yang ingin Anda jalankan (idealnya folder proyek Anda) kemudian unduh komposer ke dalam folder yang sama, kemudian langsung jalankan perintah instal seperti:

 php composer.phar install

Ini akan secara otomatis menemukan composer.json dan menjalankan skrip yang diperlukan Anda. Semoga berhasil. Barang-barang ini mudah bagi penyihir terminal dan benar-benar aneh bagi kita semua

ColossalChris
sumber
2

Saya menggunakan windows 8.0. Dalam kasus saya untuk menginstal atau memperbarui saya hanya menggunakan menginstal komposer atau sesuatu yang lain, bukan php composer.phar. Ini bekerja untuk saya

composer require google/apiclient:1.*
bicky
sumber
2

Hai teman-teman, ikuti langkah-langkah untuk memperbaiki masalah ini di MAC OS

  • Langkah 1: pertama jalankan perintah di Terminal dengan direktori proyek Anda

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

  • Langkah 2: Pindahkan composer.phar di direktori proyek Anda

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

  • Langkah 3: Setup alias komposer

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

  • Langkah 4: Periksa versi komposer sekarang

    $ komposer --version

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

  • Langkah 5: Konfirmasikan folder proyek dan file yang ditempatkan di bawah

    $ ls

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

  • Langkah 6: Sekarang perbarui komposer

    Pembaruan $ composer.phar

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

  • Langkah 7: Jalankan proyek sampel Anda

    $ 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

Murugan Vadivel
sumber
1

masukkan deskripsi gambar di sini

komposer Anda. phar harus ditempatkan di atas cara.

hizbul25
sumber
Saya menggunakan windows8 dan menginstal exe of composer seperti di getcomposer.org/download . Kemudian saya menyalin file composer.phar ke proyek saya sesuai dengan struktur yang ditunjukkan oleh Anda. file composer.json dan composer.lock sudah ada di sana seperti unduhan paket symfony default. Setelah melakukan ini ketika saya menjalankan perintah komposer udpate, butuh sekitar setengah jam tetapi belum selesai. Apa yang salah? Tolong sarankan. Terima kasih sebelumnya!
user3291745
ok, apakah Anda menggunakan cmd untuk perintah? jadi Anda harus mengubah direktori dengan benar. Lebih baik berikan struktur direktori Anda dengan screenshot.
hizbul25
Stackoverflow tidak memungkinkan saya untuk mengunggah gambar karena saya hanyalah pengguna baru dengan sedikit poin atau reputasi. Saya menjalankan perintah pembaruan komposer di direktori C: \ wamp \ www \ Symfony \ dan dalam direktori tersebut saya dapat melihat aplikasi composer.phar, composer.json, folder composer.lock, bin, vendor, src dan web.
user3291745
C: cd wamp \ www \ Symfony
hizbul25
dalam hal ini pengembang selalu menyarankan linux untuk php / python / ruby. :)
hizbul25
1

Untuk windows, saya membuat composer.cmd dan menggunakan teks di bawah ini:

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

di mana composer.phar diinstal dan c: \ programs \ php \ ditambahkan ke jalur saya.

Tidak yakin mengapa ini tidak dilakukan secara otomatis.

TamusJRoyce
sumber
1

Untuk Windows10 Pro, Ikuti langkah-langkah memperbaiki masalah ini. pilih properties, centang opsi Unblock program. jalankan pemasang, jalankan perintah CMD dengan hak Admin. Pada command prompt jalankan composer --versionuntuk memastikan itu terinstal secara global. Anda harus dapat sekarang menjalankan composer require drush/drushIni untuk ketergantungan drush menggunakan komposer.

Narayan P
sumber
1

Cukup buka cmd sebagai Administrator dan buka folder proyek Anda dan periksa apakah berfungsi atau tidak menggunakan perintah komposer.

Kesalahan di atas adalah karena komposer tidak dapat diakses secara global. Jadi, Anda perlu menjalankan "cmd" sebagai Administrator.

Ini bekerja dengan baik untuk saya.

Shukla Saurabh
sumber
1

Jalankan berikut ini di baris perintah:
curl -sS https://getcomposer.org/installer | php

Serigala
sumber
0

Comperer.phar Anda harus dalam file Sumber. Saya memiliki masalah yang sama dan saya baru saja memotong komposer saya .phar ke folder mine -standard-edition , di mana seluruh proyek teks saya yang kuat .

Lackeeee
sumber
0

jika komposer sudah menginstal semua yang Anda butuhkan adalah untuk mengetahui di mana file composer.phar berada (direktori) setelah itu Anda pindah ke proyek symfony Anda di mana Anda memiliki composer.json dan dari direktori itu Anda menjalankan file composer.phar Anda. Di windows inilah yang harus Anda lakukan.

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

Itu saja

sangat membantu
sumber
0

Saya telah mencapai masalah ini ketika mencoba menginstal komposer pada mesin Window 7 dari http://getcomposer.org/download halaman . Karena ada versi penulisan yang ada (disediakan oleh alat Desktop Acquia Dev) instalasi gagal dan satu-satunya kesempatan adalah untuk memperbaiki masalah ini secara manual. (atau untuk menghapus komposer alat Dev Desktop).

Pokoknya pesan kesalahannya cukup mudah (Tidak bisa membuka file input: composer.phar), kita harus memberi tahu sistem di mana file itu berada.

Edit file composer.bat dan akan terlihat seperti:

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

Lihat bahwa composer.phar tidak memiliki jalur file. Ketika berdiri di folder yang berbeda dari yang di mana composer.phar berada, sistem tidak akan dapat menemukannya. Jadi, cukup isi jalur file composer.phar:

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

Buka kembali konsol jendela Anda dan itu harus melakukan trik.

EDIT: ini memiliki masalah karena selalu menggunakan folder% ~ dp0% composerScript% sebagai eksekusi komposer. Kemudian semua konfigurasi dilakukan di folder itu (selain berdiri di folder proyek Anda saat ini) dan tidak di folder proyek Anda.

Sejauh ini saya belum menemukan itu untuk membuat instalasi komposer manual untuk bekerja secara global pada Windows. Mungkin Anda harus melanjutkan dengan komposer untuk instalasi windows yang disebutkan di atas.

mariano_c
sumber
0

Jangan mengakses komposer dengan memasang komposer

gunakan komposer instal

abey
sumber
0

Anda bisa mencoba perintah ini jika Anda sudah menginstal Komposer:

composer update 

atau jika Anda ingin menambahkan bundel ke komposer Anda coba ini:

composer require "/../"
Jabir
sumber
0

gunakan komposer sendiri tanpa php

Suka :

composer create-project --prefer-dist --stability=dev developeruz/yii-vue-app basic
mohammad nazari
sumber
0

Saya telah memperbaiki masalah yang sama dengan langkah-langkah di bawah ini

  1. Buka direktori proyek Menggunakan Terminal ( yang Anda gunakan yaitu mintty )
  2. Sekarang instal komposer dalam direktori ini sesuai petunjuk yang diberikan di https://getcomposer.org/download/

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

php -r "if (hash_file ('SHA384', 'composer-setup.php') === 'kode-hash yang disediakan') {echo 'Pemasang diverifikasi';} else {echo 'Pemasang korup'; batalkan tautan ('composer-setup.php');} echo PHP_EOL; "

php composer-setup.php php -r "batalkan tautan ('composer-setup.php');"

  1. Sekarang jalankan perintah Anda.

Semuanya berfungsi dengan baik sekarang karena composer.pharfile tersebut tersedia dalam direktori proyek saat ini.

Terima kasih

Anoop Saini
sumber
0

Dengan saya ini berfungsi, Anda hanya perlu file composer.phardan composer.jsondalam proyek saat ini. Perintahnya adalah

php composer.phar update 
isiariana
sumber
0

Perintah seperti ini:

composer.phar require intervention/image

error: composer.phar: perintah tidak ditemukan

Saya memecahkan masalah dengan mengikuti proses ini

saya mengatur komposer secara global dan berganti nama composer.pharuntuk composerkemudian menjalankan perintah ini composer require intervention/image. dan sekarang berfungsi dengan baik

Mamunur Rashid
sumber
0

Saya tahu bahwa mungkin jawaban saya terlalu spesifik untuk server QNAP tertanam, tetapi saya berakhir di sini mencoba menginstal Yii:

Bagi saya, di dalam NAS QNAP melalui Putty, setelah mencoba semua trik di atas, dan memperbarui PATH tidak berhasil, satu-satunya baris cmd yang berfungsi adalah:

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

Tentu saja, sesuaikan jalur Anda sesuai ...

Jika saya melakukan which composer, saya punya jawaban yang benar, tetapi jika saya tidak melakukan which phpapa - apa kembali.

Selain itu, berusaha lari

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

atau mengacu pada

composer.phar

tidak bekerja juga ...

Marcelo Scofano
sumber