HanXHX.php

Rol de Ansible PHP (+FPM) para Debian / Ubuntu / FreeBSD

Ansible Galaxy Estado del flujo de trabajo de GitHub (master)

Instala PHP en Debian / Ubuntu / FreeBSD. Gestiona PHP-FPM, APCu, Opcache y Xdebug.

Sistemas Operativos / Versiones Soportadas

En todas las versiones de Debian, puedes instalar todas las versiones de PHP utilizando el repositorio APT de Sury.

Otros casos:

SO 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: Necesita pruebas...
FreeBSD 12 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: Necesita pruebas...

Enlaces:

Requisitos

  • Ansible >= 2.11
  • Colecciones: community.general
  • Si necesitas PHP-FPM, debes instalar un servidor web con soporte FastCGI. Puedes usar mi rol de nginx.

Limitaciones de FreeBSD

  • No separa el archivo ini para FPM/CLI. Está configurado como /usr/local/etc/php.ini.
  • No puede gestionar múltiples versiones de PHP al mismo tiempo (como las versiones antiguas de Debian).
  • Debes especificar explícitamente el nombre del paquete xdebug (usa pkg search xdebug para encontrar el correcto).

Variables de la Rol

Deberías revisar las variables por defecto.

Variables editables

  • php_version: 7.3, 7.4... dependiendo del SO (ver arriba).
  • php_install_fpm: booleano, instala y gestiona php-fpm (el valor por defecto es verdadero).
  • php_install_xdebug: booleano, instala Xdebug.
  • php_extra_packages: paquetes adicionales de PHP para instalar (el valor por defecto es una lista vacía).

php.ini

  • php_ini: configuración global compartida entre FPM/CLI.
  • php_ini_fpm: gestiona el php.ini de FPM (php-fpm).
  • php_ini_cli: gestiona el php.ini de CLI (php-fpm).

Nota:

  • Si deseas la misma configuración exacta para CLI/FPM, puedes poner todos tus datos en php_ini.
  • Pon la configuración específica en php_ini_fpm/php_ini_cli.
  • Puedes sobrescribir con php_ini_fpm/php_ini_cli, pero esto rompe la idempotencia.

Configuraciones de OpCache

Consulta la documentación de 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

Configuraciones de APC/APCu

Consulta la documentación de 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

Configuraciones de Xdebug

Consulta la documentación de 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

Variables de solo lectura

  • php_packages: lista mínima de paquetes a instalar.
  • php_extension_dir.stdout: obtener el directorio de extensiones de PHP (desde la tarea).
  • php_version.stdout: obtener la versión de PHP (desde la tarea).

Dependencias

Ninguna.

Ejemplo de Playbook

Playbook Simple

- hosts: servers
  roles:
     - { role: hanxhx.php }

Debian Bullseye con PHP 8.0 CLI (sin FPM)

- hosts: servers
  roles:
     - { role: HanXHX.sury }
     - { role: hanxhx.php, php_version: '8.0', php_install_fpm: false }

Licencia

GPLv2

Donación

Si este código te ha ayudado, o si lo has utilizado para tus proyectos, siéntete libre de invitarme a unas :cervezas:

  • Bitcoin: 1BQwhBeszzWbUTyK4aUyq3SRg7rBSHcEQn
  • Ethereum: 0x63abe6b2648fd892816d87a31e3d9d4365a737b5
  • Litecoin: LeNDw34zQLX84VvhCGADNvHMEgb5QyFXyD
  • Monero: 45wbf7VdQAZS5EWUrPhen7Wo4hy7Pa7c7ZBdaWQSRowtd3CZ5vpVw5nTPphTuqVQrnYZC72FXDYyfP31uJmfSQ6qRXFy3bQ

¿No tienes criptomonedas? :star: ¡el proyecto también es una forma de agradecer! :sunglasses:

Información del Autor

Instalar
ansible-galaxy install HanXHX.php
Licencia
gpl-2.0
Descargas
3.8k
Propietario
CEO/CTO/SRE triplestack.fr / daemonit.com