Как запустить composer из любого места?
Я только что установил composer в свою папку /usr/bin
, поэтому, когда я запускаю из этой папки php composer.phar
, я получаю справочную информацию о composer. Но, когда я пытаюсь запустить то же самое из другой папки, я получаю Could not open input file: composer.phar
.
Как позвонить php composer.phar
отовсюду без проблем?
10 answers
Composer.phar можно запускать самостоятельно, не нужно добавлять к нему префикс php
. Это должно решить вашу проблему (находясь в разнице между $PATH bash и include_path php).
Вы можете выполнить глобальную установку :
Поскольку Composer работает с текущим рабочим каталогом, его можно установить в масштабах всей системы.
- Перейдите в каталог на вашем пути, например
cd /usr/local/bin
- Получить композитора
curl -sS https://getcomposer.org/installer | php
- Сделайте phar исполняемым
chmod a+x composer.phar
- Перейдите в каталог проекта
cd /path/to/my/project
- Используйте Composer, как обычно
composer.phar install
- При желании вы можете переименовать
composer.phar
чтобыcomposer
чтобы сделать это проще
Обновление: Иногда вы не можете или не хотите загружать по адресу /usr/local/bin
(у некоторых возникли проблемы с разрешениями пользователей или ограниченный доступ), в этом случае вы можете попробовать это
- Открыть терминал
curl -sS http://getcomposer.org/installer | php -- --filename=composer
chmod a+x composer
sudo mv composer /usr/local/bin/composer
Как запустить Composer Из Любого места (на macOS X) через терминал
Предыстория:
На самом деле на веб-сайте getComposer четко указано, что установите композитора с помощью следующей команды curl,
curl -sS https://getcomposer.org/installer |php
И он, безусловно, делает то, для чего предназначен. И затем он говорит переместить composer.phar в каталог /usr/local/bin/composer, а затем composer будет доступен глобально, используя следующую командную строку в терминал!
mv composer.phar /usr/local/bin/composer
Вопрос:
Итак, проблема, которая приводит меня к Google, заключается в том, что, когда я выполнил приведенную выше строку в терминале Mac OS X, в ней говорилось, что в разрешении отказано. Например, следующим образом:
mv: rename composer.phar to /usr/local/bin/composer: Permission denied
Ответ:
Следуя ссылке , я как по волшебству нашел решение, и я благодарен за это. То, что я только что пропустил, было командой sudo перед указанной выше командной строкой "Переместить". Теперь моя команда перемещения выглядит так следует:
sudo mv composer.phar /usr/local/bin/composer
Password:
Он напрямую предлагает вам пройти аутентификацию и проверить, авторизованы ли вы. Поэтому, если вы введете действительный пароль, перемещение будет выполнено, и вы можете просто проверить, установлен ли composer глобально, используя следующую строку.
composer about
Я надеюсь, что этот ответ помог вам расширить свой кругозор и, наконец, решить вашу проблему.
Ура!
Сначала установите composer, как указано в документации по установке composer . Я просто добавил сюда для справки.
curl -sS https://getcomposer.org/installer | php
, а затем переместите файл в папку "/usr/local/bin".
sudo mv composer.phar /usr/local/bin/composer
Попробуйте запустить composer -V
. Если вы получаете вывод, подобный Composer version
, за которым следует номер версии, то композитор успешно установлен.
Если вы получаете какие-либо выходные данные, такие как composer: command not found
, используйте следующую команду, чтобы создать псевдоним для композитора. Так оно и будет выполняется глобально.
alias composer='/usr/local/bin/composer'
Теперь, если вы запустите composer -V
, это означает, что вы получите вывод в виде Composer Version
, за которым следует номер версии.
Надеюсь, это кому-нибудь поможет.
Просто запустите эту команду для глобальной установки composer
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
Просто переместите его в папку /usr/local/bin
и удалите расширение
sudo mv composer.phar /usr/local/bin/composer
Для запуска из другого места вы можете использовать программу composer, которая поставляется вместе с программой. Это в основном сценарий bash. Если у вас его нет, вы можете создать его, просто скопировав следующий код в текстовый файл
#!/bin/sh
dir=$(d=$(dirname "$0"); cd "$d" && pwd)
if command -v 'cygpath' >/dev/null 2>&1; then
dir=$(cygpath -m $dir);
fi
dir=$(echo $dir | sed 's/ /\ /g')
php "${dir}/composer.phar" $*
Затем сохраните файл в папке bin и назовите его composer без расширения файла. Затем добавьте папку bin в переменную среды f
Для MAC и LINUX используйте следующую процедуру:
Добавьте каталог, в котором находится composer.phar, к вашему ПУТИ:
export PATH=$PATH:/yourdirectory
А затем переименуйте composer.phar в composer:
mv composer.phar composer
Вы можете выполнить простую глобальную установку, чтобы запустить ее из любого места
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
Https://getcomposer.org/doc/00-intro.md#globally веб-сайт рекомендует этот способ. Хорошо работал на Ubuntu 14.04 без проблем.
Таким образом, вам не нужно делать в качестве примера php compomser.phar show
, вы просто делаете composer show
в любом каталоге, с которым вы работаете.
Отчасти это может быть связано с операционной системой, на которой работает ваш сервер. Недавно я выполнил миграцию в новую среду хостинга под управлением Ubuntu. Добавление этого псевдонима alias composer="/path/to/your/composer"
в .bashrc или .bash_aliases сначала не работало по двум причинам:
По умолчанию на сервере был запущен csh, а не bash. Чтобы проверить, является ли это проблемой в вашем случае, запустите echo $0
. Если возвращаемое значение равно -csh
, вы захотите изменить его на bash, , так как некоторые процессы, выполняемые Composer, завершатся неудачно с использованием для csh/tcsh в.
Чтобы изменить его, сначала проверьте, доступен ли bash на вашем сервере, запустив cat /etc/shells
. Если в возвращенном списке вы видите bin/bash
, вы можете изменить значение по умолчанию на bash, выполнив chsh -s /bin/csh
.
Теперь, на этом этапе, вы должны иметь возможность запускать Composer, но обычно в Ubuntu вам придется загружать скрипт на каждом сеансе, используя свои сценарии Bash, запустив source ~/.bashrc
или source ~/.bash_profile
. Это связано с тем, что в большинстве случаев Ubuntu не будет загружать ваш скрипт Bash, так как он загружает .profile
как сценарий по умолчанию.
Чтобы загрузить свои сценарии Bash при открытии сеанса, попробуйте добавить это в свой .профиль (это если ваш сценарий Bash .bashrc - измените соответственно, если .bash_profile или другой):
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
Для тестирования закройте сеанс и перезагрузите его. Если он работает правильно, запуск composer -v
или which composer
должен вести себя так, как ожидалось.