Работа с PHP Composer
Описание PHP Composer
Чтобы перейти в PHP Composer:
- В Основном меню выберите Сайты.
- Выберите необходимый сайт и нажмите на кнопку PHP.
- В открывшейся форме Расширенная настройка PHP нажмите на кнопку PHP Composer.
В нем доступны кнопки:
- Установить — устанавливает зависимости;
- Удалить — удаляет выбранную зависимость;
- Файл конфигурации — открывает для редактирования файл composer.json;
- Обновить — вызов команды PHP Composer Install;
- Shell-клиент — осуществляет переход в Shell-клиент для выбранного сайта.
Также на этой форме перечислены установленные зависимости с их названием, версией и описанием
Установить
Устанавливает зависимости. Поддерживается одновременная установка нескольких зависимостей указанных версий.
Удалить
Удаляет выбранные зависимости. Если удаляемая зависимость необходима для других зависимостей, возникнет ошибка.
Файл конфигурации
Проект, использующий PHP Composer, содержит конфигурационный файл composer.json, который используется для установки зависимостей. Файл composer.json является основным файлом настройки PHP Composer и содержит в себе список зависимостей, настройки репозиториев и другое.
Пример 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 install.
Устанавливает зависимости PHP, описанные в файле composer.json, расположенном в корневом каталоге сайта.
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.
Резервное копирование
При выполнении резервного копирования сайта, в метаданных сохраняется значение поля 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}