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.