Advertisement
josenias

[TUTORIAL] Linux Ubuntu 18.04 + SGA v2.08 v2.1.0 + PANEL 2.0.1 + TRIAGE 2.0.2 (ALL-IN-ONE)

Aug 14th, 2023 (edited)
1,027
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.11 KB | Software | 0 0
  1. #################################################################################################
  2. # [TUTORIAL] Linux Ubuntu 18.04 + SGA v2.0.8 / v2.1.0 + PANEL 2.0.1 + TRIAGE 2.0.2 (ALL-IN-ONE) #
  3. # #
  4. # Autor: Josenias Nascimento @josenias #
  5. # Versão: 1 #
  6. # Data: 14/08/2023 #
  7. # Credito: by @artesao (artesao@yack.com.br) #
  8. # https://pastebin.com/SDKEgPx8
  9. #################################################################################################
  10.  
  11. #Ubuntu Server arm64 18.04.6 LTS Oracle Cloud
  12.  
  13. # Comandos todos em ordem, com descrições.
  14.  
  15. # Atualizar totalmente o Sistema e configurando o seu fuso-horario
  16.  
  17. sudo su
  18. apt update && apt upgrade -y
  19. sudo apt-get update && sudo apt-get dist-upgrade
  20. dpkg-reconfigure tzdata
  21. apt-get install unzip
  22.  
  23. # Instalar o MySql 5.7 arm64
  24.  
  25. wget https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb
  26. sudo dpkg -i mysql-apt-config_0.8.12-1_all.deb
  27. sudo apt install -f mysql-client=5.7* default-mysql-server
  28.  
  29. #Verifique a versão se está 5.7
  30.  
  31. mysql -V => mysql Ver 14.14 Distrib 5.7.42, for Linux (aarch64) using EditLine wrapper
  32.  
  33. # Implantar confs seguras para producao no MySQL, senha do root etc
  34.  
  35. sudo mysql_secure_installation
  36. Would you like to setup VALIDATE PASSWORD plugin? N
  37. Please set the password for root here. New password. "Sua_senha_root"
  38. Remove anonymous users? Y
  39. Disallow root login remotely? N
  40. Remove test database and access to it? Y
  41. Reload privilege tables now? Y
  42.  
  43.  
  44. # Criar a permissao de usuario "novosga2" / senha "n0v0sg@2022" pro db "novosga2"
  45. # Nao precisa criar o DB, durante as migrations do install ele sera criado
  46.  
  47. sudo mysql -u root -p
  48. grant all privileges on novosga2.* to 'novosga2'@'localhost' identified by 'n0v0sg@2022';
  49. flush privileges;
  50. quit
  51.  
  52. # 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
  53. 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
  54.  
  55. # Habilitar os mods env e rewrite do apache
  56. sudo a2enmod env rewrite
  57. sudo chmod -R 777 /etc/apache2/
  58. sudo systemctl restart apache2
  59.  
  60. # Baixar o Composer e torna-lo executável
  61. curl -fSL https://getcomposer.org/composer.phar -o composer.phar
  62. sudo chmod +x composer.phar
  63.  
  64. # Criar o Projeto
  65. # Ignorar erros, serao reparados no proximo passo, de certa forma queremos aqui apenas "capturar" o composer.json.
  66.  
  67. php composer.phar create-project "novosga/novosga:^2.0" ~/novosga2 -vvv
  68.  
  69. # Para baixar uma versão do novosga específica, informe no nome do arquivo.
  70.  
  71. php composer.phar create-project "novosga/novosga:2.0.8" ~/novosga2 -vvv
  72.  
  73. # Entrar na pasta do projeto e Atualizar via composer
  74.  
  75. cd novosga2
  76. ../composer.phar update -vvv
  77.  
  78. # Se aprsentar os erros abaixos, alterar o arquivo composer.json
  79. Problem 1
  80. - Root composer.json requires symfony/stopwatch 5.2.*, found symfony/stopwatch[v5.4.21] but it does not match the constraint.
  81. Solução: Altere symfony/stopwatch 5.2.* para symfony/stopwatch 5.4.*
  82.  
  83. Problem 2
  84. - Root composer.json requires symfony/var-dumper 5.2.*, found symfony/var-dumper[v5.4.26] but it does not match the constraint.
  85. Solução: Altere symfony/var-dumper 5.2.* para symfony/var-dumper 5.4.*
  86.  
  87. Problem 3
  88. - Root composer.json requires novosga/composer-installer-plugin v1.0 -> satisfiable by novosga/composer-installer-plugin[v1.0].
  89. - 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.
  90. Solução: Altere o arquivo composer.json na linha para a versão:
  91. "name": "novosga/composer-installer-plugin",
  92. "version": "v1.1.0"
  93. # E logo abaixo altere esse linha
  94. "require": {
  95. "composer-plugin-api": "^1.0|^2.0"
  96.  
  97. # Atualize novamente.
  98. ../composer.phar update -vvv
  99.  
  100. #O sistema criou duas pasta VAR e VENDOR. Com esses erros ele não cria essas pastas.
  101.  
  102. # Sair da pasta e mover o projeto pra dentro da pasta root do apache
  103.  
  104. cd ..
  105. sudo mv novosga2 /var/www
  106.  
  107. # Vá pra /var/www/novosga2, torne executavel o bin/console e faça o clean-up e warm-up de cache
  108.  
  109. cd /var/www/novosga2
  110. chmod +x bin/console
  111. bin/console cache:clear --no-debug --no-warmup --env=prod -vv
  112. bin/console cache:warmup --env=prod
  113.  
  114. # Conserto de permissões
  115.  
  116. chown www-data:www-data -R /var/www/novosga2
  117. chmod +w -R /var/www/novosga2/var/
  118.  
  119. # Mudando o vhost padrao do apache para apontar pro /var/www/novosga2/public e os overrides padroes
  120.  
  121. sed -i 's|/var/www/html|/var/www/novosga2/public|g' /etc/apache2/sites-available/000-default.conf
  122. sed -i 's|AllowOverride None|AllowOverride All|g' /etc/apache2/apache2.conf
  123.  
  124. # Setando timezone do PHP
  125. echo 'date.timezone = America/Fortaleza' > /etc/php/7.2/apache2/conf.d/datetimezone.ini
  126.  
  127. # Criando o .htaccess contendo configs de rewrite e conexao ao BD na pasta /var/www/novosga2/public/
  128.  
  129. echo 'Options -MultiViews
  130. RewriteEngine On
  131. RewriteCond %{REQUEST_FILENAME} !-f
  132. RewriteRule ^(.*)$ index.php [QSA,L]
  133. SetEnv APP_ENV prod
  134. SetEnv LANGUAGE pt_BR
  135. SetEnv DATABASE_URL mysql://novosga2:n0v0sg@2022@localhost:3306/novosga2?charset=utf8mb4&serverVersion=5.7
  136. ' > /var/www/novosga2/public/.htaccess
  137.  
  138. # Restartar o apache para aplicar as configurações
  139.  
  140. systemctl restart apache2
  141.  
  142. # Export de variaveis de ambiente necessárias e comando install, estando dentro de /var/www/novosga2/
  143.  
  144. export APP_ENV="prod" LANGUAGE="pt_BR" DATABASE_URL="mysql://novosga2:n0v0sg@2022@localhost:3306/novosga2?charset=utf8mb4&serverVersion=5.7"
  145.  
  146. # Instalacao final
  147.  
  148. bin/console novosga:install
  149.  
  150. #Erros no momento da instalação.
  151. SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'clientes_m
  152. etadata' already exists
  153.  
  154. # 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.
  155. public function up(Schema $schema) : void
  156. {
  157. $this->addSql("ALTER TABLE servicos CHANGE descricao descricao VARCHAR(250) NOT NULL");
  158. $this->addSql("ALTER TABLE painel_senha CHANGE local local VARCHAR(20) NOT NULL");
  159. $this->addSql("UPDATE agendamentos SET situacao = 'agendado' WHERE situacao IS NULL OR situacao = ''");
  160. $this->addSql("UPDATE prioridades SET cor = '#0091da' WHERE cor IS NULL AND peso = 0");
  161. $this->addSql("UPDATE prioridades SET cor = '#de231b' WHERE cor IS NULL AND peso > 0");
  162. }
  163.  
  164. # Erro no BCryptPasswordEncoder
  165. Attempted to load class "BCryptPasswordEncoder" from namespace "Symfony\Co
  166. mponent\Security\Core\Encoder".
  167. Did you forget a "use" statement for another namespace?
  168.  
  169. Baixe o BCryptPasswordEncoder e copie para a pasta /var/www/novosga2/vendor/symfony/security-core/Encoder
  170. Segue link BCryptPasswordEncoder https://1drv.ms/u/s!AtJbhQr5YGkyubphUvwEOxCrMpNEcA?e=hSas1K
  171.  
  172. # Conserto de permissões
  173. chown www-data:www-data -R /var/www/novosga2
  174.  
  175. # Execute novamente o comando de instalação.
  176. bin/console novosga:install
  177.  
  178. # Iniciando o WEBSOCKET (Para conexoes do PANEL/TRIAGE APP - exibicao de senhas, emissao de senhas, respectivamente)
  179. # Na versão 2.1 o websocket foi substituído pelo mercure (SSE).
  180.  
  181. bin/console novosga:websocket start
  182.  
  183. # ACESSAR VIA http://IP_DO_SERVIDOR/
  184.  
  185. # Caso esteja usando um servidor na oracle cloud habilite a porta 80 no firewall
  186. sudo apt install firewalld
  187. sudo firewall-cmd --zone=public --permanent --add-port=80/tcp
  188. sudo firewall-cmd --reload
  189.  
  190. sudo firewall-cmd --zone=public --list-ports
  191.  
  192. # 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.
  193. - Altere o arquivo .env em /var/www/novosga2/
  194. ###> novosga ###
  195. APP_LANGUAGE=pt_BR (Coloque aqui o idioma selecionado)
  196. SCHEDULING_API_URL=https://euagendei.online
  197. SCHEDULING_API_TOKEN=access_token
  198. ###< novosga ###
  199.  
  200. - Altere o arquivo .env.test em /var/www/novosga2/
  201.  
  202. # define your env variables for the test env here
  203. KERNEL_CLASS='App\Kernel'
  204. APP_SECRET='XXXXXXXXXXX'
  205. SYMFONY_DEPRECATIONS_HELPER=999999
  206. PANTHER_APP_ENV=panther
  207. PANTHER_ERROR_SCREENSHOT_DIR=./var/error-screenshots
  208. APP_LANGUAGE=pt_BR (Inclua essa linha com idioma selecionado)
  209.  
  210. #Esses arquivos são ocultos e podem ser editados pelo comando $nano .env
  211. #Se estiver usando o WINSCP lembre de deixar os arquivos ocultos visíveis.
  212.  
  213. # Iniciando o WEBSOCKET (Para conexoes do PANEL/TRIAGE APP - exibicao de senhas, emissao de senhas, respectivamente)
  214.  
  215. bin/console novosga:websocket start
  216.  
  217. # ACESSAR VIA http://IP_DO_SERVIDOR/
  218.  
  219. # PRONTO, NOVOSGA 2.0.8 ONLINE :D
  220.  
  221. #### BONUS 01 ####
  222.  
  223. # Vamos Instalar o "supervisor", pequeno daemon gerenciador de processos de forma simplificada
  224. # Utilizaremos ele pra controlar o processo do WEBSOCKET, para iniciar de forma automatica com o OS e re-subir automaticamente caso caia
  225.  
  226. apt install supervisor
  227.  
  228. # Configurar o websocket para ser tratado pelo supervisord
  229.  
  230. echo '[program:novosga2-websocket]
  231. command=/var/www/novosga2/bin/console novosga:websocket start
  232. autostart=true
  233. autorestart=true
  234. stderr_logfile=/var/log/novosga2-websocket.err.log
  235. stdout_logfile=/var/log/novosga2-websocket.out.log
  236. ' > /etc/supervisor/conf.d/novosga2-websocket.conf
  237.  
  238. # Ativando a Conf
  239.  
  240. supervisorctl reread
  241. supervisorctl update
  242.  
  243. # Quer gerenciar o supervisor em modo web? Entao vamos configurar a interface web do supervisor
  244.  
  245. echo '[inet_http_server]
  246. port=*:9001
  247. username=admin
  248. password=senh@aleatoria
  249. ' >> /etc/supervisor/supervisord.conf
  250.  
  251. service supervisor restart
  252.  
  253. # Libere a porta no Firewall
  254. sudo firewall-cmd --zone=public --permanent --add-port=9001/tcp
  255. sudo firewall-cmd --reload
  256.  
  257. # Para acessar o supervisord via web: http://ip-do-seu-server:9001 com user e senha configurados acima.
  258.  
  259. # PRONTO, SUPERVISORD GERENCIANDO WEBSOCKET DO SGA AUTOMATICAMENTE :D
  260.  
  261. #### BONUS 02 ####
  262.  
  263. # Painel Senhas WEB + Triagem Touch WEB *no mesmo servidor*:
  264.  
  265. # PANEL-APP
  266.  
  267. 1) Baixar o PANEL-APP v2.0.1 (esta é ultima release, em 14-07-2022)
  268. https://github.com/novosga/panel-app/releases/download/v2.0.1/painel-web-2.0.1.zip
  269. 2) Extrair tudo em uma pasta de nome "panel-app"
  270. 3) Mover esta pasta pra "/var/www", ficando assim o caminho dela: /var/www/panel-app
  271.  
  272. # TRIAGE-APP
  273.  
  274. 1) Baixar o TRIAGE-APP v2.0.2 (esta é ultima release, em 14-07-2022)
  275. https://github.com/novosga/triage-app/releases/download/v2.0.2/triagem-touch-2.0.2-web.zip
  276. 2) Extrair tudo em uma pasta de nome "triage-app"
  277. 3) Mover esta pasta pra "/var/www", ficando assim o caminho dela: /var/www/triage-app
  278.  
  279. # Após os passos acima, corrigir permissões
  280.  
  281. chown www-data:www-data -R /var/www/
  282.  
  283. # Agora é só acessar os dois serviços pelo navegador (painel de senhas, e triagem touch)
  284.  
  285. http://IP_DO_SERVIDOR/panel-app
  286. http://IP_DO_SERVIDOR/triage-app
  287.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement