5d1878f9db558182bcfdae3656cbd32e8ceca8fa
PHP Ansible Role
This Ansible role installs and configures PHP with support for multiple versions and custom modules for each version.
Features
- Install multiple PHP versions simultaneously (e.g., PHP 8.3 and 8.4)
- Install single PHP version (just provide one version in the list)
- Configure different module lists for each PHP version
- Support for PHP-FPM
- Automatic repository setup (Sury repository for latest PHP versions)
Requirements
- Ubuntu/Debian-based systems
- Ansible 2.9+
- sudo/root privileges
Role Variables
Configuration
php_versions:
- version: "8.3"
modules:
- mysql
- gd
- xml
- mbstring
- zip
- version: "8.4"
modules:
- -mysql
- gd
- xml
- redis
- ip
Installed Packages
For each PHP version, the following base packages are automatically installed:
php{version}-commonphp{version}-cli
Additional modules are installed based on the modules list for each version.
Notes
- The role uses the Sury repository to provide the latest PHP versions
- Each PHP version runs its own FPM service on different sockets/ports
- Module names should include the PHP version prefix (e.g.,
php8.3-mysql) - For single version installations, just provide one entry in the
php_versionslist
License
MIT
Languages
Jinja
100%