15%

Сэкономьте 15% на всех хостинговых услугах

Проверьте свои навыки и получите скидку на любой тарифный план

Используйте код:

Skills
Начать
01.11.2024
1 +1

Как установить PHP Composer на общем/виртуальном хостинге: полное руководство

PHP Composer — это де-факто стандартный менеджер зависимостей для PHP, позволяющий разработчикам объявлять, устанавливать и управлять библиотеками, от которых зависят их проекты. Независимо от того, создаете ли вы приложение Laravel, API Symfony или пользовательский проект PHP, Composer — это незаменимый инструмент в вашем рабочем процессе.

Это подробное руководство проведет вас через каждый этап установки PHP Composer в виртуальной или общей среде хостинга — от доступа SSH до глобальной конфигурации и использования в реальных проектах.

Что такое PHP Composer и зачем он вам нужен?

PHP Composer — это менеджер пакетов, который обрабатывает управление зависимостями на уровне проекта. Вместо ручного скачивания библиотек и управления автозагрузкой, Composer автоматически разрешает зависимости, загружает правильные версии и генерирует оптимизированный автозагрузчик.

Ключевые преимущества включают:

  • Автоматическое разрешение зависимостей — Composer обрабатывает конфликты версий и вложенные зависимости.
  • Воспроизводимые сборки — Файл composer.lock гарантирует, что каждый член команды и среда развертывания используют идентичные версии пакетов.
  • Обширная экосистема — Доступ к более чем 350 000 пакетам на Packagist, репозитории Composer по умолчанию.
  • Автозагрузка PSR-4 — Исключает необходимость в ручных require и include операторах по всему коду.

Если вы запускаете приложения PHP на общем веб-хостинге или в среде VPS-хостинга, установка Composer — один из первых шагов к профессиональному и поддерживаемому рабочему процессу разработки.

Предварительные требования

Перед началом убедитесь, что выполнены следующие требования:

ТребованиеДетали
Доступ к хостингуSSH доступ включен на вашем хостинг-аккаунте
Версия PHPPHP 7.2 или выше (PHP 8.x настоятельно рекомендуется)
Расширения PHPopenssl, phar, mbstring, json должны быть включены
РазрешенияВозможность записи в домашний каталог или каталог в вашем $PATH
Клиент терминалаTerminal (macOS/Linux) или PuTTY / Windows Terminal (Windows)

> Примечание: Если вы находитесь на управляемом плане общего хостинга без доступа SSH, обратитесь к вашему хостинг-провайдеру, чтобы включить его. Планы общего веб-хостинга AlexHost включают доступ SSH, предоставляя вам необходимый контроль.

Шаг 1: Подключитесь к серверу через SSH

Откройте приложение терминала и установите SSH-соединение с вашим хостинг-аккаунтом:

ssh username@yourdomain.com

Замените username на ваше фактическое имя пользователя SSH и yourdomain.com на имя вашего домена или IP-адрес сервера.

Пример:

ssh john@203.0.113.45

После аутентификации вы окажетесь в домашнем каталоге (обычно /home/username/). Вы можете подтвердить вашу текущую позицию с помощью:

pwd

Шаг 2: Проверьте наличие PHP

Перед загрузкой Composer убедитесь, что PHP установлен и доступен из командной строки:

php -v

Вы должны увидеть вывод, похожий на:

PHP 8.2.10 (cli) (built: Sep  5 2023 08:15:22) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.10, Copyright (c) Zend Technologies

Если PHP не найден или версия ниже 7.2, обратитесь к вашему хостинг-провайдеру или обновите вашу среду. Пользователи плана VPS-хостинга имеют полный контроль для установки или обновления версий PHP по мере необходимости.

Также проверьте, что требуемые расширения загружены:

php -m | grep -E 'openssl|phar|mbstring|json'

Все четыре расширения должны появиться в выводе.

Шаг 3: Загрузите установщик Composer

Composer предоставляет официальный скрипт установщика на основе PHP. Загрузите его, используя следующую команду:

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

Это загружает скрипт установщика composer-setup.php в ваш текущий рабочий каталог.

Шаг 4: Проверьте целостность установщика

Этот шаг критичен для безопасности. Всегда проверяйте хеш SHA-384 установщика перед его выполнением, чтобы убедиться, что файл не был изменен или поврежден при загрузке.

4a. Получите ожидаемый хеш со страницы официальных открытых ключей Composer:

Посетите https://composer.github.io/pubkeys.html, чтобы получить последний хеш установщика.

4b. Запустите команду проверки:

HASH="$(php -r "echo hash_file('sha384', 'composer-setup.php');")"

Затем сравните его с опубликованным хешем:

php -r "if (hash_file('sha384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

Если вы видите «Installer verified», продолжайте. Если вы видите «Installer corrupt», остановитесь немедленно, удалите файл и загрузите его заново.

