Fiz esse tutorial para que outras pessoas que não tem muita experiência no LINUX (iguais a mim) possam instalar o Novo SGA v2.0. Fiz a instalação tanto no Debian quanto no Ubuntu e deram certo. Mesmo que não seja necessário ter conhecimentos mais avançados, eu acho importante estudar o que faz cada comando para ter soluções para outros problemas que possam ocorrer. Como citei anteriormente, esse foi o passo a passo que eu fiz sem ter conhecimento avançado em Linux então se eu postar alguma coisa errada ou se existir outro jeito mais prático de fazer, peço para que postem para ajudar o máximo de pessoas possíveis.
Espero que ajude!
Obs: No Debian, como eu estava como root no terminal, não foi necessário utilizar o comando sudo
. E onde tiver o símbolo # é para ser digitado no terminal como root. Em algumas distros antigas é necessário digitar o comando apt-get
mas nas novas basta o comando apt
.
1 - Instalar Apache2
# apt install apache2
Permitir reescrita no Apache2
# a2enmod rewrite env
Permitir acesso do Diretório Apache2 (não está na documentação oficial mas só consegui instalar depois de permitir acesso).
# chmod -R 777 /etc/apache2/
2 - Instalar PHP 7.1 ou 7.2 (eu optei pelo 7.2 então onde estiver 7.1 substituir pelo 7.2)
Pelo que pesquisei, o PHP 7.x não é oficialmente suportado pelo Ubuntu então deve-se adicionar o repositório antes:
# apt install software-properties-common python-software-properties
# apt-add-repository ppa:ondrej/php
# apt update
# apt install php7.1 php7.1-mysql php7.1-curl php7.1-zip php7.1-intl php7.1-xml php7.1-mbstring php-gettext
Permitir acesso ao diretório PHP:
# chmod -R 777 /etc/php/
3 - Instalar Composer
# curl -fSL https://getcomposer.org/composer.phar -o composer.phar
Torná-lo executável (tive problemas pois sem esse comando o symphony não era listado como dependência do Composer)
# chmod +X composer.phar
Mover Composer para diretório raiz (opcional, eu não fiz)
# mv composer.phar /usr/local/bin/composer
Atualizar Composer
# composer self-update
4 - Instalar MySQL 5.7
Bati muita cabeça nesse ponto mas depois percebi que estava com a versão 5.6 que não funciona.
# apt-get update
# apt-get install mysql-server
# mysql_secure_installation
Como entendo pouco, eu estava instalando o mysql client mas tem que ser o mysql server (mysql-server
). Nos 2 PC's que instalei tenho os 2 e não sei se ambos são necessários. Mas só com o client não deu certo.
Aconselho a dar uma estudada em outros sites para aprender a configurar o Mysql para não dar problemas depois.
Acessar o mysql
# mysql -u root -p
Não se esquecer que todo comando no mysql tem que terminar em ";". E eu utilizava os comandos exatamente como diziam, incluindo as maiúsculas e minúsculas.
Como teste eu criei uma database com o nome novosgadb , usuário novosga
e senha 123456
.
Criar database:
>CREATE DATABASE novosgadb;
Criar usuário:
>CREATE USER 'novosga'@'localhost' IDENTIFIED BY '123456';
Garantir privilégio do usuário ao banco de dados:
>GRANT ALL PRIVILEGES ON novosgadb.* TO 'novosga'@'localhost' IDENTIFIED BY '123456';
Não se esquecer de dar o comando
>FLUSH PRIVILEGES;
>exit;
5 - Baixar e criar o projeto Novo SGA
# php composer.phar create-project "novosga/novosga:v2.0.0-RC3" ~/novosga
Mover diretório NOVOSGA para /var/www/html/
(eu optei por instalar no diretório "html" entretanto na documentação oficial diz que pode ser instalado no diretório "www". Isso é importante pois vai alterar algumas configurações futuras).
# mv ~/novosga /var/www/html
Preparar o cache da aplicação para o ambiente de produção
# bin/console cache:clear --no-debug --no-warmup --env=prod
# bin/console cache:warmup --env=prod
Esse comando deve ser digitado no terminal mas já dentro da pasta do novosga. Se optar por digitar "fora" da pasta, deve ser o comando abaixo (lembrando que optei por instalar o Novo SGA na pasta /var/www/html):
# /var/www/html/novosga/bin/console cache:clear --no-debug --no-warmup --env=prod
# /var/www/html/novosga/bin/console cache:warmup --env=prod
Aqui deu o erro de pt_BR locale, é só dar o comando abaixo no terminal
# export LANGUAGE=pt_BR
Permitir acesso ao diretório NOVOSGA
# chown www-data:www-data -R /var/www/novosga
# chmod +w -R /var/www/novosga/var/
No meu caso (na pasta html):
# chown www-data:www-data -R /var/www/html/novosga
#chmod +w -R /var/www/html/novosga/var/
Alterar diretório e habilitar o .htaccess
# sed -i 's|/var/www/html|/var/www/novosga/public|g' /etc/apache2/sites-available/000-default.conf
# sed -i 's|AllowOverride None|AllowOverride All|g' /etc/apache2/apache2.conf
No meu caso (pasta html):
# sed -i 's|/var/www/html|/var/www/html/novosga/public|g' /etc/apache2/sites-available/000-default.conf
# sed -i 's|AllowOverride None|AllowOverride All|g' /etc/apache2/apache2.conf
Configurar o Timezone (lembrem-se que se mudar a versão do php alterar para 7.2)
# echo 'date.timezone = America/Sao_Paulo' > /etc/php/7.1/apache2/conf.d/datetimezone.ini
Criar e editar o arquivo .htaccess dentro da pasta public.Lembrem-se de editar o arquivo para colocar os dados do banco de dados que criou no mysql.No meu caso, eu criei um banco de dados teste com o nome novosgadb, usuário novosga e senha 123456. Então o SetEnv
DATABASE_URL
ficou assim: mysql://novosga:123456@localhost:3306/novosgadb
.
Obs: O comando abaixo tem que ser inserido no terminal.Estava cometendo o erro de copiar e colar todo o texto abaixo no arquivo .htaccess
.
# echo 'Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
SetEnv APP_ENV prod
SetEnv LANGUAGE pt_BR
SetEnv DATABASE_URL mysql://novosga:MySQL_App_P4ssW0rd@mysqldb:3306/novosga2?charset=utf8mb4&serverVersion=5.7
' > /var/www/novosga/public/.htaccess
No meu caso (pasta html e com meu banco de dados teste)
# echo 'Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
SetEnv APP_ENV prod
SetEnv LANGUAGE pt_BR
SetEnv DATABASE_URL mysql://novosga:123456@localhost:3306/novosgadb
' > /var/www/html/novosga/public/.htaccess
Reiniciar serviço do Apache2:
# service apache2 restart
Comando install do Novo SGA (como disse acima não se esqueça de editar o DATABASE_URL para ficar igual ao do .htaccess).
# APP_ENV=prod \
LANGUAGE=pt_BR \
DATABASE_URL="mysql://novosga:MySQL_App_P4ssW0rd@mysqldb:3306/novosga2?charset=utf8mb4&serverVersion=5.7" \
bin/console novosga:install
No meu caso (meu banco de dados teste)
# APP_ENV=prod \
LANGUAGE=pt_BR \
DATABASE_URL="mysql://novosga:123456@localhost:3306/novosgadb"
bin/console novosga:install
Acho o ideal digitar no terminal, "fora" da pasta do novosga:
# APP_ENV=prod \
LANGUAGE=pt_BR \
DATABASE_URL="mysql://novosga:123456@localhost:3306/novosgadb"
/var/www/html/novosga/bin/console novosga:install
Diferentemente do SGA 1.5, temos que criar a conta do Administrador nesse passo então é importante anotar o username e password para o primeiro acesso.
Depois de instalado, é só ir no navegador e digitar:
ou
http://"ipdoservidor"/novosga/public
Se tudo deu certo, vai aparecer a tela de login.Para configurar, entrar com o login e senha do Administrador.