HanXHX.php

Ansible PHP (+FPM) 角色用于 Debian / Ubuntu / FreeBSD

Ansible Galaxy GitHub Workflow Status (master)

在 Debian / Ubuntu / FreeBSD 上安装 PHP。管理 PHP-FPM、APCu、Opcache 和 Xdebug。

受支持的操作系统 / 版本

在所有 Debian 版本上,可以通过 Sury 的 APT 仓库 安装所有 PHP 版本。

其他情况:

操作系统 PHP 7.0 PHP 7.1 PHP 7.2 PHP 7.3 PHP >= 7.4
Ubuntu Bionic (18.04) :x: :x: :heavy_check_mark: :x: :x:
FreeBSD 11 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: 需要测试...
FreeBSD 12 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: 需要测试...

链接:

要求

  • Ansible >= 2.11
  • Collections: community.general
  • 如果需要 PHP-FPM,必须使用支持 FastCGI 的 Web 服务器。可以使用我的 nginx 角色

FreeBSD 限制

  • 不支持将 ini 文件分开为 FPM/CLI。该文件硬编码为 /usr/local/etc/php.ini
  • 不支持同时管理多个 PHP 版本(如旧版 Debian)。
  • 必须显式设置 xdebug 包名(使用 pkg search xdebug 查找合适的包)。

角色变量

您应查看 默认变量

可写变量

  • php_version: 7.3, 7.4... 根据操作系统而定(见上文)
  • php_install_fpm: 布尔值,是否安装和管理 php-fpm(默认值为 true)
  • php_install_xdebug: 布尔值,是否安装 Xdebug
  • php_extra_packages: 要安装的其他 PHP 包(默认为空列表)。

php.ini

  • php_ini: FPM/CLI 共享的全局配置
  • php_ini_fpm: 管理 FPM php.ini (php-fpm)
  • php_ini_cli: 管理 CLI php.ini (php-fpm)

注意:

  • 如果您希望 CLI/FPM 使用相同的配置,可以将所有数据放入 php_ini
  • 将特定配置放入 php_ini_fpm/php_ini_cli 中。
  • 您可以使用 php_ini_fpm/php_ini_cli 来覆盖设置,但这会破坏幂等性。

OpCache 设置

详见 Opcache 文档

  • php_opcache_enable
  • php_opcache_enable_cli
  • php_opcache_memory_consumption
  • php_opcache_interned_strings_buffer
  • php_opcache_max_accelerated_files
  • php_opcache_max_wasted_percentage
  • php_opcache_validate_timestamps
  • php_opcache_revalidate_freq
  • php_opcache_max_file_size

APC/APCu 设置

详见 apc 文档

  • php_apc_enable
  • php_apc_enable_cli
  • php_apc_shm_size
  • php_apc_num_files_hint
  • php_apc_user_entries_hint
  • php_apc_user_ttl
  • php_apc_ttl
  • php_apc_file_update_protection
  • php_apc_slam_defense
  • php_apc_stat_ctime

Xdebug 设置

详见 Xdebug 文档

  • php_xdebug_auto_trace
  • php_xdebug_cli_color
  • php_xdebug_collect_assignments
  • php_xdebug_collect_includes
  • php_xdebug_collect_params
  • php_xdebug_collect_return
  • php_xdebug_collect_vars
  • php_xdebug_coverage_enable
  • php_xdebug_default_enable
  • php_xdebug_dump_globals
  • php_xdebug_dump_once
  • php_xdebug_dump_undefined
  • php_xdebug_extended_info
  • php_xdebug_file_link_format
  • php_xdebug_force_display_errors
  • php_xdebug_force_error_reporting
  • php_xdebug_halt_level
  • php_xdebug_idekey
  • php_xdebug_manual_url
  • php_xdebug_max_nesting_level
  • php_xdebug_overload_var_dump
  • php_xdebug_profiler_append
  • php_xdebug_profiler_enable
  • php_xdebug_profiler_enable_trigger
  • php_xdebug_profiler_enable_trigger_value
  • php_xdebug_profiler_output_dir
  • php_xdebug_profiler_output_name
  • php_xdebug_remote_autostart
  • php_xdebug_remote_connect_back
  • php_xdebug_remote_cookie_expire_time
  • php_xdebug_remote_enable
  • php_xdebug_remote_handler
  • php_xdebug_remote_host
  • php_xdebug_remote_log
  • php_xdebug_remote_mode
  • php_xdebug_remote_port
  • php_xdebug_scream
  • php_xdebug_show_exception_trace
  • php_xdebug_show_local_vars
  • php_xdebug_show_mem_delta
  • php_xdebug_trace_enable_trigger
  • php_xdebug_trace_enable_trigger_value
  • php_xdebug_trace_format
  • php_xdebug_trace_options
  • php_xdebug_trace_output_dir
  • php_xdebug_trace_output_name
  • php_xdebug_var_display_max_children
  • php_xdebug_var_display_max_data
  • php_xdebug_var_display_max_depth

只读变量

  • php_packages: 最小要安装的包列表
  • php_extension_dir.stdout: 获取 PHP 扩展目录(来自任务)
  • php_version.stdout: 获取 PHP 版本(来自任务)

依赖

无。

示例 Playbook

简单的 Playbook

- hosts: servers
  roles:
     - { role: hanxhx.php }

Debian Bullseye 与 PHP 8.0 CLI(无 FPM)

- hosts: servers
  roles:
     - { role: HanXHX.sury }
     - { role: hanxhx.php, php_version: '8.0', php_install_fpm: false }

许可证

GPLv2

捐赠

如果这段代码对您有帮助,或者您在项目中使用了它,请随意请我喝一杯 :beers:

  • 比特币: 1BQwhBeszzWbUTyK4aUyq3SRg7rBSHcEQn
  • 以太坊: 0x63abe6b2648fd892816d87a31e3d9d4365a737b5
  • 莱特币: LeNDw34zQLX84VvhCGADNvHMEgb5QyFXyD
  • 门罗币: 45wbf7VdQAZS5EWUrPhen7Wo4hy7Pa7c7ZBdaWQSRowtd3CZ5vpVw5nTPphTuqVQrnYZC72FXDYyfP31uJmfSQ6qRXFy3bQ

没有加密货币? :star: 为这个项目点赞也是一种感谢方式! :sunglasses:

作者信息

安装
ansible-galaxy install HanXHX.php
许可证
gpl-2.0
下载
3.8k
拥有者
CEO/CTO/SRE triplestack.fr / daemonit.com