Catálogo de Sistemas

Documentação e procedimentos

Ferramentas do usuário

Ferramentas do site


sistema_academico:criacao_de_ambiente_de_desenvolvimento

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anterior Revisão anterior
Última revisão Ambos lados da revisão seguinte
sistema_academico:criacao_de_ambiente_de_desenvolvimento [09/06/2021 15:51]
Carlitos [2. Docker Apache2/PHP5.6]
sistema_academico:criacao_de_ambiente_de_desenvolvimento [16/06/2021 19:11]
Carlitos
Linha 3: Linha 3:
 Para facilitar e padronizar a criação do ambiente de desenvolvimento foi adotado o uso de [[https://​www.docker.com/​get-started|Dockers]] para construção do servidor da aplicação (HTTP/​Apache e PHP) e do banco de dados (Postgres). E para facilitar a construção das dockers foi utilizado o [[https://​docs.docker.com/​compose/​|docker-compose]]. As dockers funcionam em diferentes sistemas operacionais,​ porém recomendamos o uso de Ubuntu ou Debian atualizados na máquina hospedeira. ​ Para facilitar e padronizar a criação do ambiente de desenvolvimento foi adotado o uso de [[https://​www.docker.com/​get-started|Dockers]] para construção do servidor da aplicação (HTTP/​Apache e PHP) e do banco de dados (Postgres). E para facilitar a construção das dockers foi utilizado o [[https://​docs.docker.com/​compose/​|docker-compose]]. As dockers funcionam em diferentes sistemas operacionais,​ porém recomendamos o uso de Ubuntu ou Debian atualizados na máquina hospedeira. ​
  
-Então é preciso instalar o Docker e o Docker-compose seguindo os passos abaixo: +Para isso basta seguir ​README ​do projeto ​de montagem das Dockers: [[https://​bitbucket.org/​ifms/​docker-sistema-academico]].
-<​code>​ +
-sudo apt update +
- +
-# instalar o Docker +
-sudo apt install docker.io +
- +
-# Confira se foi instalado corretamente com +
-docker --version +
- +
-# instalar o Docker-compose -> ver aqui atualizado: https://​docs.docker.com/​compose/​install/​ +
-sudo curl -L "​https://​github.com/​docker/​compose/​releases/​download/​1.29.2/​docker-compose-$(uname -s)-$(uname -m)" -o /​usr/​local/​bin/​docker-compose +
-sudo chmod +x /​usr/​local/​bin/​docker-compose +
- +
-# testar a instalação +
-sudo docker-compose --version +
- +
-# se não funcionar, experimente criar um link simbólico +
-sudo ln -s /​usr/​local/​bin/​docker-compose /​usr/​bin/​docker-compose +
-</​code>​ +
- +
-Serão necessárias duas dockers. São elas: +
- +
-===== 1. Docker Postgres 9.5 ===== +
- +
-Para construir essa docker crie uma pasta chamada ''​postgres''​. Dentro dessa pasta crie outra pasta chamada ''​data''​ e um arquivo chamado ''​docker-compose.yml''​ com o conteúdo:​ +
-<​code>​ +
-version: "​2"​ +
-services: +
-  db: +
-    image: postgres:​9.5 +
-    container_name:​ "​postgres"​ +
-    environment:​ +
-      - POSTGRES_DB=dbsigaedu +
-      - POSTGRES_USER=postgres +
-      - POSTGRES_PASSWORD=1234 +
-    volumes: +
-      - "​.:/​var/​lib/​postgresql/​backup"​ +
-      - "​./​data:/​var/​lib/​postgresql/​data"​ +
-    ports: +
-      - 5003:5432 +
- +
-networks: +
-  static-network:​ +
-    ipam: +
-      config: +
-        - subnet: 173.20.0.1/​32 +
-</​code>​ +
- +
-Copie o arquivo de DUMP do banco (padrão compactado com Inserts explícitos - deve ser solicitado junto a equipe de desenvolvimento) para dentro da mesma pasta ''​postgres'',​ por exemplo: ''​dump.backup''​.  +
- +
-E então após a salvar o arquivo vá até o terminal e entre com os comandos abaixo: +
- +
-<​code>​ +
-#navegue até a pasta "​postgres"​ +
-cd ~/​postgres +
- +
-# construindo a docker... pode demorar um pouco dependendo da sua conexão com a Internet +
-sudo docker-compose build +
- +
-# subindo a docker e colocando-a em background +
-sudo docker-compose up -d +
- +
-# quando tiver UP, vamos restaurar o DUMP do banco nela... ​isso pode demorar um pouco, algumas tabelas são grandes +
-sudo docker exec -it postgres sh -c "​pg_restore -U postgres -d dbsigaedu < /​var/​lib/​postgresql/​backup/​dump.backup --verbose"​ +
- +
-# Alterando a senha de todos os usuários para 1234 +
-sudo docker exec -it postgres sh -c "psql -U postgres -d dbsigaedu -c \"​UPDATE usuario SET senha = md5('​1234'​)\""​ +
-</​code>​ +
- +
-Pronto! Caso queira testar essa conexão pode utilizar ​[[https://​www.pgadmin.org/​download/​|PgAdmin]] e acessar o banco de dados ''​dbsigaedu''​ pela porta ''​5003''​ através ​do ''​localhost'',​ conforme definido no arquivo ​de configuração da docker ''​postgres''​. +
- +
-===== 2. Docker Apache2/​PHP5.6 ===== +
- +
-Para construir essa docker crie uma pasta chamada ''​apache_php''​. Dentro dessa pasta crie um arquivo chamado ''​docker-compose.yml''​ com o conteúdo: +
- +
-<​code>​ +
-version: '​2'​ +
- +
-services: +
-  servidor: +
-    build: . +
-    container_name:​ apache_php +
-    ports: +
-      - "​8092:​80"​ +
-    volumes: +
-      - /​tmp/​sigaeduext_git:/​var/​www/​html/​cakephp/​sigaeduext_git +
-</​code>​ +
- +
-Crie um outro arquivo chamado ''​Dockerfile''​ com o conteúdo:​ +
- +
-<​code>​ +
-FROM ubuntu:​xenial +
-MAINTAINER Stefan van Gastel <​stefanvangastel@gmail.com>​ e alterado por Carlitos Oliveira (IFMS) +
- +
-# Install packages and PHP 5.6 +
-ENV DEBIAN_FRONTEND noninteractive +
-ENV LANG C.UTF-8 +
- +
-RUN apt-get update && \ +
-    apt-get install -y software-properties-common && \ +
-    add-apt-repository ppa:​ondrej/​php && \ +
-    apt-get update && \ +
-    apt-get install -y \ +
-    wget \ +
-    # supervisor \ +
-    php5.6 \ +
-    #php5.6-cgi \ +
-    php5.6-cli \ +
-    php5.6-common \ +
-    #php5.6-fpm \ +
-    #​php5.6-mysql \ +
-    php5.6-pgsql \ +
-    php5.6-mbstring \ +
-    php5.6-curl \ +
-    php5.6-dev \ +
-    php5.6-gd \ +
-    php5.6-xml \ +
-    php5.6-mcrypt \ +
-    php5.6-xmlrpc \ +
-    php5.6-zip \ +
-    #​libxrender1 ​ \ +
-    #libxext6 \ +
-    #​libfontconfig1 \ +
-    #​wkhtmltopdf \ +
-    #xvfb \ +
-    git \ +
-    #curl \ +
-    apache2 \ +
-    libapache2-mod-php5.6 && \ +
-    #openssl && \ +
-    apt-get clean && \ +
-    echo "​ServerName localhost"​ >> /​etc/​apache2/​apache2.conf +
- +
-# Add apache config to enable .htaccess and do some stuff you want +
-COPY apache_default /​etc/​apache2/​sites-available/​000-default.conf +
- +
-# Enable mod rewrite and listen to localhost +
-RUN a2enmod rewrite && \ +
- echo "​ServerName localhost"​ >> /​etc/​apache2/​apache2.conf +
- +
-################################################################​ +
-# CakePHP 2.1 installation from source                # +
-################################################################​ +
- +
-# Clonar Cakephp 2.1.5 +
-RUN mkdir /​var/​www/​html/​cakephp && git clone --branch 2.1.5 --depth 1 https://​github.com/​cakephp/​cakephp.git /​var/​www/​html/​cakephp +
- +
-####################################################​ +
-# Expose port and run Apache webserver ​            # +
-####################################################​ +
- +
-EXPOSE 80 +
-CMD ["/​usr/​sbin/​apache2ctl",​ "​-DFOREGROUND"​] +
-</​code>​ +
- +
-E crie outro arquivo chamado ''​apache_default'',​ com o conteúdo abaixo: +
- +
-<​code>​ +
-<​VirtualHost *:80> +
-        ServerAdmin webmaster@localhost +
- +
-        DocumentRoot /​var/​www/​html +
-        <​Directory /> +
-                Options FollowSymLinks +
-                AllowOverride None +
-        </​Directory>​ +
-        <​Directory /​var/​www/​html>​ +
-                Options Indexes FollowSymLinks MultiViews +
-                # To make .htaccess work +
-                AllowOverride FileInfo +
-                Order allow,​deny +
-                allow from all +
-        </​Directory>​ +
- +
-        ScriptAlias /cgi-bin/ /​usr/​lib/​cgi-bin/​ +
-        <​Directory "/​usr/​lib/​cgi-bin">​ +
-                AllowOverride None +
-                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch +
-                Order allow,​deny +
-                Allow from all +
-        </​Directory>​ +
- +
-        ErrorLog ${APACHE_LOG_DIR}/​error.log +
- +
-        # Possible values include: debug, info, notice, warn, error, crit, +
-        # alert, emerg. +
-        LogLevel debug +
- +
-        CustomLog ${APACHE_LOG_DIR}/​access.log combined +
- +
-+
- # Set HTTPS environment variable if we came in over secure +
- #  channel. +
- SetEnvIf x-forwarded-proto https HTTPS=on +
- +
-</​VirtualHost>​ +
-</​code>​ +
- +
-E então após salvar os arquivos vá até o terminal e entre com os comandos abaixo: +
- +
-<​code>​ +
-#navegue até a pasta "​apache_php"​ +
-cd ~/​apache_php +
- +
-# construindo a docker... pode demorar um pouco dependendo da sua conexão com a Internet +
-sudo docker-compose build +
- +
-# subindo a docker e colocando-a em background +
-sudo docker-compose up -d +
-</​code>​ +
- +
-Pronto! Para testar se o Apache está OK, basta abrir um navegador e acessar o endereço: ​[[http://​localhost:​8092]]. +
- +
-===== Vinculando as dockers e finalizando a configuração ===== +
- +
-Agora temos as duas dockers prontas, uma com o banco e a outra com o servidor da aplicação. Precisamos agora baixar os códigos da aplicação. Observe no arquivo "​~/​apache_php/​docker-compose.yml"​ que o diretório "/​tmp/​sigaeduext_git"​ ficou definido como sendo o diretório dos códigos da aplicação. Portanto para baixar os códigos do repositório para este diretório será necessário criar o arquivo "/​tmp/​install.sh"​ abaixo: +
- +
-<​code>​ +
-#​!/​bin/​bash +
- +
-DIRETORIO=/​tmp/​sigaeduext_git +
-BRANCH=homolog +
-DB_HOST=173.20.0.1 +
-DB_USER=postgres +
-DB_PASS=1234 +
-DB_PORT=5003 +
-DB_NAME=dbsigaedu +
-  +
-read -r -p "1. Deseja apagar tudo do $DIRETORIO (yes/no)? " APAGAR_DIRETORIO +
- +
-if [ $APAGAR_DIRETORIO == "​yes"​ ]; +
-then +
- echo " > Diretorio limpo"​ +
- rm -r $DIRETORIO +
- mkdir $DIRETORIO +
- chmod 775 -R $DIRETORIO +
- +
- echo "2. Baixando os arquivos do projeto do Bitbucket: " +
- git clone -b $BRANCH ​https://​bitbucket.org/​ifms/​sigaeduext.git $DIRETORIO +
- +
- echo "3. Setando pastas padrão..."​ +
- mkdir $DIRETORIO/​tmp +
- mkdir $DIRETORIO/​tmp/​cache +
- mkdir $DIRETORIO/​tmp/​cache/​models +
- mkdir $DIRETORIO/​tmp/​cache/​persistent +
- mkdir $DIRETORIO/​tmp/​cache/​views +
- mkdir $DIRETORIO/​tmp/​logs +
- mkdir $DIRETORIO/​tmp/​sessions +
- mkdir $DIRETORIO/​tmp/​tests +
- +
- echo "4. Criando configurações do banco de dados"​ +
- echo "<?​php +
- class DATABASE_CONFIG { +
-    public \$sigaedu = array( +
-        '​datasource'​ => '​Database/​Postgres',​ +
-         '​persistent'​ => false, +
-         '​host'​ => '​$DB_HOST',​ +
-         '​login'​ => '​$DB_USER',​ +
-         '​password'​ => '​$DB_PASS',​ +
-         '​encoding'​ => '​utf8',​ +
-         '​port'​ => '​$DB_PORT',​ +
-         '​database'​ => '​$DB_NAME'​ +
-     ); +
- }  +
- ?>"​ > $DIRETORIO/​Config/​database.php +
- +
-else +
- echo " > Mantido diretório"​ +
-fi +
- +
-echo "​Concedendo permissões de arquivos..."​ +
-chown -R www-data:​www-data $DIRETORIO +
-chmod 777 -R $DIRETORIO/​tmp  +
-chmod 775 -R $DIRETORIO/​upload +
-chmod 775 -R $DIRETORIO/​Fotos +
-chmod 775 -R $DIRETORIO/​PATs +
-</​code>​ +
- +
-Feito isto, vá até o terminal e execute os comandos abaixo: +
-<​code>​ +
-# dar permissão de execução no arquivo +
-sudo chmod +x /​tmp/​install.sh +
- +
-# executar arquivo... será solicitado o usuário e a senha do Bitbucket +
-sudo sh /​tmp/​install.sh +
-</​code>​ +
- +
-Se tudo estiver OK ao acessar o endereço: [[http://​localhost:​8092/​cakephp/​sigaeduext_git]] você verá a tela de login da aplicação. Para acessar o usuário administrativo basta entrar com usuário: **admin** e senha **1234**.+
sistema_academico/criacao_de_ambiente_de_desenvolvimento.txt · Última modificação: 21/06/2021 16:55 por Carlitos