lukasic.php
Ansible Rolle: Multi PHP
Ansible-Rolle, die mehrere PHP-Versionen auf Debian bereitstellt.
Änderungsprotokoll
1.5.1
- Behebt das Ausschließen des JSON-Moduls für PHP 8.0+
1.5.0
- Unterstützung für PHP 8.3
1.4.0
- Unterstützung für PHP 8.2
1.3.1
- Entfernen des JSON-Moduls für PHP 7.4+
1.3.0
- Hinzufügen der Variablen php_remove_unused_modules
- Standard -> false
- Wenn auf true gesetzt, entfernt PHP-Module, die nicht in der
php
-Variablen angegeben sind
- Hinzufügen der Variablen php_remove_unused_versions
- Standard -> false
- Wenn auf true gesetzt, entfernt PHP-Versionen, die nicht in der
php
-Variablen angegeben sind
- Behebung: Ersetzen von <0xa0>-Zeichen
1.2.0
- Unterstützung für PHP 8.1
1.1.2
- Behebung php_default_version
- Behebung der Erweiterungen redis und imagick
1.1.1
- Aktualisierung der README
- Behebung von Ansible Lint-Fehlern
1.1.0
- Unterstützung der Installation auf Ubuntu, getestet mit Focal
1.0.0
- Unterstützung der Installation verschiedener PHP-Versionen auf Debian Buster
Installation
Verwendung von ansible-galaxy
:
$ ansible-galaxy install lukasic.php
Verwendung von requirements.yml
:
- src: lukasic.php
Voraussetzungen
Die Rolle benötigt das APT-Repository deb.sury.org, bereitgestellt von Ondrej Sury.
Die Rolle wurde nur auf Debian Buster und Ubuntu Focal getestet. Andere Versionsverteilungen sollten ebenfalls funktionieren - wenn sie Pakete im Repository haben.
Rollenvariablen
Standard-PHP-Version:
php_default_version: "7.3"
Liste der PHP-Module, die in allen Versionen installiert werden sollen:
php_default_modules:
- bcmath
- bz2
- curl
- gd
- readline
- json
- mysql
- soap
- opcache
- xml
- xmlrpc
- zip
Kann spezialisiert werden durch:
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 }}"
Eine spezielle Super-Variable:
php: []
Diese Variable steuert die installierten PHP-Versionen, Module und wird verwendet, um PHP-Einstellungen zu konfigurieren. Siehe Beispiele unten.
Abhängigkeiten
Keine.
Beispiel-Playbook
Beispiel 1: Nur PHP 5.6 und 7.3 installieren
- hosts: php
roles:
- lukasic.php
vars:
php:
- version: php56
- version: php73
Beispiel 2: Installiere PHP 5.6, 7.3, 8.0 mit zusätzlichen Modulen und konfiguriere globale CLI/FPM-Einstellungen.
- hosts: php
roles:
- lukasic.php
vars:
# lokale Variable, siehe unten
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 }}"
Lizenz
WTFPL
Autoreninformation
Die Rolle wurde 2020 von Lukáš Kasič erstellt.
ansible-galaxy install lukasic.php