Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #################################################################################################
- # [TUTORIAL] Linux Ubuntu 18.04 + SGA v2.0.8 / v2.1.0 + PANEL 2.0.1 + TRIAGE 2.0.2 (ALL-IN-ONE) #
- # #
- # Autor: Josenias Nascimento @josenias #
- # Versão: 1 #
- # Data: 14/08/2023 #
- # Credito: by @artesao (artesao@yack.com.br) #
- # https://pastebin.com/SDKEgPx8
- #################################################################################################
- #Ubuntu Server arm64 18.04.6 LTS Oracle Cloud
- # Comandos todos em ordem, com descrições.
- # Atualizar totalmente o Sistema e configurando o seu fuso-horario
- sudo su
- apt update && apt upgrade -y
- sudo apt-get update && sudo apt-get dist-upgrade
- dpkg-reconfigure tzdata
- apt-get install unzip
- # Instalar o MySql 5.7 arm64
- wget https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb
- sudo dpkg -i mysql-apt-config_0.8.12-1_all.deb
- sudo apt install -f mysql-client=5.7* default-mysql-server
- #Verifique a versão se está 5.7
- mysql -V => mysql Ver 14.14 Distrib 5.7.42, for Linux (aarch64) using EditLine wrapper
- # Implantar confs seguras para producao no MySQL, senha do root etc
- sudo mysql_secure_installation
- Would you like to setup VALIDATE PASSWORD plugin? N
- Please set the password for root here. New password. "Sua_senha_root"
- Remove anonymous users? Y
- Disallow root login remotely? N
- Remove test database and access to it? Y
- Reload privilege tables now? Y
- # Criar a permissao de usuario "novosga2" / senha "n0v0sg@2022" pro db "novosga2"
- # Nao precisa criar o DB, durante as migrations do install ele sera criado
- sudo mysql -u root -p
- grant all privileges on novosga2.* to 'novosga2'@'localhost' identified by 'n0v0sg@2022';
- flush privileges;
- quit
- # Instalar as versoes padroes de "fabrica" do Ubuntu 18.04.6: php 7.2, apache 2.4, bem como dependências básicas do SGA
- sudo apt install php7.2 php7.2-mysql php7.2-curl php7.2-zip php7.2-intl php7.2-xml php7.2-mbstring php-gettext
- # Habilitar os mods env e rewrite do apache
- sudo a2enmod env rewrite
- sudo chmod -R 777 /etc/apache2/
- sudo systemctl restart apache2
- # Baixar o Composer e torna-lo executável
- curl -fSL https://getcomposer.org/composer.phar -o composer.phar
- sudo chmod +x composer.phar
- # Criar o Projeto
- # Ignorar erros, serao reparados no proximo passo, de certa forma queremos aqui apenas "capturar" o composer.json.
- php composer.phar create-project "novosga/novosga:^2.0" ~/novosga2 -vvv
- # Para baixar uma versão do novosga específica, informe no nome do arquivo.
- php composer.phar create-project "novosga/novosga:2.0.8" ~/novosga2 -vvv
- # Entrar na pasta do projeto e Atualizar via composer
- cd novosga2
- ../composer.phar update -vvv
- # Se aprsentar os erros abaixos, alterar o arquivo composer.json
- Problem 1
- - Root composer.json requires symfony/stopwatch 5.2.*, found symfony/stopwatch[v5.4.21] but it does not match the constraint.
- Solução: Altere symfony/stopwatch 5.2.* para symfony/stopwatch 5.4.*
- Problem 2
- - Root composer.json requires symfony/var-dumper 5.2.*, found symfony/var-dumper[v5.4.26] but it does not match the constraint.
- Solução: Altere symfony/var-dumper 5.2.* para symfony/var-dumper 5.4.*
- Problem 3
- - Root composer.json requires novosga/composer-installer-plugin v1.0 -> satisfiable by novosga/composer-installer-plugin[v1.0].
- - novosga/composer-installer-plugin v1.0 requires composer-plugin-api ^1.0 -> found composer-plugin-api[2.6.0] but it does not match the constraint.
- Solução: Altere o arquivo composer.json na linha para a versão:
- "name": "novosga/composer-installer-plugin",
- "version": "v1.1.0"
- # E logo abaixo altere esse linha
- "require": {
- "composer-plugin-api": "^1.0|^2.0"
- # Atualize novamente.
- ../composer.phar update -vvv
- #O sistema criou duas pasta VAR e VENDOR. Com esses erros ele não cria essas pastas.
- # Sair da pasta e mover o projeto pra dentro da pasta root do apache
- cd ..
- sudo mv novosga2 /var/www
- # Vá pra /var/www/novosga2, torne executavel o bin/console e faça o clean-up e warm-up de cache
- cd /var/www/novosga2
- chmod +x bin/console
- bin/console cache:clear --no-debug --no-warmup --env=prod -vv
- bin/console cache:warmup --env=prod
- # Conserto de permissões
- chown www-data:www-data -R /var/www/novosga2
- chmod +w -R /var/www/novosga2/var/
- # Mudando o vhost padrao do apache para apontar pro /var/www/novosga2/public e os overrides padroes
- sed -i 's|/var/www/html|/var/www/novosga2/public|g' /etc/apache2/sites-available/000-default.conf
- sed -i 's|AllowOverride None|AllowOverride All|g' /etc/apache2/apache2.conf
- # Setando timezone do PHP
- echo 'date.timezone = America/Fortaleza' > /etc/php/7.2/apache2/conf.d/datetimezone.ini
- # Criando o .htaccess contendo configs de rewrite e conexao ao BD na pasta /var/www/novosga2/public/
- 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://novosga2:n0v0sg@2022@localhost:3306/novosga2?charset=utf8mb4&serverVersion=5.7
- ' > /var/www/novosga2/public/.htaccess
- # Restartar o apache para aplicar as configurações
- systemctl restart apache2
- # Export de variaveis de ambiente necessárias e comando install, estando dentro de /var/www/novosga2/
- export APP_ENV="prod" LANGUAGE="pt_BR" DATABASE_URL="mysql://novosga2:n0v0sg@2022@localhost:3306/novosga2?charset=utf8mb4&serverVersion=5.7"
- # Instalacao final
- bin/console novosga:install
- #Erros no momento da instalação.
- SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'clientes_m
- etadata' already exists
- # Altere o arquivo /var/www/novosga2/migrations/Version20210326134543.php, deixando a function UP com as informações abaixo. Esse # procedimento é necessário quando estamos criando o banco do zero e não estamos atualizando o sistema.
- public function up(Schema $schema) : void
- {
- $this->addSql("ALTER TABLE servicos CHANGE descricao descricao VARCHAR(250) NOT NULL");
- $this->addSql("ALTER TABLE painel_senha CHANGE local local VARCHAR(20) NOT NULL");
- $this->addSql("UPDATE agendamentos SET situacao = 'agendado' WHERE situacao IS NULL OR situacao = ''");
- $this->addSql("UPDATE prioridades SET cor = '#0091da' WHERE cor IS NULL AND peso = 0");
- $this->addSql("UPDATE prioridades SET cor = '#de231b' WHERE cor IS NULL AND peso > 0");
- }
- # Erro no BCryptPasswordEncoder
- Attempted to load class "BCryptPasswordEncoder" from namespace "Symfony\Co
- mponent\Security\Core\Encoder".
- Did you forget a "use" statement for another namespace?
- Baixe o BCryptPasswordEncoder e copie para a pasta /var/www/novosga2/vendor/symfony/security-core/Encoder
- Segue link BCryptPasswordEncoder https://1drv.ms/u/s!AtJbhQr5YGkyubphUvwEOxCrMpNEcA?e=hSas1K
- # Conserto de permissões
- chown www-data:www-data -R /var/www/novosga2
- # Execute novamente o comando de instalação.
- bin/console novosga:install
- # Iniciando o WEBSOCKET (Para conexoes do PANEL/TRIAGE APP - exibicao de senhas, emissao de senhas, respectivamente)
- # Na versão 2.1 o websocket foi substituído pelo mercure (SSE).
- bin/console novosga:websocket start
- # ACESSAR VIA http://IP_DO_SERVIDOR/
- # Caso esteja usando um servidor na oracle cloud habilite a porta 80 no firewall
- sudo apt install firewalld
- sudo firewall-cmd --zone=public --permanent --add-port=80/tcp
- sudo firewall-cmd --reload
- sudo firewall-cmd --zone=public --list-ports
- # Se você abrir o SGA na WEB e ele não estiver no idioma que você escolheu no LANGUAGE="pt_BR", execute o passo abaixo.
- - Altere o arquivo .env em /var/www/novosga2/
- ###> novosga ###
- APP_LANGUAGE=pt_BR (Coloque aqui o idioma selecionado)
- SCHEDULING_API_URL=https://euagendei.online
- SCHEDULING_API_TOKEN=access_token
- ###< novosga ###
- - Altere o arquivo .env.test em /var/www/novosga2/
- # define your env variables for the test env here
- KERNEL_CLASS='App\Kernel'
- APP_SECRET='XXXXXXXXXXX'
- SYMFONY_DEPRECATIONS_HELPER=999999
- PANTHER_APP_ENV=panther
- PANTHER_ERROR_SCREENSHOT_DIR=./var/error-screenshots
- APP_LANGUAGE=pt_BR (Inclua essa linha com idioma selecionado)
- #Esses arquivos são ocultos e podem ser editados pelo comando $nano .env
- #Se estiver usando o WINSCP lembre de deixar os arquivos ocultos visíveis.
- # Iniciando o WEBSOCKET (Para conexoes do PANEL/TRIAGE APP - exibicao de senhas, emissao de senhas, respectivamente)
- bin/console novosga:websocket start
- # ACESSAR VIA http://IP_DO_SERVIDOR/
- # PRONTO, NOVOSGA 2.0.8 ONLINE :D
- #### BONUS 01 ####
- # Vamos Instalar o "supervisor", pequeno daemon gerenciador de processos de forma simplificada
- # Utilizaremos ele pra controlar o processo do WEBSOCKET, para iniciar de forma automatica com o OS e re-subir automaticamente caso caia
- apt install supervisor
- # Configurar o websocket para ser tratado pelo supervisord
- echo '[program:novosga2-websocket]
- command=/var/www/novosga2/bin/console novosga:websocket start
- autostart=true
- autorestart=true
- stderr_logfile=/var/log/novosga2-websocket.err.log
- stdout_logfile=/var/log/novosga2-websocket.out.log
- ' > /etc/supervisor/conf.d/novosga2-websocket.conf
- # Ativando a Conf
- supervisorctl reread
- supervisorctl update
- # Quer gerenciar o supervisor em modo web? Entao vamos configurar a interface web do supervisor
- echo '[inet_http_server]
- port=*:9001
- username=admin
- password=senh@aleatoria
- ' >> /etc/supervisor/supervisord.conf
- service supervisor restart
- # Libere a porta no Firewall
- sudo firewall-cmd --zone=public --permanent --add-port=9001/tcp
- sudo firewall-cmd --reload
- # Para acessar o supervisord via web: http://ip-do-seu-server:9001 com user e senha configurados acima.
- # PRONTO, SUPERVISORD GERENCIANDO WEBSOCKET DO SGA AUTOMATICAMENTE :D
- #### BONUS 02 ####
- # Painel Senhas WEB + Triagem Touch WEB *no mesmo servidor*:
- # PANEL-APP
- 1) Baixar o PANEL-APP v2.0.1 (esta é ultima release, em 14-07-2022)
- https://github.com/novosga/panel-app/releases/download/v2.0.1/painel-web-2.0.1.zip
- 2) Extrair tudo em uma pasta de nome "panel-app"
- 3) Mover esta pasta pra "/var/www", ficando assim o caminho dela: /var/www/panel-app
- # TRIAGE-APP
- 1) Baixar o TRIAGE-APP v2.0.2 (esta é ultima release, em 14-07-2022)
- https://github.com/novosga/triage-app/releases/download/v2.0.2/triagem-touch-2.0.2-web.zip
- 2) Extrair tudo em uma pasta de nome "triage-app"
- 3) Mover esta pasta pra "/var/www", ficando assim o caminho dela: /var/www/triage-app
- # Após os passos acima, corrigir permissões
- chown www-data:www-data -R /var/www/
- # Agora é só acessar os dois serviços pelo navegador (painel de senhas, e triagem touch)
- http://IP_DO_SERVIDOR/panel-app
- http://IP_DO_SERVIDOR/triage-app
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement