База знаний (wiki)

Онлайн бибилиотека с инструкциями по использованию и настройке хостинговых услуг

Loading...

Как установить Composer на виртуальном хостинге?

Loading...
1

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

Зачем нужен?
Автоматизация. Больше не нужно вручную скачивать библиотеки — Composer загружает их сам, включая все зависимости.
Контроль версий. Фиксирует версии пакетов, чтобы код работал одинаково у всех разработчиков.
Автозагрузка классов. Больше не требуется писать require для каждого файла — Composer делает это автоматически.

Преимущества:
Экономия времени — установка пакетов одной командой (composer require).
Безопасность — обновления с исправлениями уязвимостей.
Совместимость — исключает конфликты версий.
Доступ к Packagist — 300k+ готовых пакетов (Symfony, Laravel, Monolog и др.).

 

1. Создание сайта и настройка обработчика для Composer:

- В разделе "Сайты" нажмите кнопку "Создать сайт".
- Заполните необходимые поля, такие как доменное имя и путь к корневой директории сайта.
- В поле "Обработчик" выберите PHP (нужную версию).
- Убедитесь, что чтоит галочка Использовать PHP Composer.

 nodejs hosting 01

 

2. Установите PHP Composer через панель:

На нужном сайте нажмите в контекстном меню (три точки) и выберите PHP COMPOSER INSTALL

 

composer shared hosting 03 

 

3. Создание необходимых файлов:



nodejs hosting 02

В корневом каталоге сайта создайте 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 shared hosting 05

 

Дополнительная и полезная информация для 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 на хостинге самостоятельно или обратитесь к разработчикам.

 

 

 

 

 

 

Опубликовано 2 недели назад
#17419 просмотрыОтредактировано 2 недели назад