Instalação com Nginx
Como instalar o OpenDataBio com nginx
2 minute read
Estas instruções são para instalação com nginx. Se preferir Apache, use a página de instalação padrão (Apache).
Requisitos do servidor
- Versão suportada do PHP >= 8.2 (8.3 recomendado).
- Servidor web: nginx.
- Banco SQL: MySQL ou MariaDB (testado com MySQL 8.0 e MariaDB 10.6+).
- Extensões PHP necessárias:
openssl,pdo,pdo_mysql,mbstring,tokenizer,xml,dom,gd,exif,bcmath,zip,curl,redis. - Redis para filas/cache.
- Tectonic para geração de PDF de etiquetas.
- Pandoc para renderização bibliográfica (recomendado).
- Supervisor para jobs em segundo plano.
Configuração do site no nginx
Crie o arquivo do site (exemplo):
sudo nano /etc/nginx/sites-available/opendatabio
Use este bloco base (ajuste domínio/caminhos):
server {
listen 80;
server_name seu-dominio.exemplo;
root /home/odbserver/opendatabio/public;
index index.php index.html;
charset utf-8;
client_max_body_size 300M;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_read_timeout 300;
}
location ~ /\. {
deny all;
}
}
Ative e recarregue:
sudo ln -s /etc/nginx/sites-available/opendatabio /etc/nginx/sites-enabled/opendatabio
sudo nginx -t
sudo systemctl reload nginx
Content Security Policy (CSP)
No mesmo arquivo do site nginx, adicione no bloco server { ... }:
add_header Content-Security-Policy-Report-Only "
default-src 'self';
base-uri 'self';
form-action 'self';
frame-ancestors 'self';
object-src 'none';
script-src 'self' 'unsafe-eval';
style-src 'self' 'unsafe-inline';
img-src 'self' data: https://server.arcgisonline.com https://*.tile.openstreetmap.org;
font-src 'self' data:;
connect-src 'self';
" always;
Depois recarregue:
sudo nginx -t
sudo systemctl reload nginx
Notas:
- Comece com
Report-Onlye depois migre para enforcement após validar logs. https://server.arcgisonline.comehttps://*.tile.openstreetmap.orgsão necessários para os tiles do mapa.
Instalações em subcaminho (/opendatabio)
Se sua instalação roda em subcaminho (por exemplo http://localhost/opendatabio), ajuste no .env:
APP_URL=http://localhost/opendatabio
ASSET_URL=http://localhost/opendatabio
Depois atualize os assets gerados e arquivos do Livewire:
php artisan livewire:publish --assets
php artisan optimize:clear
npm run build
Etapas compartilhadas da aplicação
Para evitar redundância, use as mesmas seções da instalação Apache (também válidas para implantação com nginx):
- Configurações de PHP (php.ini) em Instalação padrão
- Configurar o supervisord em Instalação padrão
- Permissões de arquivos e pastas em Instalação padrão
- Instale OpenDataBio em Instalação padrão
- Configurações pós-instalação em Instalação padrão