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_enablephp_opcache_enable_cliphp_opcache_memory_consumptionphp_opcache_interned_strings_bufferphp_opcache_max_accelerated_filesphp_opcache_max_wasted_percentagephp_opcache_validate_timestampsphp_opcache_revalidate_freqphp_opcache_max_file_size
APC/APCu 设置
详见 apc 文档
php_apc_enablephp_apc_enable_cliphp_apc_shm_sizephp_apc_num_files_hintphp_apc_user_entries_hintphp_apc_user_ttlphp_apc_ttlphp_apc_file_update_protectionphp_apc_slam_defensephp_apc_stat_ctime
Xdebug 设置
详见 Xdebug 文档
php_xdebug_auto_tracephp_xdebug_cli_colorphp_xdebug_collect_assignmentsphp_xdebug_collect_includesphp_xdebug_collect_paramsphp_xdebug_collect_returnphp_xdebug_collect_varsphp_xdebug_coverage_enablephp_xdebug_default_enablephp_xdebug_dump_globalsphp_xdebug_dump_oncephp_xdebug_dump_undefinedphp_xdebug_extended_infophp_xdebug_file_link_formatphp_xdebug_force_display_errorsphp_xdebug_force_error_reportingphp_xdebug_halt_levelphp_xdebug_idekeyphp_xdebug_manual_urlphp_xdebug_max_nesting_levelphp_xdebug_overload_var_dumpphp_xdebug_profiler_appendphp_xdebug_profiler_enablephp_xdebug_profiler_enable_triggerphp_xdebug_profiler_enable_trigger_valuephp_xdebug_profiler_output_dirphp_xdebug_profiler_output_namephp_xdebug_remote_autostartphp_xdebug_remote_connect_backphp_xdebug_remote_cookie_expire_timephp_xdebug_remote_enablephp_xdebug_remote_handlerphp_xdebug_remote_hostphp_xdebug_remote_logphp_xdebug_remote_modephp_xdebug_remote_portphp_xdebug_screamphp_xdebug_show_exception_tracephp_xdebug_show_local_varsphp_xdebug_show_mem_deltaphp_xdebug_trace_enable_triggerphp_xdebug_trace_enable_trigger_valuephp_xdebug_trace_formatphp_xdebug_trace_optionsphp_xdebug_trace_output_dirphp_xdebug_trace_output_namephp_xdebug_var_display_max_childrenphp_xdebug_var_display_max_dataphp_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_
