HanXHX.php
Rol de Ansible PHP (+FPM) para Debian / Ubuntu / FreeBSD
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 xdebugpara 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_enablephp_opcache_enable_cliphp_opcache_memory_consumptionphp_opcache_interned_strings_bufferphp_opcache_max_accelerated_filesphp_opcache_max_wasted_percentagephp_opcache_validate_timestampsphp_opcache_revalidate_freqphp_opcache_max_file_size
Configuraciones de APC/APCu
Consulta la documentación de apc
php_apc_enablephp_apc_enable_cliphp_apc_shm_sizephp_apc_num_files_hintphp_apc_user_entries_hintphp_apc_user_ttlphp_apc_ttlphp_apc_file_update_protectionphp_apc_slam_defensephp_apc_stat_ctime
Configuraciones de Xdebug
Consulta la documentación de Xdebug
php_xdebug_auto_tracephp_xdebug_cli_colorphp_xdebug_collect_assignmentsphp_xdebug_collect_includesphp_xdebug_collect_paramsphp_xdebug_collect_returnphp_xdebug_collect_varsphp_xdebug_coverage_enablephp_xdebug_default_enablephp_xdebug_dump_globalsphp_xdebug_dump_oncephp_xdebug_dump_undefinedphp_xdebug_extended_infophp_xdebug_file_link_formatphp_xdebug_force_display_errorsphp_xdebug_force_error_reportingphp_xdebug_halt_levelphp_xdebug_idekeyphp_xdebug_manual_urlphp_xdebug_max_nesting_levelphp_xdebug_overload_var_dumpphp_xdebug_profiler_appendphp_xdebug_profiler_enablephp_xdebug_profiler_enable_triggerphp_xdebug_profiler_enable_trigger_valuephp_xdebug_profiler_output_dirphp_xdebug_profiler_output_namephp_xdebug_remote_autostartphp_xdebug_remote_connect_backphp_xdebug_remote_cookie_expire_timephp_xdebug_remote_enablephp_xdebug_remote_handlerphp_xdebug_remote_hostphp_xdebug_remote_logphp_xdebug_remote_modephp_xdebug_remote_portphp_xdebug_screamphp_xdebug_show_exception_tracephp_xdebug_show_local_varsphp_xdebug_show_mem_deltaphp_xdebug_trace_enable_triggerphp_xdebug_trace_enable_trigger_valuephp_xdebug_trace_formatphp_xdebug_trace_optionsphp_xdebug_trace_output_dirphp_xdebug_trace_output_namephp_xdebug_var_display_max_childrenphp_xdebug_var_display_max_dataphp_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
- Twitter: @hanxhx_
Acerca del proyecto
Install and configure PHP 7.x/8.x
Instalar
ansible-galaxy install HanXHX.phpLicencia
gpl-2.0
Descargas
3.8k
Propietario
CEO/CTO/SRE triplestack.fr / daemonit.com