Кроме того, вы можете использовать однострочник из официальной документации Composer, заменив EXPECTED_HASH значением со страницы открытых ключей:

php -r "if (hash_file('sha384', 'composer-setup.php') === 'EXPECTED_HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

Шаг 5: Запустите установщик Composer

После проверки установщика выполните его для установки Composer:

php composer-setup.php

При успешном выполнении вы увидите вывод, похожий на:

All settings correct for using Composer
Downloading...

Composer (version 2.x.x) successfully installed to: /home/username/composer.phar
Use it: php composer.phar

Файл composer.phar теперь создан в вашем текущем каталоге. На этом этапе вы уже можете использовать Composer, вызывая php composer.phar, но сделать его глобально доступным намного удобнее.

Шаг 6: Очистите скрипт установщика

Удалите скрипт установки, так как он больше не нужен:

php -r "unlink('composer-setup.php');"

Шаг 7: Установите Composer глобально

Чтобы запускать Composer из любого места в вашей системе, используя только команду composer, переместите двоичный файл composer.phar в каталог, включенный в $PATH вашей системы.

На VPS или выделенном сервере (с доступом sudo):

sudo mv composer.phar /usr/local/bin/composer
sudo chmod +x /usr/local/bin/composer

На общем хостинге (без доступа sudo):

Если у вас нет привилегий sudo, установите Composer локально в домашнем каталоге:

mkdir -p ~/bin
mv composer.phar ~/bin/composer
chmod +x ~/bin/composer

Затем добавьте ~/bin в ваш $PATH, добавив следующую строку в ваш ~/.bashrc или ~/.bash_profile:

export PATH="$HOME/bin:$PATH"

Перезагрузите конфигурацию оболочки:

source ~/.bashrc

> Совет профессионала: Если вам нужен полный доступ root и больший контроль над вашей средой PHP, рассмотрите возможность обновления до плана VPS-хостинга или выделенного сервера для неограниченной конфигурации на уровне системы.

Шаг 8: Проверьте установку

Подтвердите, что Composer установлен и глобально доступен:

composer --version

Ожидаемый вывод:

Composer version 2.x.x 2024-xx-xx xx:xx:xx

Для полной диагностики вашей среды запустите:

composer diagnose

Эта команда проверяет конфигурацию PHP, сетевое соединение и параметры Composer, сообщая о любых потенциальных проблемах.

Шаг 9: Использование Composer для управления зависимостями PHP

Теперь, когда Composer установлен, вот как эффективно его использовать в ваших проектах PHP.

9a. Инициализируйте новый проект

Перейдите в каталог вашего проекта и инициализируйте новый проект Composer:

cd /path/to/your/project
composer init

Интерактивный мастер попросит вас указать:

  • Имя пакета (например, yourname/project)
  • Описание
  • Информацию об авторе
  • Минимальную стабильность
  • Требуемые зависимости

Это генерирует файл composer.json — сердце конфигурации зависимостей вашего проекта.

9b. Установите пакет

Чтобы добавить библиотеку в ваш проект, используйте команду require:

composer require vendor/package-name

Примеры из реальной жизни:

# Install Guzzle HTTP client
composer require guzzlehttp/guzzle

# Install Carbon date library
composer require nesbot/carbon

# Install Monolog logging library
composer require monolog/monolog

Composer разрешит зависимости, загрузит пакеты в каталог vendor/ и обновит composer.json и composer.lock.

9c. Установите все зависимости из composer.json

При развертывании проекта или клонировании репозитория установите все объявленные зависимости с помощью:

composer install

Для производственных сред используйте флаг --no-dev для пропуска пакетов только для разработки:

composer install --no-dev --optimize-autoloader

9d. Обновите зависимости

Чтобы обновить все пакеты до их последних допустимых версий:

composer update

Чтобы обновить конкретный пакет:

composer update vendor/package-name

9e. Автозагрузка

Composer автоматически генерирует автозагрузчик. Включите его в начало вашей точки входа PHP:

<?php
require 'vendor/autoload.php';

Эта единственная строка дает вам доступ ко всем установленным пакетам и любым пользовательским пространствам имен, которые вы определяете в composer.json.

Устранение распространенных проблем

ПроблемаПричинаРешение
composer: command not foundДвоичный файл не в $PATHДобавьте каталог установки в $PATH и перезагрузите оболочку
PHP Fatal error: Allowed memory size exhaustedЛимит памяти PHP слишком низкийЗапустите php -d memory_limit=-1 /usr/local/bin/composer install
SSL certificate problemОтсутствуют сертификаты CAУстановите пакет ca-certificates или обновите конфигурацию openssl PHP
The requested PHP extension ... is missingТребуемое расширение отключеноВключите расширение в php.ini или обратитесь к вашему хостеру
Доступ запрещен на /usr/local/bin
15%

Сэкономьте 15% на всех хостинговых услугах

Проверьте свои навыки и получите скидку на любой тарифный план

Используйте код:

Skills
Начать