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 年创建。

关于项目

Debian/Ubuntu multi-php role

安装
ansible-galaxy install lukasic.php
许可证
Unknown
下载
33k
拥有者