lukasic.php
Rol de Ansible: Multi PHP
Rol de Ansible que proporciona múltiples versiones de PHP en Debian.
Registro de Cambios
1.5.1
- Arreglar la exclusión del módulo JSON para PHP 8.0+
1.5.0
- Soporte para PHP 8.3
1.4.0
- Soporte para PHP 8.2
1.3.1
- Eliminar el módulo json para PHP 7.4+
1.3.0
- Añadir variable php_remove_unused_modules
- Predeterminado -> false
- Si se establece en true, elimina módulos de PHP no especificados en la variable
php
- Añadir variable php_remove_unused_versions
- Predeterminado -> false
- Si se establece en true, elimina versiones de PHP no especificadas en la variable
php
- Arreglar: reemplazar caracteres <0xa0>
1.2.0
- Soporte para PHP 8.1
1.1.2
- Arreglar php_default_version
- Arreglar extensiones redis e imagick
1.1.1
- Actualizar README
- Arreglar errores de Ansible Lint
1.1.0
- Soporte para instalación en Ubuntu, probado en Focal
1.0.0
- Soporte para instalación de diferentes versiones de PHP en Debian Buster
Instalación
Usando ansible-galaxy
:
$ ansible-galaxy install lukasic.php
Usando requirements.yml
:
- src: lukasic.php
Requisitos
La función requiere el repositorio APT deb.sury.org, proporcionado por Ondrej Sury.
La función ha sido probada solo en Debian Buster y Ubuntu Focal. Otras versiones de distribución también deberían funcionar, si tienen paquetes en el repositorio.
Variables de la Función
Versión predeterminada de PHP:
php_default_version: "7.3"
Lista de módulos de PHP que se instalarán en todas las versiones:
php_default_modules:
- bcmath
- bz2
- curl
- gd
- readline
- json
- mysql
- soap
- opcache
- xml
- xmlrpc
- zip
Puede ser especializada por:
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 }}"
Una variable especial:
php: []
Esta variable controla las versiones de PHP instaladas, los módulos y se usa para configurar los ajustes de PHP. Vea ejemplos a continuación.
Dependencias
Ninguna.
Ejemplo de Playbook
Ejemplo 1: Solo instalar PHP 5.6 y 7.3
- hosts: php
roles:
- lukasic.php
vars:
php:
- version: php56
- version: php73
Ejemplo 2: Instalar PHP 5.6, 7.3, 8.0 con módulos adicionales y configurar los ajustes globales de CLI/FPM.
- hosts: php
roles:
- lukasic.php
vars:
# variable local, ver abajo
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 }}"
Licencia
WTFPL
Información del Autor
La función fue creada en 2020 por Lukáš Kasič.
ansible-galaxy install lukasic.php