Установка composer на виртуальном хостинге

Главные вкладки

VVS 14 февраля 2022 в 12:47
4

1. Для установки composer необходимо подключиться к хостингу по ssh-протоколу. Сделать в windows это можно, например, через наиболее популярный ssh-клиент putty, в linux можно сразу в терминале:
ssh user@hostname.tld.

2. После успешного подключения к хостингу по ssh, необходимо убедиться, что composer не установлен, запустив команду:
composer или composer.phar
и получив ответ:
-bash: composer: command not found
установить composer в свой домашний каталог и сделать файл composer.phar исполняемым. Для этого создаём каталог bin, скачиваем сам composer и перемещаем его в созданный нами каталог bin, выполнив команды поочерёдно:

cd ~
mkdir local/bin
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php --install-dir=local/bin --filename=composer
chmod +x local/bin/composer
php -r "unlink('composer-setup.php');"

Проверить корректность установки composer можно запуском команды, но сначала узнаем путь установки php:
which php
Получим ответ, например /usr/local/bin/php

И затем выполняем:
/usr/local/bin/php ~/local/bin/composer

3. Для удобного использования команды composer необходимо добавить её alias в файл .bashrc, или .zshrc находящийся в домашнем каталоге:
nano ~/.bashrc
И добавить строку, заменив путь установки php на необходимый:
alias composer='/usr/local/bin/php ~/local/bin/composer'

Чтобы alias можно было использовать сразу, выполните команду:
source ~/.bashrc
Для проверки работы alias выполните команду composer -V

На этом composer установлен и настроен для удобного использования.

Автор

VVS Full stack Drupal developer

Комментарии

Аватар пользователя VasyOK VasyOK 14 февраля 2022 в 13:10

Мне почему-то кажется, есть ненулевая вероятность, что эта инструкция будет работать не везде Smile
И да, у многих может возникнуть вопрос: как установить SSH на хостинг?

Аватар пользователя VVS VVS 14 февраля 2022 в 13:12

На виртуальном хостинге нет прав на установку пакетов, типа ssh. Если его там нет, то либо включить в настройках нужно (в целях безопасности он там выключен бывает), либо бежать с этого хостинга.

Аватар пользователя gun_dose gun_dose 15 февраля 2022 в 14:49

Ждём тему "Как установить композер на виндоус-хостинг" Biggrin
А вообще, на том же рег.ру даже на плане Host-0 есть ssh.

Аватар пользователя marassa marassa 14 февраля 2022 в 13:20

Я бы еще добавил, что перед тем как ставить composer неплохо бы убедиться, что его нет Wink На некоторых хостингах он может уже быть установлен централизованно.

Аватар пользователя Filosofos Filosofos 14 февраля 2022 в 21:52

Спасибо большое вам VVS !

запустив команду:

А как этот процесс делается на чем запускать ?

установить composer в свой домашний каталог

Имеете ввиду там где файлы сайта будут ?

Для этого создаём каталог bin

В ручную нужно создавать этот каталог или вы имеете ввиду когда код будет выполнен ?

Понимаю что может туплю ))
Просто никогда подобное не делал и боюсь натворить че то.

Аватар пользователя nzytsprim nzytsprim 15 февраля 2022 в 8:29

Вы не рефлексируйте, просто следуйте инструкции. Человек старался, составлял, а Вы даже не попробовали и сидите до сих пор без composer-а.
Все действие разворачивается в домашнем каталоге пользователя, в который попадаете, выполнив команду cd ~, само-собой, после соединения с сервером по протоколу ssh
Команды выполняются/запускаются в терминале (консоли), который у Вас безусловно есть.
Команды инструкции лучше не переписывать вручную, а копировать с помощью мышки либо сочетания клавиш.
Лучшее "спасибо" - это если Вы по инструкции установите себе composer на сервер.

Аватар пользователя Filosofos Filosofos 15 февраля 2022 в 22:24

Спасибо за пощечину ))
Не нужно даже фильм мотивирующий смотреть Biggrin

По ходу я поневоле стану программистом лет через 5 из за Друпала .

Аватар пользователя nzytsprim nzytsprim 14 февраля 2022 в 22:45

Все это, конечно, так, все верно, но зачем Володька усы сбрил? Smile
Зачем проверку контрольной суммы удалили? Чем установочный скрипт не понравился?

cd ~
nano inst
Копируем

#!/bin/sh

EXPECTED_CHECKSUM="$(php -r 'copy("https://composer.github.io/installer.sig", "php://stdout");')"
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
ACTUAL_CHECKSUM="$(php -r "echo hash_file('sha384', 'composer-setup.php');")"

if [ "$EXPECTED_CHECKSUM" != "$ACTUAL_CHECKSUM" ]
then
    >&2 echo 'ERROR: Invalid installer checksum'
    rm composer-setup.php
    exit 1
fi

# Создаем каталог для установки composer
mkdir -p ~/.local/bin

# Указываем путь к созданному каталогу и переименовываем composer.phar в composer
php composer-setup.php --install-dir=.local/bin --filename=composer
RESULT=$?

rm composer-setup.php

# Добавляем алиас в ~/.bashrc
echo "alias composer='php .local/bin/composer'" >> ~/.bashrc

exit $RESULT

Сохраняем файл: Ctrl+O, Ctrl+X

Устанавливаем sh inst

Убираем за собой rm inst

Обновляем source ~/.bashrc

Проверяем composer -V

Если версия PHP в консоли не совпадает с версией на сайте, то исправляем примерно так.

Аватар пользователя morgusha morgusha 30 августа 2023 в 9:49

При такой установке, когда переход командой
cd ~
и потом установка в корневой каталог файлы composer будет закачивать тоже в этот каталог.
Однако сайт расположен ведь не в корневом каталоге хостинга.
composer нужно устанавливать туда, где и файлы сайта лежат. Например в public_html

Аватар пользователя bsyomov bsyomov 2 сентября 2023 в 15:44
1

Совсем не нужно его устанавливать внутри webroot. Как раз лучше выше где-то в домашней папке пользователя. Возможно в ~/bin или в ~/.local/bin как в примере выше, например. Но в папке с сайтом-то зачем?