Работа с PHP Composer
Описание PHP Composer
Чтобы перейти в PHP Composer:
- В Основном меню выберите Сайты.
- Выберите необходимый сайт и нажмите на кнопку контекстного меню “…“.
- В раскрывшемся меню выберите 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 – версия проекта.
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}