Описание PHP Composer

Чтобы перейти в PHP Composer:

  1. В Основном меню выберите Сайты.

  2. Выберите необходимый сайт и нажмите на кнопку PHP.

  3. В открывшейся форме Расширенная настройка PHP нажмите на кнопку PHP Composer.

    Пример расширенной настройки PHP

В нем доступно:

  • Обновить – вызов команды PHP Composer Install;

  • Файл конфигурации – открывает для редактирования файл composer.json;

  • Shell-клиент – осуществляет переход в Shell-клиент для выбранного сайта;

  • Удалить – удаляет выбранную зависимость. Если удаляемая зависимость необходима для других зависимостей, возникнет ошибка.

Пример PHP Composer для сайта

Также на этой форме перечислены установленные зависимости с их названием, версией и описанием.

Обновить

Вызов команды PHP Composer install.

Устанавливает зависимости PHP, описанные в файле composer.json, расположенном в корневом каталоге сайта.

Файл конфигурации

Проект, использующий PHP Composer содержит конфигурационный файл composer.json, который используется для установки зависимостей. Файл composer.json является основным файлом настройки PHP Composer. Cодержит в себе список зависимостей, настройки репозиториев и другое.

Пример composer.json:

{
    "require": {
            "monolog/monolog": ">=1.0.2 <2.1.2"
    },
    "description": "This example",
    "keywords": ["testing", "example"],
    "type": "project",
    "version": "1.0.0",
    "homepage": "https://example.com",
    "readme": "readme.md",
    "license": "MIT",
    "authors": [{
            "name": "User",
            "email": "user@example.com",
            "homepage": "https://www.example.com",
            "role": "Developer"
    }],
    "support": {
            "email": "support@example.org"
    }
}
PHP

Описание примера composer.json:

  • require – JSON с названиями и версиями библиотек для установки. Основное поле;

  • authors – JSON, описывающий авторов проекта, где:

    • email – электронный адрес автора;

    • homepage – домашняя страница автора;

    • name – имя автора;

    • role – роль в проекте;

  • description – описание проекта;

  • homepage – домашняя страница проекта;

  • keywords – ключевые слова для поиска проекта в репозитории;

  • license – тип лицензии проекта;

  • readme – путь к файлу readme;

  • support – электронный адрес технической поддержки;

  • type – тип, может быть library, project, metapackage, composer-plugin.

  • version – версия проекта.

Возможность редактирования конфигурационных файлов PHP Composer доступна под администратором и пользователем.

Shell-клиент

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

  • переход в домашнюю директорию сайта;

  • добавление в переменную PATH пути к исполняемому файлу php, согласно версии для выбранного сайта.

Удалить

Удаляет выбранные зависимости.

Служебные файлы и каталоги

Во время работы PHP Composer в домашней директории сайта создаются следующие служебные файлы и каталоги:

  • composer.phar - исполняемый файл PHP Composer.

  • composer.json - файл в формате JSON, в котором описаны все сторонние пакеты, от которых зависит проект.

  • composer.lock - файл, в который сохраняется текущий список установленных зависимостей и их версии.

  • vendor - директория, в которую устанавливаются зависимости.

  • .cache - директория, в которой хранится кэш загруженных библиотек.

  • .config - директория, в которой хранятся настройки конфигурации и публичные ключи.

Каталоги защищены правилом Deny from all в htaccess. Исполняемый файла composer.phar работает только на консольной версии PHP.

Резервное копирование

При выполнении резервного копирования сайта, в метаданных сохраняется значение поля phpcomposer, библиотеки сохраняются в файлах сайта.

Если нет возможности включить PHP Composer, при восстановлении, будет добавлена соответствующая запись в журнал восстановления.

Защита служебных данных

Для того, чтобы служебные файлы и каталоги не были доступны при обращении через браузер, при включении PHP Composer в конфигурационные файлы сайтов добавляются вложения конфигурационных файлов для Nginx, Apache и OpenLiteSpeed, в зависимости от того, что установлено на сервере. Если установлен Nginx + Apache, вложения будут добавлены для них обоих.

Список защищаемых файлов и каталогов:

  • composer.phar

  • composer.json

  • composer.lock

  • vendor

  • .cache

  • .config

  • .local

Если были установлены какие-либо зависимости, то после отключения PHP Composer у сайта остаются добавленные вложения. Это необходимо, чтобы файлы не стали доступны после отключения. Вложения остаются, если в корневом каталоге присутствуют - директория vendor и файл composer.json.

Nginx

Путь к конфигурационному файлу:

/etc/nginx/modules-includes/phpcomposer/phpcomposer.conf
PHP

Конфигурационный файл:

location ~* ^(/composer\.(json|lock|phar)$)|(/(vendor|.config|.cache|.local)/) {        deny all;}
PHP

Apache

Путь к конфигурационному файлу в Debian системах:

/etc/apache2/modules-includes/phpcomposer/phpcomposer.conf
PHP

Путь к конфигурационному файлу в RedHat системах:

/etc/httpd/modules-includes/phpcomposer/phpcomposer.conf
PHP

Конфигурационный файл:

<LocationMatch "^(/composer\.(json|lock|phar)$)|(/(vendor|.config|.cache|.local))">    <IfModule mod_authz_core.c>        # Apache 2.4        <RequireAny>        Require all denied        </RequireAny>    </IfModule>    <IfModule !mod_authz_core.c>        # Apache 2.2        Order Deny,Allow        Deny from All    </IfModule></LocationMatch>
PHP

OpenLiteSpeed

Путь к конфигурационному файлу:

/usr/local/lsws/conf/modules-includes/phpcomposer/phpcomposer.conf
PHP

Конфигурационный файл:

context exp: ^(/composer\.(json|lock|phar)$)|((/vendor|.config|.cache|.local)) {        allowBrowse 0}
PHP