4.9 KiB
4.9 KiB
Ansible PHP (+FPM) role for Debian
Install PHP (php-fpm optional) on Debian. Manage APCu, Opcache, Xdebug.
Managed OS / Versions
OS | PHP 5.6 | PHP 7.0 | PHP 7.1 |
---|---|---|---|
Debian Jessie | Yes (from Debian) | Yes (from Dotdeb or Sury) | Yes (from Dotdeb or Sury) |
Debian Strech | No | Yes (from Debian) | Yes (from Sury) |
Requirements
If you need PHP-FPM, you must install a webserver with FastCGI support. You can use my nginx role. On Debian Jessie, if you want PHP7.0, you must use Dotdeb. You can use my dotdeb role.
Role Variables
You should look at default vars.
Writable vars
php_version
: 5.6 (default), 7.0, 7.1php_install_fpm
: boolean, install and manage php-fpm (default is true)php_install_xdebug
: boolean, install Xdebugphp_extra_packages
: additional php packages to install (default is an empty list).
php.ini
php_ini
: global configuration shared beween FPM/CLIphp_ini_fpm
: manage FPM php.ini (php-fpm)php_ini_cli
: manage CLI php.ini (php-fpm)
Note:
- If you want exactly same configuration for CLI/FPM. You can put all your data in
php_ini
. - Put specific configuration in
php_ini_fpm
/php_ini_cli
. - You can override with
php_ini_fpm
/php_ini_cli
, but it breaks idempotence.
OpCache settings
See Opcache doc
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 settings
See apc doc
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 settings
See Xdebug doc
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
Read only vars
php_packages
: minimal package list to installphp_extension_dir.stdout
: get php extension dir (from task)php_version.stdout
: get php version (from task)
Dependencies
None.
Example Playbook
Simple Playbook
- hosts: servers
roles:
- { role: HanXHX.php }
Debian Jessie with PHP 7.0 CLI (no FPM)
- hosts: jessie-servers
roles:
- { role: HanXHX.dotdeb }
- { role: HanXHX.php, php_version: '7.0', php_install_fpm: false }
License
GPLv2
Author Information
- Twitter: @hanxhx_
- All issues, pull-requests are welcome :)