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.

Über das Projekt

Debian/Ubuntu multi-php role

Installieren
ansible-galaxy install lukasic.php
GitHub Repository
Lizenz
Unknown
Downloads
33k
Besitzer