Instalação padrão
8 minute read
Estas instruções são para uma instalação baseada em apache, mas podem ser facilmente ajustadas para funcionar com nginx.
Requisitos do servidor
- A versão mínima do PHP é 8.0
- O servidor da web pode ser apache ou nginx. Para nginx, verifique a configuração nos arquivos do docker para ajustar essas instruções, que são para o apache.
- Requer um banco de dados SQL, MySQL e MariaDB foram testados, mas também pode funcionar com Postgres. Testado com MYSQL.v8 e MariaDB.v15.1.
- Extensões PHP necessárias ‘openssl’, ‘pdo’, ‘pdo_mysql’, ‘mbstring’, ’tokenizer’, ‘xlm’, ‘dom’, ‘gd’, ’exif’, ‘bcmath’
- Pandoc é usado para traduzir o código LaTeX usado nas referências bibliográficas. Não é necessário para a instalação, mas é sugerido para uma melhor experiência do usuário.
- Requer Supervisor, que é necessário para os jobs de usuário
Criar usuário dedicado
A maneira recomendada de instalar o OpenDataBio para produção é usando um usuário de sistema dedicado. Nestas instruções, esse usuário é odbserver.
Baixar OpenDataBio
Faça login como seu Usuário dedicado
e baixe ou clone este software para onde deseja instalá-lo.
Aqui assumimos que é /home/odbserver/opendatabio
para que os arquivos de instalação residam neste diretório. Se este não for o seu caminho, altere abaixo sempre que aplicável.
Baixar OpenDataBio
Prepare o Servidor
Primeiro, instale os softwares Apache, MySQL, PHP, Pandoc e Supervisor. Em um sistema Debian, você também precisa instalar algumas extensões PHP e ativá-las:
#EXEMPLO EM UBUNTU 22.04
#repositórios
apt-get install software-properties-common
add-apt-repository ppa:ondrej/php
add-apt-repository ppa:ondrej/php ppa:ondrej/apache2
add-apt-repository ppa:ondrej/php
add-apt-repository ppa:ondrej/apache2
apt update
#instala o php
apt install php8.2 -y
apt update
apt upgrade
#instala extensoes (modulos) do php
php --version
#quais os modulos instalados?
php -m
#se algum desses nao estive, instale
apt install php8.2-{bcmath,xml,mysql,zip,intl,gd,cli,curl,mbstring,sqlite3}
#install apache
apt install libapache2-mod-php8.2
#install pandoc
apt install pandoc
#install supervisor (needed for jobs)
apt-get install supervisor -y
a2enmod php8.2
phpenmod mbstring
phpenmod xml
phpenmod dom
phpenmod gd
a2enmod rewrite
a2ensite
systemctl restart apache2.service
#To check if they are installed:
php -m | grep -E 'mbstring|cli|xml|gd|mysql|pandoc|supervisord|bcmath|pcntl|zip'
Adicione o seguinte à sua configuração do Apache.
- Mude
/home/odbserver/opendatabio
para o seu caminho (os arquivos devem estar acessíveis pelo apache) - Você pode criar um novo arquivo na pasta sites-available:
/etc/apache2/sites-available/opendatabio.conf
e colocar o seguinte código nele.
<IfModule alias_module>
Alias /opendatabio /home/odbserver/opendatabio/public/
Alias /fonts /home/odbserver/opendatabio/public/fonts
Alias /images /home/odbserver/opendatabio/public/images
<Directory "/home/odbserver/opendatabio/public">
Require all granted
AllowOverride All
</Directory>
</IfModule>
Isso fará com que o Apache redirecione todas as solicitações de /
para a pasta correta, e também permitirá que o arquivo .htaccess
fornecido controle as regras de reescrita, de forma que os URLs sejam bonitos. Se desejar acessar o arquivo apontando o navegador para a raiz do servidor, adicione também a seguinte diretiva:
RedirectMatch ^/$ /
Configure seu arquivo php.ini. O instalador pode reclamar da falta de extensões do PHP, então lembre-se de ativá-las nos arquivos cli (/etc/php/8.0/cli/php.ini
e web ini (/etc/php/8.0/fpm/php.ini
) para PHP!
Atualize os valores para as seguintes variáveis:
Encontre os arquivos
php -i | grep 'Configuration File'
Mudar:
memory_limit should be at least 512M
post_max_size should be at least 30M
upload_max_filesize should be at least 30M
Algo como:
[PHP]
allow_url_fopen=1
memory_limit = 512M
post_max_size = 100M
upload_max_filesize = 100M
Habilite os módulos Apache ‘mod_rewrite’ e ‘mod_alias’ e reinicie o servidor:
sudo a2enmod rewrite
sudo a2ensite
sudo systemctl restart apache2.service
Mysql Charset e Collation
- Você deve adicionar o seguinte ao seu arquivo de configuração do SQL (mariadb.cnf ou my.cnf), ou seja, o conjunto de caracteres e o agrupamento que você escolher para sua instalação devem corresponder aos do
config/database.php
[mysqld]
character-set-client-handshake = FALSE #without this, there is no effect of the init_connect
collation-server = utf8mb4_unicode_ci
init-connect = "SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci"
character-set-server = utf8mb4
log-bin-trust-function-creators = 1
sort_buffer_size = 4294967295 #this is needed for geometry (bug in mysql:8)
[mariadb]
max_allowed_packet=100M
innodb_log_file_size=300M #no use for mysql
- Se estiver usando MariaDB e você ainda tiver problemas do tipo #1267 Illegal mix of collations, então verifique aqui sobre como consertar isso.
Configurar o supervisord
Configure o Supervisor, que é necessário para trabalhos. Crie um nome de arquivo opendatabio-worker.conf na pasta de configuração do Supervisor /etc/supervisor/ conf.d/opendatabio-worker.conf
com o seguinte conteúdo, ajustando o caminho conforme a sua instalação:
touch /etc/supervisor/conf.d/opendatabio-worker.conf
echo ";--------------
[program:opendatabio-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /home/odbserver/opendatabio/artisan queue:work --sleep=3 --tries=1 --timeout=0 --memory=512
autostart=true
autorestart=true
user=odbserver
numprocs=8
redirect_stderr=true
stdout_logfile=/home/odbserver/opendatabio/storage/logs/supervisor.log
;--------------" > /etc/supervisor/conf.d/opendatabio-worker.conf
Permissões de arquivos e pastas
Segurança
As permissões de pasta e arquivo são importantes para proteger a instalação em um servidor aberto publicamente. Se você não configurar corretamente, seu site poderá estar em risco.- As pastas
storage
ebootstrap/cache
precisam ter permissão de escrita para o usuário do servidor (geralmente www-data). Defina0775
para esses diretórios. - O arquivo de configuração
.env
precisa ter permissão0640
pois contém senhas. - Este link mostra diferentes métodos de definir permissões para um aplicativo Laravel.
Este é o método recomendado:
cd /home/odbserver
#note que odbserver e www-data podem mudar na sua configuracao
#defia as permissões tanto par ao seu usuário (aqui odbserver) como para o do apache (aqui www-data)
sudo chown -R odbserver:www-data opendatabio
sudo find ./opendatabio -type f -exec chmod 644 {} \;
sudo find ./opendatabio -type d -exec chmod 755 {} \;
cd /home/odbserver/opendatabio
sudo chgrp -R www-data storage bootstrap/cache
sudo chmod -R ug+rwx storage bootstrap/cache
#arquivo de configuracao .env para permissao 640
sudo chmod 640 ./.env
Instale OpenDataBio
-
Muitas distribuições Linux (Ubuntu e Debian) têm arquivos php.ini diferentes para a interface de linha de comando e para o Apache. Recomenda-se usar o arquivo de configuração do Apache ao executar o script de instalação, para que ele possa apontar corretamente as extensões ou configurações ausentes. Para fazer isso, encontre o caminho correto para o arquivo .ini e exporte-o **antes de usar o comando de instalação
php install
**.Por exemplo,
export PHPRC=/etc/php/8.0/fpm/php.ini
-
O script de instalação baixará o gerenciador de dependências Composer e todas as bibliotecas PHP necessárias listadas no arquivo
composer.json
. No entanto, se o seu servidor estiver atrás de um proxy, você deve instalar e configurar o Composer independentemente. Implementamos a configuração do PROXY, mas não a estamos mais usando e não testamos corretamente (se você precisar de ajustes, coloque um issue no GitLab). -
O script solicitará opções de configuração, que são armazenadas no arquivo de ambiente
.env
na pasta raiz do aplicativo.Você pode, opcionalmente, configurar este arquivo antes de executar o instalador:
- Crie um arquivo
.env
com o conteúdo docp .env.example .env
fornecido - Leia os comentários neste arquivo e ajuste de acordo
- Crie um arquivo
-
Execute o instalador:
cd /home/odbserver/opendatabio
php install
- Seed data - o script irá pergunar se você quer instalar Localidades e Taxons distribuídos com aplicativo. Esses dados são específicos de cada versão do OpenDataBio. Ver as notas das versões no repositório desses dados.
Pronto para usar
Se o script de instalação for concluído com sucesso, você está pronto para prosseguir! Aponte seu navegador parahttp://localhost/opendatabio
. As migrações de banco de dados incluem uma conta de administrador, com login admin@example.org
e senha password1
. Altere a senha após a instalação.
Problemas de instalação
Existem inúmeras maneiras possíveis de instalar o aplicativo, mas podem envolver mais etapas e configurações.
- se o navegador retornar 500|SERVER ERROR , você deve olhar para o último error em
storage/logs/laravel.log
. Se você tiver ERROR: No application encryption key has been specified execute:
chave artesanal php: gerar
php artisan config: cache
- Se você receber o erro failed to open stream: Connection timed out durante a execução do instalador, isso indica uma configuração incorreta do seu roteamento IPv6. A correção mais fácil é desabilitar o roteamento IPv6 no servidor.
- Se você receber erros durante alimentação aleatória do banco de dados, você pode tentar remover o banco de dados inteiramente e reconstruí-lo. Claro, não execute isso em uma instalação de produção.
php artisan migrate: fresh
- Você pode substituir as tabelas Locations e Taxons usando o seed data depois de reconstruir a base:
php seedodb
Configurações pós-instalação
- Se seus Jobs de importação/exportação não estão sendo processados, certifique-se de que o Supervisor esteja executando
systemctl start supervisord && systemctl enable supervisord
e verifique os arquivos de log emstorage/logs/supervisor.log
. - Você pode alterar várias variáveis de configuração para o aplicativo. O mais importante deles provavelmente está definido pelo instalador, mas há outras variáveis em
.env
e no arquivoconfig/app.php
que você pode alterar. Em particular, você pode querer alterar as configurações de idioma, fuso horário e e-mail. Executephp artisan config: cache
após atualizar os arquivos de configuração. - Para impedir que os rastreadores do mecanismo de pesquisa indexem seu banco de dados, adicione o seguinte ao seu “robots.txt” na pasta raiz do servidor (no Debian, /var/www/html):
User-agent: *
Disallow: /
- As pastas
storage
ebootstrap/cache
devem ser graváveis pelo usuário do Apache (geralmente www-data). Veja este link para um exemplo de como fazer isso. Defina a permissão0775
para esses diretórios.
Armazenamento e backups
Você pode alterar as configurações de armazenamento em config/filesystem.php
, onde pode definir o armazenamento baseado em nuvem, que pode ser necessário se muitos usuários enviarem arquivos de mídia, exigindo muito espaço em disco.
- Downloads de dados são colocados em fila como Jobs e um arquivo é gravado em uma pasta temporária,sendo excluído quando o trabalho é excluído pelo usuário. Esta pasta é definida como
download disk
no arquivo de configuração filesystem.php, que aponta parastorage/app/public/downloads
. Apagar esses arquivos temporários depende dos usuários, portanto, um trabalho de limpeza do cron pode ser aconselhável para implementar em sua instalação; - Arquivos de mídia são armazenados por padrão no
media disk
, que coloca os arquivos na pastastorage/app/ public/media
; - Para configuração regular crie ambos os diretórios
storage/app/public/downloads
estorage/app/public/media
com permissões graváveis pelo usuário do servidor - Lembre-se de incluir a pasta de mídia em um plano de backup;