Документация ispmanager 6 business

Работа с PHP Composer

 

Описание PHP Composer

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

  1. В Основном меню выберите Сайты.
  2. Выберите необходимый сайт и нажмите на кнопку контекстного меню ““.
  3. В раскрывшемся меню выберите PHP Composer установленные пакеты.

В открывшейся форме Установленные пакеты PHP доступно:

  • Обновить – вызов команды PHP Composer Install;
  • Файл конфигурации – открывает для редактирования файл composer.json;
  • Shell-клиент – осуществляет переход в Shell-клиент для выбранного сайта;
  • Удалить – удаляет выбранную зависимость. Если удаляемая зависимость необходима для других зависимостей, возникнет ошибка.

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

Обновить

Вызов команды 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"
    }
}

Описание примера 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

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

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

Apache

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

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

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

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

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

<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>

OpenLiteSpeed

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

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

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

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