Menus do sistema
- Tela inicial > Informações de Usuário
Assistência Estudantil
Login Único Gov BR
Plano de Ensino
Horário Docente
Área do Estudante
Outras informações
Administração
Menus do sistema
Assistência Estudantil
Login Único Gov BR
Plano de Ensino
Horário Docente
Área do Estudante
Outras informações
Administração
Essa é uma revisão anterior do documento!
Para facilitar e padronizar a criação do ambiente de desenvolvimento foi adotado o uso de 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 docker-compose. As dockers funcionam em diferentes sistemas operacionais, porém recomendamos o uso de Ubuntu ou Debian atualizados.
Serão necessárias duas dockers. São elas:
Para construir essa docker crie uma pasta chamada “postgres”. Dentro dessa pasta crie um arquivo chamado “docker-compose.yml” com o conteúdo:
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"
ports:
- 5003:5432
networks:
static-network:
ipam:
config:
- subnet: 173.20.0.1/32
Copie o arquivo de DUMP (padrão compactado com Inserts explícitos) do banco 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:
#navegue até a pasta "postgres"
cd ~/postgres
# construindo a docker... pode demorar um pouco dependendo da sua conexão com a Internet
docker-compose build
# subindo a docker e colocando-a em background
docker-compose up -d
# quando tiver UP, vamos restaurar o DUMP do banco nela... isso pode demorar um pouco, algumas tabelas são grandes
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
docker exec -it postgres sh -c "psql -U postgres -d dbsigaedu -c \"UPDATE usuario SET senha = md5('1234')\""
Pronto! Caso queira testar essa conexão pode utilizar o pgAdmin e acessar o banco de dados “dbsigaedu” pela porta 5003 através do IP 173.20.0.1, conforme definido no docker-compose.
Para construir essa docker crie uma pasta chamada “apache_php”. Dentro dessa pasta crie um arquivo chamado “docker-compose.yml” com o conteúdo:
version: '2'
services:
servidor:
build: .
container_name: apache_php
ports:
- "8092:80"
volumes:
- /tmp/sigaeduext_git:/var/www/html/cakephp/sigaeduext_git
Crie um outro arquivo chamado “Dockerfile” com o conteúdo:
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"]
E crie outro arquivo chamado “apache_default”, com o conteúdo abaixo:
<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>
E então após salvar os arquivos vá até o terminal e entre com os comandos abaixo:
#navegue até a pasta "apache_php" cd ~/apache_php # construindo a docker... pode demorar um pouco dependendo da sua conexão com a Internet docker-compose build # subindo a docker e colocando-a em background docker-compose up -d
Pronto! Para testar se o Apache está OK, basta abrir um navegador e acessar o endereço: http://localhost:8092.
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:
#!/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