php
Роль Ansible для PHP (+FPM) для Debian / Ubuntu / FreeBSD
Установка PHP на Debian / Ubuntu / FreeBSD. Управление PHP-FPM, APCu, Opcache и Xdebug.
Поддерживаемые ОС / версии
На всех версиях Debian вы можете установить все версии PHP, используя APT-репозиторий Sury.
Другие случаи:
ОС | PHP 7.0 | PHP 7.1 | PHP 7.2 | PHP 7.3 | PHP >= 7.4 |
---|---|---|---|---|---|
Ubuntu Bionic (18.04) | :x: | :x: | :heavy_check_mark: | :x: | :x: |
FreeBSD 11 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | Необходимы тесты... |
FreeBSD 12 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | Необходимы тесты... |
Ссылки:
Требования
- Ansible >= 2.11
- Коллекции: community.general
- Если вам нужен PHP-FPM, необходимо установить веб-сервер с поддержкой FastCGI. Вы можете использовать мою роль для nginx.
Ограничения FreeBSD
- Не разделяет файл ini для FPM/CLI. Он зашит как
/usr/local/etc/php.ini
. - Не может управлять несколькими версиями PHP одновременно (как устаревшие версии Debian).
- Вы должны явно указать имя пакета xdebug (используйте
pkg search xdebug
, чтобы найти нужный).
Переменные роли
Вам следует посмотреть на значения по умолчанию.
Переменные для записи
php_version
: 7.3, 7.4... в зависимости от ОС (см. выше)php_install_fpm
: булево значение, установка и управление php-fpm (по умолчанию true)php_install_xdebug
: булево значение, установка Xdebugphp_extra_packages
: дополнительные пакеты PHP для установки (по умолчанию пустой список).
php.ini
php_ini
: глобальная конфигурация, общая для FPM/CLIphp_ini_fpm
: управление php.ini FPM (php-fpm)php_ini_cli
: управление php.ini CLI (php-fpm)
Примечание:
- Если вы хотите одинаковую конфигурацию для CLI/FPM, можно поместить все данные в
php_ini
. - Специфическая конфигурация помещается в
php_ini_fpm
/php_ini_cli
. - Вы можете переопределить с помощью
php_ini_fpm
/php_ini_cli
, но это нарушает идемпотентность.
Настройки OpCache
Смотрите документацию Opcache
php_opcache_enable
php_opcache_enable_cli
php_opcache_memory_consumption
php_opcache_interned_strings_buffer
php_opcache_max_accelerated_files
php_opcache_max_wasted_percentage
php_opcache_validate_timestamps
php_opcache_revalidate_freq
php_opcache_max_file_size
Настройки APC/APCu
Смотрите документацию apc
php_apc_enable
php_apc_enable_cli
php_apc_shm_size
php_apc_num_files_hint
php_apc_user_entries_hint
php_apc_user_ttl
php_apc_ttl
php_apc_file_update_protection
php_apc_slam_defense
php_apc_stat_ctime
Настройки Xdebug
Смотрите документацию Xdebug
php_xdebug_auto_trace
php_xdebug_cli_color
php_xdebug_collect_assignments
php_xdebug_collect_includes
php_xdebug_collect_params
php_xdebug_collect_return
php_xdebug_collect_vars
php_xdebug_coverage_enable
php_xdebug_default_enable
php_xdebug_dump_globals
php_xdebug_dump_once
php_xdebug_dump_undefined
php_xdebug_extended_info
php_xdebug_file_link_format
php_xdebug_force_display_errors
php_xdebug_force_error_reporting
php_xdebug_halt_level
php_xdebug_idekey
php_xdebug_manual_url
php_xdebug_max_nesting_level
php_xdebug_overload_var_dump
php_xdebug_profiler_append
php_xdebug_profiler_enable
php_xdebug_profiler_enable_trigger
php_xdebug_profiler_enable_trigger_value
php_xdebug_profiler_output_dir
php_xdebug_profiler_output_name
php_xdebug_remote_autostart
php_xdebug_remote_connect_back
php_xdebug_remote_cookie_expire_time
php_xdebug_remote_enable
php_xdebug_remote_handler
php_xdebug_remote_host
php_xdebug_remote_log
php_xdebug_remote_mode
php_xdebug_remote_port
php_xdebug_scream
php_xdebug_show_exception_trace
php_xdebug_show_local_vars
php_xdebug_show_mem_delta
php_xdebug_trace_enable_trigger
php_xdebug_trace_enable_trigger_value
php_xdebug_trace_format
php_xdebug_trace_options
php_xdebug_trace_output_dir
php_xdebug_trace_output_name
php_xdebug_var_display_max_children
php_xdebug_var_display_max_data
php_xdebug_var_display_max_depth
Чтение только переменных
php_packages
: минимальный список пакетов для установкиphp_extension_dir.stdout
: получить каталог расширений PHP (из задачи)php_version.stdout
: получить версию PHP (из задачи)
Зависимости
Нет.
Пример playbook
Простой playbook
- hosts: servers
roles:
- { role: hanxhx.php }
Debian Bullseye с PHP 8.0 CLI (без FPM)
- hosts: servers
roles:
- { role: HanXHX.sury }
- { role: hanxhx.php, php_version: '8.0', php_install_fpm: false }
Лицензия
GPLv2
Пожертвования
Если этот код помог вам или вы использовали его в своих проектах, не стесняйтесь угостить меня :beers:
- Bitcoin:
1BQwhBeszzWbUTyK4aUyq3SRg7rBSHcEQn
- Ethereum:
0x63abe6b2648fd892816d87a31e3d9d4365a737b5
- Litecoin:
LeNDw34zQLX84VvhCGADNvHMEgb5QyFXyD
- Monero:
45wbf7VdQAZS5EWUrPhen7Wo4hy7Pa7c7ZBdaWQSRowtd3CZ5vpVw5nTPphTuqVQrnYZC72FXDYyfP31uJmfSQ6qRXFy3bQ
Нет криптовалюты? :star: проект также является способом сказать спасибо! :sunglasses:
Информация об авторе
- Twitter: @hanxhx_
О проекте
Install and configure PHP 7.x/8.x
Установить
ansible-galaxy install HanXHX/ansible-php
Лицензия
gpl-2.0
Загрузки
3764
Владелец
CEO/CTO/SRE triplestack.fr / daemonit.com