Instalação avançada da configuração
Lizmap através de um proxy/reverse proxy
Por vezes, alguns URLs no Lizmap podem não ser o que se espera. Por exemplo, existe a utilização do protocolo «http» em vez do protocolo «https». Ou podem conter uma porta indesejada (http://mydomain:5468/
em vez de http://mydomain/
). Ou o URL pode não conter o nome real do domínio.
Na maioria dos casos, isso acontece porque o servidor web ou PHP-fpm está por trás de um servidor web principal (que funciona como um proxy ou proxy reverso), e então os parâmetros de ambiente fornecidos pelo PHP ou pelo servidor web de backend não estão corretos.
É possível fornecer informação ao Lizmap para forçar o protocolo HTTPS, utilizar o domínio correto ou utilizar a porta adequada.
No ficheiro localconfig.ini.php
, é possível utilizar os seguintes parâmetros de configuração.
Para forçar a utilização da porta 80 (true) ou da 8080, por exemplo, com o protocolo http:
forceHTTPPort = true
# or
forceHTTPPort = 8080
Para forçar a utilização da porta 443 (true) ou da 8443, por exemplo, com o protocolo https:
forceHTTPSPort = true
# or
forceHTTPSPort = 8443
Para especificar o nome de domínio da aplicação Lizmap, se o Lizmap não o conseguir descobrir:
domainName = www.example.com
Se o caminho do URL do servidor web de backend não corresponde ao caminho da URL do servidor web frontal (ex: o proxy redireciona urls como http://example.com/index.php
para o servidor web http://backend.example.com/foo/bar/index.php
), deverá ser indicado o caminho do URL «público» (basePath) e o caminho do URL de backend (backendBasePath):
[urlengine]
basePath= /
backendBasePath = /foo/bar
Se o proxy reverso redirecionar os pedidos HTTPS para HTTP, deverá ser desativada a verificação HTTPS:
[urlengine]
checkHttpsOnParsing = off
A partir do Lizmap 3.0.18 e 3.1.6, é possível forçar todo o URL gerado através do protocolo HTTPS, quando o Lizmap desconhece qual é o protocolo utilizado para pedidos ao proxy reverso:
[urlengine]
checkHttpsOnParsing = off
forceProxyProtocol = https
Usando as variáveis de ambiente
Se algumas credenciais ou parâmetros estiverem disponíveis em variáveis de ambiente, é possível indicar a utilização dos mesmos nos ficheiros localconfig.ini.php
ou profiles.ini.php
. É necessário que as variáveis de ambiente estejam disponíveis para o processo PHP-FPM ou para o processo APACHE/NGINX.
Dentro desses ficheiros, utilizar a sintaxe ${VARIABLE_NAME}
.
Por exemplo, para indicar as credenciais do PostgreSQL guardadas nessas variáveis:
LIZMAP_PGSQL_HOST=localhost
LIZMAP_PGSQL_DATABASE=lizmap
LIZMAP_PGSQL_LOGIN=admin
LIZMAP_PGSQL_PASSWORD="Sup3Rp4ssw0rd!"
É necessário escrever esta configuração no ficheiro profiles.ini.php:
[jdb:jauth]
driver="pgsql"
database=${LIZMAP_PGSQL_DATABASE}
host=${LIZMAP_PGSQL_HOST}
user=${LIZMAP_PGSQL_LOGIN}
password=${LIZMAP_PGSQL_PASSWORD}