HanXHX.php
Ansible PHP (+FPM) 角色用于 Debian / Ubuntu / FreeBSD
在 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
: 布尔值,是否安装 Xdebugphp_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:
作者信息
- 推特: @hanxhx_