lukasic.php
Ansible 角色:多 PHP
Ansible 角色在 Debian 上提供多个 PHP 版本。
更新日志
1.5.1
- 修复排除 PHP 8.0+ 的 JSON 模块
1.5.0
- 支持 PHP 8.3
1.4.0
- 支持 PHP 8.2
1.3.1
- 移除 PHP 7.4+ 的 json 模块
1.3.0
- 添加变量 php_remove_unused_modules
- 默认值 -> false
- 设置为 true 时,移除未在
php
变量中指定的 PHP 模块
- 添加变量 php_remove_unused_versions
- 默认值 -> false
- 设置为 true 时,移除未在
php
变量中指定的 PHP 版本
- 修复:替换 <0xa0> 字符
1.2.0
- 支持 PHP 8.1
1.1.2
- 修复 php_default_version
- 修复 redis 和 imagick 扩展
1.1.1
- 更新 README
- 修复 Ansible Lint 错误
1.1.0
- 支持在 Ubuntu 上安装,测试版本 Focal
1.0.0
- 支持在 Debian Buster 上安装不同的 PHP 版本
安装方法
使用 ansible-galaxy
:
$ ansible-galaxy install lukasic.php
使用 requirements.yml
:
- src: lukasic.php
要求
此角色需要 APT 仓库 deb.sury.org,由 Ondrej Sury 提供。
只在 Debian Buster 和 Ubuntu Focal 上测试过此角色。其他发行版本也应能工作——如果它们在仓库中有相应的软件包。
角色变量
默认 PHP 版本:
php_default_version: "7.3"
要在所有版本中安装的 PHP 模块列表:
php_default_modules:
- bcmath
- bz2
- curl
- gd
- readline
- json
- mysql
- soap
- opcache
- xml
- xmlrpc
- zip
可以通过以下方式进行特殊配置:
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 }}"
一个特殊的超级变量:
php: []
此变量控制已安装的 PHP 版本、模块,并用于配置 PHP 设置。请看以下示例。
依赖关系
无。
示例剧本
示例 1:仅安装 PHP 5.6 和 7.3
- hosts: php
roles:
- lukasic.php
vars:
php:
- version: php56
- version: php73
示例 2:安装 PHP 5.6、7.3、8.0,附加模块并配置全局 CLI/FPM 设置。
- hosts: php
roles:
- lukasic.php
vars:
# 本地变量,请参见下方
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 }}"
许可证
WTFPL
作者信息
该角色由 Lukáš Kasič 于 2020 年创建。