Как установить 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 доступ включен на вашем хостинг-аккаунте |
| Версия PHP | PHP 7.2 или выше (PHP 8.x настоятельно рекомендуется) |
| Расширения PHP | openssl, 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/monologComposer разрешит зависимости, загрузит пакеты в каталог vendor/ и обновит composer.json и composer.lock.
9c. Установите все зависимости из composer.json
При развертывании проекта или клонировании репозитория установите все объявленные зависимости с помощью:
composer installДля производственных сред используйте флаг --no-dev для пропуска пакетов только для разработки:
composer install --no-dev --optimize-autoloader9d. Обновите зависимости
Чтобы обновить все пакеты до их последних допустимых версий:
composer updateЧтобы обновить конкретный пакет:
composer update vendor/package-name9e. Автозагрузка
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 |
