lukasic.php
Ansible Rola: Multi PHP
Rola Ansible do zarządzania wieloma wersjami PHP na Debianie.
Zmiany
1.5.1
- Poprawka wykluczania modułu JSON dla PHP 8.0+
1.5.0
- Obsługa PHP 8.3
1.4.0
- Obsługa PHP 8.2
1.3.1
- Usunięcie modułu json dla PHP 7.4+
1.3.0
- Dodanie zmiennej php_remove_unused_modules
- Domyślnie -> fałsz
- Jeśli ustawiona na prawdę, usuwa moduły PHP, które nie są określone w zmiennej
php
- Dodanie zmiennej php_remove_unused_versions
- Domyślnie -> fałsz
- Jeśli ustawiona na prawdę, usuwa wersje PHP, które nie są określone w zmiennej
php
- Poprawka: zastąpienie znaków <0xa0>
1.2.0
- Obsługa PHP 8.1
1.1.2
- Poprawka php_default_version
- Poprawka rozszerzeń redis i imagick
1.1.1
- Aktualizacja README
- Poprawki błędów Ansible Lint
1.1.0
- Obsługa instalacji na Ubuntu, testowane na Focal
1.0.0
- Obsługa instalacji różnych wersji PHP na Debianie Buster
Instalacja
Używając ansible-galaxy
:
$ ansible-galaxy install lukasic.php
Używając requirements.yml
:
- src: lukasic.php
Wymagania
Rola wymaga repozytorium APT deb.sury.org, dostarczonego przez Ondreja Sury.
Rola jest testowana tylko na Debianie Buster i Ubuntu Focal. Inne wersje dystrybucji również powinny działać - o ile mają pakiety w repozytorium.
Zmienne Roli
Domyślna wersja PHP:
php_default_version: "7.3"
Lista modułów PHP do zainstalowania dla wszystkich wersji:
php_default_modules:
- bcmath
- bz2
- curl
- gd
- readline
- json
- mysql
- soap
- opcache
- xml
- xmlrpc
- zip
Można to dostosować dla poszczególnych wersji:
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 }}"
Jedna specjalna super zmienna:
php: []
Ta zmienna kontroluje zainstalowane wersje PHP, moduły i jest używana do konfiguracji ustawień PHP. Zobacz przykłady poniżej.
Zależności
Brak.
Przykładowy Playbook
Przykład 1: Zainstaluj PHP 5.6 i 7.3
- hosts: php
roles:
- lukasic.php
vars:
php:
- version: php56
- version: php73
Przykład 2: Zainstaluj PHP 5.6, 7.3, 8.0 z dodatkowymi modułami i skonfiguruj globalne ustawienia CLI/FPM.
- hosts: php
roles:
- lukasic.php
vars:
# lokalna zmienna, patrz poniżej
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 }}"
Licencja
WTFPL
Informacje o autorze
Rola została stworzona w 2020 roku przez Lukáša Kasiča.
ansible-galaxy install lukasic.php