ChatGPT解决这个技术问题 Extra ChatGPT

Is there any way to install Composer globally on Windows?

I've read the global installation documentation for Composer, but it's for *nix systems only:

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

I would be such happy doing the same on Windows, that's the OS of my development machine. I would be able to run

composer update

From an arbitrary folder where composer.json exists. Interpreter php.exe is already in PATH variable.

Any clue?


h
hakre

Sure. Just put composer.phar somewhere like C:\php\composer.phar, then make a batch file somewhere within the PATH called composer.bat which does the following:

@ECHO OFF
php "%~dp0composer.phar" %*

The "%*" repeats all of the arguments passed to the shell script.

Then you can run around doing composer update all ya want!


"Could not open input file: composer.phar" and PATH is correct. Help!
Try coding an absolute path in your batch file, then.
Ok, works with absolute, thank you. Even if i prefer relative paths :)
A bit more generic: SET SUBDIR=%~dp0 php %SUBDIR%/composer.phar %*
not really in the scope of the question, but you could use something like console2
g
giannis christofakis

Install Composer On Windows, you can use the Composer Windows Installer.


I use this installer but some how there is no composer in PATH
@Milad, I also experienced the same. What windows version were you using? Mine was windows 8. I had to add the path to composer manually too.
@OshMansor, I used windows 8.1 back then but i switch to windows 7 everything goes well i have lot of problem with windows8, Android studio, some of vs 2013.... i use Lusitanian answer and it work for me.
Any idea where the default composer.json is created?
M
Muhammed Aslam C

Go to php.exe located folder.

C:\wamp\bin\php\php5.5.12\

open cmd there, and execute below command.

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

composer.phar will be downloaded in same folder.

Create folder named composer in C:// drive (or anywhere you wish, for upcoming steps, remember the path).

move composer.phar file to C://composer folder.

Create composer.bat file in same folder with contents below

@ECHO OFF
php "%~dp0composer.phar" %*

create file named composer without any extensions.

running command type NUL > composer in CMD will help to get it done quickly,

Open that file and place below contents inside it.

#!/bin/sh
dir=$(d=$(dirname "$0"); cd "$d" && pwd)
# see if we are running in cygwin by checking for cygpath program
if command -v 'cygpath' >/dev/null 2>&1; then
    # cygwin paths start with /cygdrive/ which will break windows PHP,
    # so we need to translate the dir path to windows format. However
    # we could be using cygwin PHP which does not require this, so we
    # test if the path to PHP starts with /cygdrive/ rather than /usr/bin.
    if [[ $(which php) == /cygdrive/* ]]; then
        dir=$(cygpath -m $dir);
    fi
fi
dir=$(echo $dir | sed 's/ /\ /g')
php "${dir}/composer.phar" $*

Save.

Now set path, So we can access composer from cmd.

Show Desktop.

Right Click My Computer shortcut in the desktop.

Click Properties.

You should see a section of control Panel - Control Panel\System and Security\System.

Click Advanced System Settings on the Left menu.

Click Environment Variables towards the bottom of the window.

Select PATH in the user variables list.

Append your PHP Path (C:\composer) to your PATH variable, separated from the already existing string by a semi colon.

Click OK

Restart your machine.

Or, restart explorer only using below command in CMD.

taskkill /f /IM explorer.exe
start explorer.exe
exit

Original Article with screenshots here : http://aslamise.blogspot.com/2015/07/installing-composer-manually-in-windows-7-using-cmd.html


Thanks for solving both Windows Command Prompt and Cygwin. I took your scripts (composer.bat, composer) and made them more generic to work with any phar, such as phpunit, phpcs, phpmd and so on. One script to rule them all, so to speak.
This is 2017, two years after. And this just saved me hours of searching online. Thank you.
A
Anibe Agamah

This may be useful to someone:

On Windows 7, if you've installed Composer using curl, it can be found in similar path:

C:\Users\<username>\AppData\Roaming\Composer


L
LucasBeef

Well, now this question is a bit obsolete as there is now an official installer which "will install the latest Composer version and set up your PATH so that you can just call composer from any directory in your command line."

You can get it at : http://getcomposer.org/doc/00-intro.md#installation-windows


it ask for php.exe but i can't find any
@atjoshi: you need to install php on windows. Xampp is pretty good and relatively easy to setup.
J
Johannes Reiners

A bit more generic if you put the batch in the same folder as composer.phar:

@ECHO OFF
SET SUBDIR=%~dp0
php %SUBDIR%/composer.phar %*

I'd write it as a comment, but code isn't avail there


I merged your code in the answer above to give it more visibility.
M
Muflix

Start > Computer : Properties > Change Settings > Advanced > Environment Variables > PATH : Edit [add this string (without "") at the end of line ";C:\<path to php folder>\php5.5.3"].. open cmd and type composer thats it :-)


C
Climberdav

I use Composer-Setup.exe and it works fine. Just in case you need to know where is the composer.phar (to use with PhpStorm) :

C:\ProgramData\ComposerSetup\bin\composer.phar

O
Overcomer

Unfortunately, all the good answers here didn't work for me. So after installing composer on windows 10, I just had to set system variable in environment variables and it worked.

https://i.stack.imgur.com/Nj8eR.jpg


This did'nt quite do it. Instead, I added C:\ProgramData\ComposerSetup\bin'\composer to my PATH variable and that worked for me.
x
xgenvn

sorry to dig this up, I just want to share my idea, the easy way for me is to rename composer.phar to composer.bat and put it into my PATH.


C
Community

An alternative variant (see Lusitanian answer) is to register .phar files as executable on your system, exemplary phar.reg file:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.phar]
@="phar_auto_file"

[HKEY_CLASSES_ROOT\phar_auto_file\shell\open\command]
@="\"c:\\PROGRA~1\\php\\php.exe\" \"%1\" %*"

Just replace the path to php.exe to your PHP executable. You can then also extend the %PATHEXT% commandline variable with .PHAR which will allow you to type composer instead of composer.phar as long as composer.phar is inside the %Path%.


J
Jose Ortiz

I was having the same issue and when I checked the environment in Windows 7 it was pointing to c:\users\myname\appdata\composer\version\bin which didn't exists. the file was actually located in C:\ProgramData\ComposerSetup\bin Fixed the location in environment setting and it worked


S
Sakhri Houssem

you can install it using this command line

 echo @php "%~dp0composer.phar" %* > composer.bat