Files
ansible-lemp-wordpress/templates/php.ini.j2
Sebastian Palencsár 573224a36b 🚀 Initial release: Complete Ansible LEMP WordPress automation
 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
2025-06-18 18:24:55 +02:00

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') }}