php
Ansible Роль: Multi PHP
Ansible роль для предоставления нескольких версий PHP на Debian.
История изменений
1.5.1
- Исправлено исключение модуля JSON для PHP 8.0+
1.5.0
- Поддержка PHP 8.3
1.4.0
- Поддержка PHP 8.2
1.3.1
- Удален модуль json для PHP 7.4+
1.3.0
- Добавлена переменная php_remove_unused_modules
- Значение по умолчанию -> false
- Если установлено значение true, удаляются модули PHP, не указанные в переменной
php
- Добавлена переменная php_remove_unused_versions
- Значение по умолчанию -> false
- Если установлено значение true, удаляются версии PHP, не указанные в переменной
php
- Исправлено: заменены символы <0xa0>
1.2.0
- Поддержка PHP 8.1
1.1.2
- Исправлена переменная php_default_version
- Исправлены расширения redis и imagick
1.1.1
- Обновлен README
- Исправлены ошибки Ansible Lint
1.1.0
- Поддержка установки на Ubuntu, проверена версия Focal
1.0.0
- Поддержка установки различных версий PHP на Debian Buster
Установка
С помощью ansible-galaxy
:
$ ansible-galaxy install lukasic.php
С помощью requirements.yml
:
- src: lukasic.php
Требования
Роль требует APT репозиторий deb.sury.org, предоставленный Ondrej Sury.
Роль протестирована только на Debian Buster и Ubuntu Focal. Другие версии дистрибутивов также должны работать, если в репозитории есть пакеты.
Переменные роли
Версия PHP по умолчанию:
php_default_version: "7.3"
Список модулей PHP для установки на всех версиях:
php_default_modules:
- bcmath
- bz2
- curl
- gd
- readline
- json
- mysql
- soap
- opcache
- xml
- xmlrpc
- zip
Может быть специализировано для:
php56_default_modules: "{{ php_default_modules }}"
php70_default_modules: "{{ php_default_modules }}"
php71_default_modules: "{{ php_default_modules }}"
php72_default_modules: "{{ php_default_modules }}"
php73_default_modules: "{{ php_default_modules }}"
php74_default_modules: "{{ php_default_modules }}"
php80_default_modules: "{{ php_default_modules }}"
php81_default_modules: "{{ php_default_modules }}"
Одна специальная супер переменная:
php: []
Эта переменная контролирует установленные версии PHP, модули и используется для настройки параметров PHP. Смотрите примеры ниже.
Зависимости
Нет.
Пример Playbook
Пример 1: Просто установить PHP 5.6 и 7.3
- hosts: php
roles:
- lukasic.php
vars:
php:
- version: php56
- version: php73
Пример 2: Установить PHP 5.6, 7.3, 8.0 с дополнительными модулями и настроить глобальные параметры CLI/FPM.
- hosts: php
roles:
- lukasic.php
vars:
# локальная переменная, см. ниже
common_fpm_ini:
- { "section": "PHP", "key": "max_execution_time", "value": "360" }
- { "section": "PHP", "key": "post_max_size", "value": "64MB" }
- { "section": "PHP", "key": "upload_max_filesize", "value": "64MB" }
- { "section": "opcache", "key": "opcache.enable", "value": "1" }
- { "section": "opcache", "key": "opcache.memory_consumption", "value": "512" }
- { "section": "opcache", "key": "opcache.max_accelerated_files", "value": "500" }
php:
- version: php56
fpm_ini: "{{ common_fpm_ini }}"
cli_ini:
- section: "PHP"
key: "memory_limit"
value: "2048M"
- version: php73
modules_extra: ['pgsql', 'gd']
fpm_ini: "{{ common_fpm_ini }}"
- version: php80
modules_extra: ['pgsql', 'gd']
fpm_ini: "{{ common_fpm_ini }}"
Лицензия
WTFPL
Информация об авторе
Роль была создана в 2020 году Лукашем Касичем.
ansible-galaxy install lukasic/ansible-role-multi-php