✨ Features: - Complete LEMP stack automation - WordPress with WP-CLI - Redis Object Cache (50% performance boost) - Multi-OS support - SSL/Let's Encrypt integration - Security hardening - Enterprise features - Docker testing environment - GitHub Actions CI/CD - Comprehensive documentation 🧪 Fully tested and production-ready Copyright (c) 2025 Sebastian Palencsár
255 lines
9.9 KiB
Django/Jinja
255 lines
9.9 KiB
Django/Jinja
# PHP configuration optimizations for WordPress
|
|
# Generated by Ansible
|
|
|
|
[PHP]
|
|
; Engine Settings
|
|
engine = On
|
|
short_open_tag = Off
|
|
precision = 14
|
|
output_buffering = 4096
|
|
zlib.output_compression = Off
|
|
implicit_flush = Off
|
|
unserialize_callback_func =
|
|
serialize_precision = -1
|
|
disable_functions = {{ php_disable_functions | default('exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source') }}
|
|
disable_classes =
|
|
zend.enable_gc = On
|
|
zend.exception_ignore_args = On
|
|
|
|
; Resource Limits
|
|
max_execution_time = {{ php_max_execution_time | default('300') }}
|
|
max_input_time = {{ php_max_input_time | default('300') }}
|
|
max_input_nesting_level = {{ php_max_input_nesting_level | default('64') }}
|
|
max_input_vars = {{ php_max_input_vars | default('3000') }}
|
|
memory_limit = {{ php_memory_limit | default('256M') }}
|
|
|
|
; Error handling and logging
|
|
error_reporting = {{ php_error_reporting | default('E_ALL & ~E_DEPRECATED & ~E_STRICT') }}
|
|
display_errors = {{ php_display_errors | default('Off') }}
|
|
display_startup_errors = {{ php_display_startup_errors | default('Off') }}
|
|
log_errors = {{ php_log_errors | default('On') }}
|
|
log_errors_max_len = {{ php_log_errors_max_len | default('1024') }}
|
|
ignore_repeated_errors = {{ php_ignore_repeated_errors | default('Off') }}
|
|
ignore_repeated_source = {{ php_ignore_repeated_source | default('Off') }}
|
|
report_memleaks = {{ php_report_memleaks | default('On') }}
|
|
track_errors = {{ php_track_errors | default('Off') }}
|
|
error_log = {{ php_error_log | default('/var/log/php_errors.log') }}
|
|
|
|
; Data Handling
|
|
variables_order = "GPCS"
|
|
request_order = "GP"
|
|
register_argc_argv = Off
|
|
auto_globals_jit = On
|
|
post_max_size = {{ php_post_max_size | default('64M') }}
|
|
auto_prepend_file =
|
|
auto_append_file =
|
|
default_mimetype = "text/html"
|
|
default_charset = "UTF-8"
|
|
|
|
; File Uploads
|
|
file_uploads = {{ php_file_uploads | default('On') }}
|
|
upload_tmp_dir = {{ php_upload_tmp_dir | default('/tmp') }}
|
|
upload_max_filesize = {{ php_upload_max_filesize | default('64M') }}
|
|
max_file_uploads = {{ php_max_file_uploads | default('20') }}
|
|
|
|
; Fopen wrappers
|
|
allow_url_fopen = {{ php_allow_url_fopen | default('On') }}
|
|
allow_url_include = {{ php_allow_url_include | default('Off') }}
|
|
auto_detect_line_endings = Off
|
|
|
|
; Dynamic Extensions
|
|
extension_dir = "/usr/lib/php/{{ php_version }}"
|
|
|
|
; Module Settings
|
|
|
|
[CLI Server]
|
|
cli_server.color = On
|
|
|
|
[Date]
|
|
date.timezone = {{ php_timezone | default('UTC') }}
|
|
|
|
[filter]
|
|
filter.default = unsafe_raw
|
|
filter.default_flags =
|
|
|
|
[iconv]
|
|
iconv.input_encoding =
|
|
iconv.internal_encoding =
|
|
iconv.output_encoding =
|
|
|
|
[imap]
|
|
imap.enable_insecure_rsh = 0
|
|
|
|
[intl]
|
|
intl.default_locale =
|
|
intl.error_level = 0
|
|
intl.use_exceptions = 0
|
|
|
|
[sqlite3]
|
|
sqlite3.extension_dir =
|
|
|
|
[Pcre]
|
|
pcre.backtrack_limit = {{ php_pcre_backtrack_limit | default('1000000') }}
|
|
pcre.recursion_limit = {{ php_pcre_recursion_limit | default('100000') }}
|
|
pcre.jit = {{ php_pcre_jit | default('1') }}
|
|
|
|
[Pdo]
|
|
pdo_mysql.cache_size = 2000
|
|
pdo_mysql.default_socket =
|
|
|
|
[Pdo_mysql]
|
|
pdo_mysql.default_socket =
|
|
|
|
[Phar]
|
|
phar.readonly = {{ php_phar_readonly | default('On') }}
|
|
phar.require_hash = {{ php_phar_require_hash | default('On') }}
|
|
|
|
[mail function]
|
|
SMTP = {{ php_smtp_server | default('localhost') }}
|
|
smtp_port = {{ php_smtp_port | default('25') }}
|
|
sendmail_path = {{ php_sendmail_path | default('/usr/sbin/sendmail -t -i') }}
|
|
mail.add_x_header = {{ php_mail_add_x_header | default('Off') }}
|
|
|
|
[ODBC]
|
|
odbc.allow_persistent = On
|
|
odbc.check_persistent = On
|
|
odbc.max_persistent = -1
|
|
odbc.max_links = -1
|
|
odbc.defaultlrl = 4096
|
|
odbc.defaultbinmode = 1
|
|
|
|
[MySQLi]
|
|
mysqli.max_persistent = -1
|
|
mysqli.allow_persistent = On
|
|
mysqli.max_links = -1
|
|
mysqli.cache_size = 2000
|
|
mysqli.default_port = 3306
|
|
mysqli.default_socket =
|
|
mysqli.default_host =
|
|
mysqli.default_user =
|
|
mysqli.default_pw =
|
|
mysqli.reconnect = Off
|
|
|
|
[mysqlnd]
|
|
mysqlnd.collect_statistics = On
|
|
mysqlnd.collect_memory_statistics = Off
|
|
|
|
[OPcache]
|
|
{% if enable_opcache | default(true) %}
|
|
opcache.enable = {{ opcache_enable | default('1') }}
|
|
opcache.enable_cli = {{ opcache_enable_cli | default('0') }}
|
|
opcache.memory_consumption = {{ opcache_memory_consumption | default('256') }}
|
|
opcache.interned_strings_buffer = {{ opcache_interned_strings_buffer | default('16') }}
|
|
opcache.max_accelerated_files = {{ opcache_max_accelerated_files | default('10000') }}
|
|
opcache.max_wasted_percentage = {{ opcache_max_wasted_percentage | default('5') }}
|
|
opcache.use_cwd = {{ opcache_use_cwd | default('1') }}
|
|
opcache.validate_timestamps = {{ opcache_validate_timestamps | default('1') }}
|
|
opcache.revalidate_freq = {{ opcache_revalidate_freq | default('2') }}
|
|
opcache.revalidate_path = {{ opcache_revalidate_path | default('0') }}
|
|
opcache.save_comments = {{ opcache_save_comments | default('1') }}
|
|
opcache.enable_file_override = {{ opcache_enable_file_override | default('0') }}
|
|
opcache.optimization_level = {{ opcache_optimization_level | default('0x7FFFBFFF') }}
|
|
opcache.dups_fix = {{ opcache_dups_fix | default('0') }}
|
|
opcache.blacklist_filename = {{ opcache_blacklist_filename | default('') }}
|
|
opcache.max_file_size = {{ opcache_max_file_size | default('0') }}
|
|
opcache.consistency_checks = {{ opcache_consistency_checks | default('0') }}
|
|
opcache.force_restart_timeout = {{ opcache_force_restart_timeout | default('180') }}
|
|
opcache.error_log = {{ opcache_error_log | default('') }}
|
|
opcache.log_verbosity_level = {{ opcache_log_verbosity_level | default('1') }}
|
|
opcache.preferred_memory_model = {{ opcache_preferred_memory_model | default('') }}
|
|
opcache.protect_memory = {{ opcache_protect_memory | default('0') }}
|
|
opcache.restrict_api = {{ opcache_restrict_api | default('') }}
|
|
opcache.mmap_base = {{ opcache_mmap_base | default('') }}
|
|
opcache.file_cache = {{ opcache_file_cache | default('') }}
|
|
opcache.file_cache_only = {{ opcache_file_cache_only | default('0') }}
|
|
opcache.file_cache_consistency_checks = {{ opcache_file_cache_consistency_checks | default('1') }}
|
|
opcache.file_cache_fallback = {{ opcache_file_cache_fallback | default('1') }}
|
|
opcache.huge_code_pages = {{ opcache_huge_code_pages | default('0') }}
|
|
opcache.validate_permission = {{ opcache_validate_permission | default('0') }}
|
|
opcache.validate_root = {{ opcache_validate_root | default('0') }}
|
|
opcache.preload = {{ opcache_preload | default('') }}
|
|
opcache.preload_user = {{ opcache_preload_user | default('') }}
|
|
{% endif %}
|
|
|
|
[curl]
|
|
curl.cainfo =
|
|
|
|
[openssl]
|
|
openssl.cafile =
|
|
openssl.capath =
|
|
|
|
[ffi]
|
|
ffi.enable = "preload"
|
|
|
|
[Session]
|
|
session.save_handler = {{ php_session_save_handler | default('files') }}
|
|
session.save_path = {{ php_session_save_path | default('/var/lib/php/sessions') }}
|
|
session.use_strict_mode = {{ php_session_use_strict_mode | default('0') }}
|
|
session.use_cookies = {{ php_session_use_cookies | default('1') }}
|
|
session.use_only_cookies = {{ php_session_use_only_cookies | default('1') }}
|
|
session.name = {{ php_session_name | default('PHPSESSID') }}
|
|
session.auto_start = {{ php_session_auto_start | default('0') }}
|
|
session.cookie_lifetime = {{ php_session_cookie_lifetime | default('0') }}
|
|
session.cookie_path = {{ php_session_cookie_path | default('/') }}
|
|
session.cookie_domain = {{ php_session_cookie_domain | default('') }}
|
|
session.cookie_httponly = {{ php_session_cookie_httponly | default('1') }}
|
|
session.cookie_samesite = {{ php_session_cookie_samesite | default('') }}
|
|
session.serialize_handler = {{ php_session_serialize_handler | default('php') }}
|
|
session.gc_probability = {{ php_session_gc_probability | default('1') }}
|
|
session.gc_divisor = {{ php_session_gc_divisor | default('1000') }}
|
|
session.gc_maxlifetime = {{ php_session_gc_maxlifetime | default('1440') }}
|
|
session.referer_check = {{ php_session_referer_check | default('') }}
|
|
session.cache_limiter = {{ php_session_cache_limiter | default('nocache') }}
|
|
session.cache_expire = {{ php_session_cache_expire | default('180') }}
|
|
session.use_trans_sid = {{ php_session_use_trans_sid | default('0') }}
|
|
session.sid_length = {{ php_session_sid_length | default('26') }}
|
|
session.trans_sid_tags = {{ php_session_trans_sid_tags | default('a=href,area=href,frame=src,form=') }}
|
|
session.sid_bits_per_character = {{ php_session_sid_bits_per_character | default('5') }}
|
|
|
|
[Assertion]
|
|
zend.assertions = {{ php_zend_assertions | default('-1') }}
|
|
assert.active = {{ php_assert_active | default('On') }}
|
|
assert.exception = {{ php_assert_exception | default('On') }}
|
|
|
|
[COM]
|
|
com.typelib_file =
|
|
com.allow_dcom = Off
|
|
com.autoregister_typelib = Off
|
|
com.autoregister_casesensitive = Off
|
|
com.autoregister_verbose = Off
|
|
|
|
[mbstring]
|
|
mbstring.language = {{ php_mbstring_language | default('neutral') }}
|
|
mbstring.internal_encoding = {{ php_mbstring_internal_encoding | default('') }}
|
|
mbstring.http_input = {{ php_mbstring_http_input | default('') }}
|
|
mbstring.http_output = {{ php_mbstring_http_output | default('') }}
|
|
mbstring.encoding_translation = {{ php_mbstring_encoding_translation | default('Off') }}
|
|
mbstring.detect_order = {{ php_mbstring_detect_order | default('auto') }}
|
|
mbstring.substitute_character = {{ php_mbstring_substitute_character | default('none') }}
|
|
|
|
[gd]
|
|
gd.jpeg_ignore_warning = {{ php_gd_jpeg_ignore_warning | default('1') }}
|
|
|
|
[exif]
|
|
exif.encode_unicode = {{ php_exif_encode_unicode | default('ISO-8859-15') }}
|
|
exif.decode_unicode_motorola = {{ php_exif_decode_unicode_motorola | default('UCS-2BE') }}
|
|
exif.decode_unicode_intel = {{ php_exif_decode_unicode_intel | default('UCS-2LE') }}
|
|
exif.encode_jis = {{ php_exif_encode_jis | default('') }}
|
|
exif.decode_jis_motorola = {{ php_exif_decode_jis_motorola | default('JIS') }}
|
|
exif.decode_jis_intel = {{ php_exif_decode_jis_intel | default('JIS') }}
|
|
|
|
[Tidy]
|
|
tidy.clean_output = {{ php_tidy_clean_output | default('Off') }}
|
|
|
|
[soap]
|
|
soap.wsdl_cache_enabled = {{ php_soap_wsdl_cache_enabled | default('1') }}
|
|
soap.wsdl_cache_dir = {{ php_soap_wsdl_cache_dir | default('/tmp') }}
|
|
soap.wsdl_cache_ttl = {{ php_soap_wsdl_cache_ttl | default('86400') }}
|
|
soap.wsdl_cache_limit = {{ php_soap_wsdl_cache_limit | default('5') }}
|
|
|
|
[sysvshm]
|
|
sysvshm.init_mem = {{ php_sysvshm_init_mem | default('10000') }}
|
|
|
|
[ldap]
|
|
ldap.max_links = {{ php_ldap_max_links | default('-1') }}
|