php

Роль Ansible для PHP (+FPM) для Debian / Ubuntu / FreeBSD

Ansible Galaxy Статус рабочего процесса на GitHub (master)

Установка 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: булево значение, установка Xdebug
  • php_extra_packages: дополнительные пакеты PHP для установки (по умолчанию пустой список).

php.ini

  • php_ini: глобальная конфигурация, общая для FPM/CLI
  • php_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:

Информация об авторе

Установить
ansible-galaxy install HanXHX/ansible-php
Лицензия
gpl-2.0
Загрузки
3759
Владелец
CEO/CTO/SRE triplestack.fr / daemonit.com