The Windows agent config template was missing the active
UserParameterDir=${ZBX_USERPARAMETERDIR} line. The Windows agent Dockerfile
sets ZBX_USERPARAMETERDIR and creates the C:\zabbix\user_scripts directory,
but because the option is never written to the config, user parameter scripts
placed there are not loaded by the agent.
The Linux agent, Linux agent2, and Windows agent2 templates all set this
option; only the Windows agent template was missing it. Add it to match.
The "Known issues" note about ZBX_ALIAS tells users to drop extra Alias
config files into /etc/zabbix/zabbix_agent.d, but no agent includes that
directory.
zabbix_agentd.conf includes /etc/zabbix/zabbix_agentd.d/*.conf, and
zabbix_agent2.conf includes /etc/zabbix/zabbix_agentd.d/*.conf as well
(plus /etc/zabbix/zabbix_agent2.d/*.conf). The correct shared directory is
zabbix_agentd.d (note the "d"), which is also created in the image and
documented as a volume earlier in the same README. Files placed under
zabbix_agent.d are silently ignored, so user-provided aliases never load.
Fix the path to zabbix_agentd.d in the agent and agent2 READMEs.
ZBX_JAVAGATEWAY_ENABLE is no longer handled by any entrypoint since the
images were migrated to native Zabbix environment variables. The Java
gateway is now configured directly via ZBX_JAVAGATEWAY (JavaGateway) and
ZBX_STARTJAVAPOLLERS (StartJavaPollers).
The obsolete variable was still documented in the server/proxy READMEs and
shipped in the example env files and kubernetes.yaml, where it does nothing.
Worse, the README described it as the way to enable the Java gateway, so a
user setting only ZBX_JAVAGATEWAY_ENABLE=true would get no Java checks.
Remove all remaining references (READMEs, env_vars/.env_srv, env_vars/.env_prx,
kubernetes.yaml). The native ZBX_JAVAGATEWAY / ZBX_STARTJAVAPOLLERS variables
are kept, so existing setups keep working.
The web config redesign changed the HTTP-auth lookup from
getenv('ZBX_ALLOW_HTTP_AUTH') to env_bool('ALLOW_HTTP_AUTH', true),
dropping the ZBX_ prefix. The entrypoint (php.sh) still sets and exports
ZBX_ALLOW_HTTP_AUTH, and every web image README documents ZBX_ALLOW_HTTP_AUTH,
so the frontend now reads a variable that is never set and always falls back
to the default (true).
As a result, setting ZBX_ALLOW_HTTP_AUTH=false no longer disables HTTP
authentication in the frontend. Restore the documented variable name.
env_string('DB_SERVER_PORT') returns '' when the variable is unset, and that
empty string is passed to mysqli::real_connect()'s ?int $port argument in
MysqlDbBackend::connect(), throwing a fatal TypeError under PHP 8 that breaks
every frontend page (HTTP 500) on socket / no-port setups. Regressed in the
web config redesign, which replaced getenv() (returns false -> int 0) with
env_string() (returns '').
Add an env_int() helper that maps both unset and empty to the default and
returns an int, and use it for the DB port.