Instalação diretamente no Linux (não recomendado)
Instalação Manual Ubuntu Ubuntu 18.04 e 20.04
Softwares Requeridos
Atualize os repositórios de referência de sua máquina:
Instale as dependências diversas:
Atualizar referências para a versão de ruby:
Nota: O comando update-alternatives --install precisa das informações
Instale a versão stable mais nova do nodejs:
Verificando se foi instalada a versão mais recente do NodeJS e do NPM:
Ubuntu18.04
Ubuntu20.04
Instale o postgresql e postgis:
Ubuntu18.04
Ubuntu20.04
Instale o php7.2, php7.2-fpm e extensões do php utilizadas no sistema
Ubuntu20.04
Ubuntu20.04 e Ubuntu18.04
Instale o nginx
Instale o gerenciador de dependências do PHP Composer
Também é importante ter o pacote zip instalado no seu servidor. Ele é usado para gerar o pacote com os anexos enviados nas inscrições. Caso ainda não tenha:
No Ubuntu o executável do NodeJS se chama nodejs, porém para o correto funcionamento das bibliotecas utilizadas, o executável deve se chamar node. Para isto criamos um link simbólico com o comando abaixo:
Ubuntu18.04
Ubuntu20.04 e Ubuntu18.04
Instalando os minificadores de código Javascript e CSS: uglify-js, uglifycss e autoprefixer:
Instalando o SASS, utilizado para compilar os arquivos CSS:
Clonando o Repositório
Primeiro vamos criar o usuário que rodará a aplicação e que será proprietário do banco de dados, definindo sua home para /srv e colocando-o no grupo www-data:
Vamos clonar o repositório usando o usuário criando, então precisamos primeiro "logar" com este usuário:
Agora vamos colocar o repositório na branch master. Caso queira você poderá ver todas as versões dosponíveis aqui
Agora vamos instalar as dependências de PHP utilizando o Composer.
Banco de Dados
Vamos voltar ao usuário root para criar o banco de dados.
Primeiro vamos criar o usuário no banco de dados com o mesmo nome do usuário do sistema
Agora vamos criar a base de dados para a aplicação com o mesmo nome do usuário
Criar as extensões necessárias no banco
Volte a "logar" com o usuário criado e importar o esquema da base de dados
Configurações de instalação
Primeiro crie um arquivo de configuração copiando o arquivo de template de configuração. Este arquivo está preparado para funcionar com este guia, utilizando o método de autenticação Fake.
Criando diretórios de log, files e estilo
Com o usuário criado, crie a pasta para os assets, para os uploads e para os uploads privados (arquivos protegidos, como anexos de inscrições em oportunidades):
Configuração do nginx
Precisamos criar o virtual host do nginx para a aplicação. Para isto crie, como root, o arquivo /etc/nginx/sites-available/mapas.conf
Eu costumo utilizar o vi, mas você pode usar o vim, nano e afins para fazer a edição deste arquivo
Coloque o conteúdo abaixo dentro do arquivo /etc/nginx/sites-available/mapas.conf criado anteriormente: Muita atenção aqui, pois você precisará subistituir todos os "meu.dominio.gov.br" pelo seu domínio ou IP fixo dependendo de qual for o seu caso.
Feita a alteração no arquivo, salve!
Crie o link para habilitar o virtual host
Remover o arquivo default da pasta /etc/nginx/sites-available/ e /etc/nginx/sites-enabled/
Configurações pool do php7.2-fpm: Crie o arquivo /etc/php/7.2/fpm/pool.d/mapas.conf
. Muita atenção na alteração da linha listen = /var/run/php/php7.2-fpm-meu.dominio.gov.br.sock
pois o nome do arquivo .sock precisará ser extamente como foi configurado do arquivo /etc/nginx/sites-available/mapas.conf
. O diretório /var/run/php/
podrá mudar dependendo da versão que estiver trabalhando.
Eu costumo utilizar o vi, mas você pode usar o vim, nano e afins para fazer a edição deste arquivo
Concluindo
Para finalizar, precisamos popular o banco de dados com os dados iniciais e executar um script que entre outras coisas compila e minifica os assets, otimiza o autoload de classes do composer e roda atualizações do banco.
Reinicie os serviços do nginx e php7.2-fpm
A partir deste momento sua aplicação estará disponível para acesso utilizando a Autenticação Fake
Instalação do certificado SSL com LetsEncrypt
Ubuntu18.04
Passo 1 — Instalando o Certbot
Primeiro, adicione o repositório:
Você vai precisar pressionar ENTER para aceitar. Depois, atualize a lista de pacotes para pegar as novas informações de pacotes do repositório:
E, finalmente, instale o pacote Nginx do Certbot com o apt-get:
ubuntu18.04
Ubuntu20.04
Passo 2 — Confirmando a Configuração do Nginx
Para verificar, abra o arquivo de bloco do servidor para o seu domínio usando o vi
ou o seu editor de textos favorito:
Verifique se todas as informações abaixo foram configuradas corretamente, já fizemos nas etapas anteriores, iremos apenas conferir.
Depois de conferir o arquivo, saia do seu editor, e verifique a sintaxe da edição da sua configuração:
Se você receber um erro, reabra o arquivo de bloco do servidor e verifique se há erros de digitação ou caracteres ausentes. Quando a sintaxe do seu arquivo de configuração estiver correta, recarregue o Nginx para carregar a nova configuração:
Passo 3 — Permitindo HTTPS Através do Firewall
Cada servidor possuí sua particularidade, garanta que as portas 443(https) e 80(http) estejam liberadas no Firewall Permitindo HTTPS Através do Firewall vá até o tópico Passo 3 — Permitindo HTTPS Através do Firewall caso esteja utilizando um servidor padrão, no meu caso estou utilizando AWS e por isso o procedimento é um pouco diferente
Passo 4 — Obtendo um Certificado SSL
Obtendo o certificado
Se isso for bem sucedido, o certbot perguntará como você gostaria de definir suas configurações de HTTPS.
Escolha 1 para redirecionar não redirecionar o tráfego forçado para HTTPS e 2 para fazer com que todaas as requisições sejam forçadas para HTTPS
Se isso for bem sucedido, o certibot irá exibir uma mensagem de sucesso:
Passo 5 — Verificando a Auto-Renovação do Certbot
Em uma das máquinas que fiz a instalação precisei reiniciar o serivdor inteiro para que o NGINX funcione corretamente. A configuração do SSL foi feita com base no seguinte artigo.
Autenticação - MultipleLocalAuth
Após a instalção do Mapa Cultural teremos várias possibilidades para autenticação, mas iremos abordar aqui apenas a autenticação utilizando MultipleLocalAuth que dará ao usuário a possibilidade de fazer a autenticação utilizando contas Locais, Gooogle, Facebook e afins. Após os procedimentos descritos abaixo iremos sair do modo de 'Autenticação Fake'. Para isso iremos utilizar as informações já disponibilidas no repositório MultipleLocalAuth e adicionar alguns detalhes com o objetivo de facilitar a implementação
Clonando o repositório, iremos acessar a pasta plugins
do nosso projeto utilizando o usuário mapas
Após nos certificarmos de que estamos no diretório correto iremos clonar o repositório MultipleLocalAuth
Agora, Faça a edição do arquivo de configuração do mapas (criado no passo 5) utilizando vi ou o editor de sua preferência.
Neste momento teremos três etapas
Ativar o plugin
Configurar MultipleLocalAuth como seu Provider de autenticação
Configurar as chaves das redes sociais
1- Ativar o plugin
Ainda com o arquivo config.php
aberto adicione a seguinte configuração:
Nota: A linha acima ficará dentro do array de configurações do arquivo config.php
que estamos editando neste momento.
2- Configurar MultipleLocalAuth como seu Provider de autenticação
Procure a linha com o código
'auth.provider' => 'Fake'
,
comente e adicione uma nova ou altere para
'auth.provider' => '\MultipleLocalAuth\Provider'
3- Configurar as chaves das redes sociais
Adicione a configuração auth.config para definir as estratégias utilizadas e as chaves dos serviços:
Nota:
Em nosso projeto utilizamos apenas a autenticação Padrão e Google;
Para obter as chaves para a estratégia "Google", consulte Google Console Developers, após gerar as chaves basta adiciona-las na configurações citadas acima;
Para obter as chaves para a estratégia "Facebook", consulte aqui, após gerar as chaves basta adiciona-las na configurações citadas acima;
Para obter as chaves para a estratégia "LinkedIn", consulte aqui, após gerar as chaves basta adiciona-las na configurações citadas acima;
Para obter as chaves para a estratégia "Twitter", consulte aqui, após gerar as chaves basta adiciona-las na configurações citadas acima.
Prontinho!! Após o procedimento você deverá ser capaz de acessar a página de autenticação utilizando MultipleLocalAuth
Autor: Rafael Chaves & Wiusmarques Moreira & Edson Gellert Schubert
Last updated