Как установить Composer на виртуальном хостинге?
Composer — это менеджер зависимостей для PHP, который автоматизирует установку и обновление библиотек (пакетов) для вашего проекта.
Зачем нужен?
Автоматизация. Больше не нужно вручную скачивать библиотеки — Composer загружает их сам, включая все зависимости.
Контроль версий. Фиксирует версии пакетов, чтобы код работал одинаково у всех разработчиков.
Автозагрузка классов. Больше не требуется писать require для каждого файла — Composer делает это автоматически.
Преимущества:
Экономия времени — установка пакетов одной командой (composer require).
Безопасность — обновления с исправлениями уязвимостей.
Совместимость — исключает конфликты версий.
Доступ к Packagist — 300k+ готовых пакетов (Symfony, Laravel, Monolog и др.).
1. Создание сайта и настройка обработчика для Composer:
- В разделе "Сайты" нажмите кнопку "Создать сайт".
- Заполните необходимые поля, такие как доменное имя и путь к корневой директории сайта.
- В поле "Обработчик" выберите PHP (нужную версию).
- Убедитесь, что чтоит галочка Использовать PHP Composer.
2. Установите PHP Composer через панель:
На нужном сайте нажмите в контекстном меню (три точки) и выберите PHP COMPOSER INSTALL
3. Создание необходимых файлов:
В корневом каталоге сайта создайте index.php
с содержимым:
<?php
require __DIR__ . '/vendor/autoload.php';
echo "<h1>Composer Test: composer.808.by</h1>";
echo "<pre>";
// Версия Composer (альтернативный способ)
echo "Composer version: ";
echo shell_exec('./composer.phar --version');
// Список пакетов
echo "\n\n<b>Установленные пакеты:</b>\n";
$packages = json_decode(file_get_contents(__DIR__.'/vendor/composer/installed.json'), true);
foreach ($packages['packages'] as $pkg) {
echo $pkg['name'] . " (" . $pkg['version'] . ")\n";
}
// Проверка Monolog
if (class_exists('Monolog\Logger')) {
echo "\nMonolog работает!";
}
// Информация о PHP
echo "\n\n<b>PHP Info:</b>\n";
echo "Версия PHP: " . phpversion();
Важно! измените доменное имя на свое.
В корневом каталоге сайта отредактируйте composer.json
На содержимое:
{
"require": {
"monolog/monolog": ">=1.0.2 <2.1.2",
"guzzlehttp/guzzle": "^7.0",
"laravel/sanctum": "^3.3"
},
"description": "This example",
"keywords": ["testing", "example"],
"type": "project",
"version": "1.0.0",
"homepage": "https://composer.808.by",
"readme": "readme.md",
"license": "MIT",
"authors": [{
"name": "User",
"email": "Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в браузере должен быть включен Javascript. ",
"homepage": "https://www.composer.808.by",
"role": "Developer"
}],
"support": {
"email": "Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в браузере должен быть включен Javascript. "
}
}
Важно! измените доменное имя на свое.
Описание примера:
require — JSON с названиями и версиями библиотек для установки. Основное поле;
authors — JSON, описывающий авторов проекта, где:
email — электронный адрес автора;
homepage — домашняя страница автора;
name — имя автора;
role — роль в проекте;
description — описание проекта;
homepage — домашняя страница проекта;
keywords — ключевые слова для поиска проекта в репозитории;
license — тип лицензии проекта;
readme — путь к файлу readme;
support — электронный адрес технической поддержки;
type — тип, может быть library, project, metapackage, composer-plugin.
version — версия проекта.
Обязательно установити PHP Composer еще раз как в пункте 2
4. Проверьте работу сайта с Composer:
Откройте Ваш сайт в браузере и вы должны увидеть что-то подобное:
Дополнительная и полезная информация для Composer и Ispmanager
Shell-клиент
Shell-клиент позволяет выполнять в терминале дополнительные команды PHP Composer и другие команды. Запуск shellinaboxd выполняется под правами владельца сайта. При открытии терминала выполняются следующие действия:
- переход в домашнюю директорию сайта;
- добавление в переменную PATH пути к исполняемому файлу php, согласно версии для выбранного сайта.
Служебные файлы и каталоги
Во время работы PHP Composer в домашней директории сайта создаются следующие служебные файлы и каталоги:
- composer.phar — исполняемый файл PHP Composer;
- composer.json — файл в формате JSON c описанием всех сторонних пакетов, от которых зависит проект;
- composer.lock — файл, в который сохраняется текущий список установленных зависимостей и их версии;
- vendor — директория, в которую устанавливаются зависимости;
- .cache — директория, в которой хранится кэш загруженных библиотек;
- .config — директория, в которой хранятся настройки конфигурации и публичные ключи.
Каталоги защищены правилом Deny from all в htaccess. Исполняемый файл composer.phar работает только на консольной версии PHP.
Защита служебных данных
Для того, чтобы служебные файлы и каталоги не были доступны при обращении через браузер, при включении PHP Composer в конфигурационные файлы сайтов добавляются вложения конфигурационных файлов для Nginx, Apache и OpenLiteSpeed, в зависимости от того, что установлено на сервере. Если установлен Nginx + Apache, вложения будут добавлены для них обоих.
Список защищаемых файлов и каталогов:
- composer.phar
- composer.json
- composer.lock
- vendor
- .cache
- .config
- .local
Если были установлены какие-либо зависимости, то после отключения PHP Composer у сайта остаются добавленные вложения. Это необходимо, чтобы файлы не стали доступны после отключения. Вложения остаются, если в корневом каталоге присутствуют директория vendor и файл composer.json.
Как использовать и запускать команды через shell
Зайдите в shell через сайт, как в пункте 2. Нажмите Shell-клиент. Вот 10 главных команд Composer, которые можно запускать через shell в ISPmanager (используя ./composer.phar
):
1. Проверка версии
./composer.phar --version
→ Выводит версию Composer и PHP.
---
2. Инициализация проекта
./composer.phar init
→ Создает `composer.json` в интерактивном режиме.
---
3. Установка зависимостей
./composer.phar install
→ Устанавливает все пакеты из `composer.lock` (или `composer.json`).
---
4. Добавление пакета
./composer.phar require vendor/package
Пример для Monolog:
./composer.phar require monolog/monolog
---
5. Обновление пакетов
./composer.phar update
→ Обновляет все пакеты до последних версий (с учетом `composer.json`).
Для конкретного пакета:
./composer.phar update vendor/package
---
6. Просмотр установленных пакетов
./composer.phar show
→ Список всех установленных зависимостей.
Детали по пакету:
./composer.phar show vendor/package
---
7. Поиск пакетов
./composer.phar search ключевое_слово
Пример:
./composer.phar search logger
---
8. Автозагрузка классов (после изменений)
./composer.phar dump-autoload
→ Генерирует новый автозагрузчик (например, после добавления своих классов).
---
9. Диагностика проблем
./composer.phar diagnose
→ Проверяет настройки системы и конфигурацию Composer.
---
10. Удаление пакета
./composer.phar remove vendor/package
Пример:
./composer.phar remove monolog/monolog
---
Дополнительно:
- Обновление самого Composer:
./composer.phar self-update
- Проверка устаревших пакетов:
./composer.phar outdated
Эти команды покрывают 90% повседневных задач с Composer. Для ISPmanager всегда добавляйте ./composer.phar перед командой (если Composer не добавлен в PATH).
Что дальше?
Разработывайте или используете приложения для composer на хостинге самостоятельно или обратитесь к разработчикам.