PD
Preparando uma instalação para o Adianti Framework em Windows 10
Para trabalharmos bem com uma ferramenta de desenvolvimento é fundamental a preparação do ambiente, e com o Adianti Framework não é diferente.
Temos já há algum tempo no ar o tutorial "Preparando um servidor gabarito para o Adianti Framework (18.04)" (https://www.adianti.com.br/forum/pt/view_4402),
que ensina a configurar um servidor Linux Ubuntu 18.04 para rodar uma aplicação desenvolvida com o Adianti Framework. Aqui na Adianti utilizamos principalmente
Linux e recomendamos fortemente seu uso, tendo em vista sua robustez. Mas se você preferir desenvolver em Windows, fizemos também para você um tutorial.
Vamos preparar um servidor Windows 10 server com PHP 7.3.5 e MySQL, explicado a seguir com o instaldor XAMPP:
A maneira mais prática de instalar um servidor web e banco de dados no Windows é fornecida por ambientes de desenvolvimento prontos, como é o caso do XAMPP. O XAMPP é o ambiente de desenvolvimento PHP para Windows mais popular da atualidade além de ser 100% gratuito. Com ele podemos instalar um ambiente completo em segundos, e o instalador disponibiliza as seguintes ferramentas:
- Apache
- MySQL
- PHP
Você pode baixar o instalador do XAMPP no site oficial da ferramenta, não é necessário criar conta para realizar o download, basta escolher a versão desejada:
https://www.apachefriends.org/pt_br/download.html
A instalação do XAMPP não requer nenhuma configuração adicional, basta clicar em "Seguir" até completar a instalação. Quando ela terminar o painel de controle será exibido.
Para verificar se o servidor web está funcionando você deve iniciar o apache, para isso clique em start:
Depois acessar o endereço localhost no browser:
Você deve ver a seguinte página:
Ao iniciar o Apache com o XAMPP você já tem um servidor para interpretar os seus códigos .php. Você pode verificar as configurações padrão da sua instalação XAMPP acessando:
As configurações do PHP definidas pelo XAMPP não são as melhores para um ambiente de desenvolvimento, por esse motivo precisamos alterá-las. Você deve adicionar as configurações a seguir no fim do arquivo de configurações do PHP (php.ini). Eles servem para habilitar a exibição e log de erros, aumentar o limite de uso de RAM, o tempo de execução, o tempo de sessão, e definir limites de upload.
php.ini
Em ambientes de produção você deve usar outras configurações, embora não recomendamos o uso de ambientes Windows para produção, você deve adicionar as seguintes linhas no seu php.ini:
php.ini
Segurança no PHP
Agora algumas configurações para manter o mais seguro, principalmente para proteger as sessões. As seguintes configurações ajudam a diminuir significativamente a chance de ataques como session hijack e session fixation. Além disso, o nosso template de criação de aplicações já gera novos IDs de sessão a cada login (session_regenerate_id). Você deve adicionar as configurações no final do arquivo de configuração do PHP (php.ini):
php.ini
Para aplicar as novas configurações você deve reiniciar o processo do Apache.
O XMAPP acompanha o MySQL/MariaDB e não é necessário instalar um novo pacote, bastando iniciar o processo. Para configurações da base você pode acessar o phpmyadmin que também acompanha a ferramenta.
Agora vamos instalar o Template do Adianti Framework, que já vem com controle de login, permissões de acesso, gestão de documentos, comunicação entre usuários, dentre outros recursos comuns na criação de sistemas. Primeiro você deve baixar o template no site:
https://www.adianti.com.br/download-center?app=template
Depois você deve extrair o conteúdo para uma pasta dentro do XAMPP, você deve criar essa pasta em:
No meu caso ficou:
Agora mude para ficar com o nome de seu projeto. Ex: projeto1
Dentro deste diretório estão todos os arquivos extraídos do template. O template já estará funcionando basta acessar:
Obs: Edite o arquivo app/config/application.ini alterando a variável application para conter o nome de seu projeto (projeto1).
Para logar utilize usuário admin e senha admin.
O Template do Framework acompanha bases de dados de permissão (permission), comunicação (communication), e Logs (logs). Mas o banco de logs (log) vamos manter separado, pois facilita o backup. Afinal, como o log crescerá rapidamente, não vamos querer fazer backup dele todo dia.
Essas bases de dados são distribuídas em SQLite para facilitar a o rápido setup e início do desenvolvimento, tendo em vista que não demandam configuração adicional. Mas queremos usar as bases de dados no MySQL recém-instalado. Para tal, precisaremos primeiro criar essas bases de dados do Template.
Para criar um banco de dados acesse o phpmyadmin
Depois, menu Databases, defina um nome e clique em Create.
Crie 2 bases de dados, uma para seu projeto (projeto1), e outra para os logs (projeto1_logs) Com a base projeto1 criada você deve acessar a aba SQL e executar o script do banco de dados de permissões e também de comunicação. Esses scripts podem ser encontrados dentro do template em:
Na base de logs (projeto1_logs), você deve restaurar o script que está em:
Obs: Para Mysql, altere os tipos timestamp para datetime.
Depois de criar o banco você deve criar um usuário com permissões de acesso a essa base.
Em seguida, você deve editar o arquivo que contém a configuração de acesso ao banco de permissões (permission) e alterar os campos name, user, pass conforme você criou:
app/config/permission.ini
Em seguida, você deve alterar o arquivo que contém a configuração de acesso ao banco de comunicação (communication) e alterar os campos name, user, pass conforme você criou:
app/config/communication.ini
Por fim, altere o arquivo que contém a configuração de acesso ao banco de logs (log) e alterar os campos name, user, pass conforme você criou:
app/config/log.ini
Pronto, agora você tem um template pronto para o desenvolvimento!
Temos já há algum tempo no ar o tutorial "Preparando um servidor gabarito para o Adianti Framework (18.04)" (https://www.adianti.com.br/forum/pt/view_4402),
que ensina a configurar um servidor Linux Ubuntu 18.04 para rodar uma aplicação desenvolvida com o Adianti Framework. Aqui na Adianti utilizamos principalmente
Linux e recomendamos fortemente seu uso, tendo em vista sua robustez. Mas se você preferir desenvolver em Windows, fizemos também para você um tutorial.
Vamos preparar um servidor Windows 10 server com PHP 7.3.5 e MySQL, explicado a seguir com o instaldor XAMPP:
Instruções iniciais
A maneira mais prática de instalar um servidor web e banco de dados no Windows é fornecida por ambientes de desenvolvimento prontos, como é o caso do XAMPP. O XAMPP é o ambiente de desenvolvimento PHP para Windows mais popular da atualidade além de ser 100% gratuito. Com ele podemos instalar um ambiente completo em segundos, e o instalador disponibiliza as seguintes ferramentas:
- Apache
- MySQL
- PHP
Você pode baixar o instalador do XAMPP no site oficial da ferramenta, não é necessário criar conta para realizar o download, basta escolher a versão desejada:
https://www.apachefriends.org/pt_br/download.html
Instalação do XAMPP
A instalação do XAMPP não requer nenhuma configuração adicional, basta clicar em "Seguir" até completar a instalação. Quando ela terminar o painel de controle será exibido.
Para verificar se o servidor web está funcionando você deve iniciar o apache, para isso clique em start:
Depois acessar o endereço localhost no browser:
http://localhost
Você deve ver a seguinte página:
Configuração do PHP
Ao iniciar o Apache com o XAMPP você já tem um servidor para interpretar os seus códigos .php. Você pode verificar as configurações padrão da sua instalação XAMPP acessando:
http://localhost/dashboard/phpinfo.php
As configurações do PHP definidas pelo XAMPP não são as melhores para um ambiente de desenvolvimento, por esse motivo precisamos alterá-las. Você deve adicionar as configurações a seguir no fim do arquivo de configurações do PHP (php.ini). Eles servem para habilitar a exibição e log de erros, aumentar o limite de uso de RAM, o tempo de execução, o tempo de sessão, e definir limites de upload.
php.ini
memory_limit = 256M
max_execution_time = 120
post_max_size = 100M
upload_max_filesize = 100M
session.gc_maxlifetime = 14000
error_reporting = E_ALL
Em ambientes de produção você deve usar outras configurações, embora não recomendamos o uso de ambientes Windows para produção, você deve adicionar as seguintes linhas no seu php.ini:
php.ini
display_errors = Off
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE
Segurança no PHP
Agora algumas configurações para manter o mais seguro, principalmente para proteger as sessões. As seguintes configurações ajudam a diminuir significativamente a chance de ataques como session hijack e session fixation. Além disso, o nosso template de criação de aplicações já gera novos IDs de sessão a cada login (session_regenerate_id). Você deve adicionar as configurações no final do arquivo de configuração do PHP (php.ini):
php.ini
session.name = CUSTOMSESSID
session.use_only_cookies = 1
session.cookie_httponly = true
session.use_trans_sid = 0
session.entropy_file = /dev/urandom
session.entropy_length = 32
Para aplicar as novas configurações você deve reiniciar o processo do Apache.
Banco de dados
O XMAPP acompanha o MySQL/MariaDB e não é necessário instalar um novo pacote, bastando iniciar o processo. Para configurações da base você pode acessar o phpmyadmin que também acompanha a ferramenta.
http://localhost/phpmyadmin
Template
Agora vamos instalar o Template do Adianti Framework, que já vem com controle de login, permissões de acesso, gestão de documentos, comunicação entre usuários, dentre outros recursos comuns na criação de sistemas. Primeiro você deve baixar o template no site:
https://www.adianti.com.br/download-center?app=template
Depois você deve extrair o conteúdo para uma pasta dentro do XAMPP, você deve criar essa pasta em:
C:\xampp\htdocs\
No meu caso ficou:
C:\xampp\htdocs\template
Agora mude para ficar com o nome de seu projeto. Ex: projeto1
C:\xampp\htdocs\projeto1
Dentro deste diretório estão todos os arquivos extraídos do template. O template já estará funcionando basta acessar:
http://localhost/projeto1/
Obs: Edite o arquivo app/config/application.ini alterando a variável application para conter o nome de seu projeto (projeto1).
Para logar utilize usuário admin e senha admin.
Banco de dados do Template
O Template do Framework acompanha bases de dados de permissão (permission), comunicação (communication), e Logs (logs). Mas o banco de logs (log) vamos manter separado, pois facilita o backup. Afinal, como o log crescerá rapidamente, não vamos querer fazer backup dele todo dia.
Essas bases de dados são distribuídas em SQLite para facilitar a o rápido setup e início do desenvolvimento, tendo em vista que não demandam configuração adicional. Mas queremos usar as bases de dados no MySQL recém-instalado. Para tal, precisaremos primeiro criar essas bases de dados do Template.
Para criar um banco de dados acesse o phpmyadmin
http://localhost/phpmyadmin
Depois, menu Databases, defina um nome e clique em Create.
Crie 2 bases de dados, uma para seu projeto (projeto1), e outra para os logs (projeto1_logs) Com a base projeto1 criada você deve acessar a aba SQL e executar o script do banco de dados de permissões e também de comunicação. Esses scripts podem ser encontrados dentro do template em:
app/database/permission.sql
app/database/communication.sql
Na base de logs (projeto1_logs), você deve restaurar o script que está em:
app/database/logs.sql
Obs: Para Mysql, altere os tipos timestamp para datetime.
Depois de criar o banco você deve criar um usuário com permissões de acesso a essa base.
Em seguida, você deve editar o arquivo que contém a configuração de acesso ao banco de permissões (permission) e alterar os campos name, user, pass conforme você criou:
app/config/permission.ini
host = localhost
port =
name = projeto1
user = mysql
pass = senha
type = mysql
slog =
Em seguida, você deve alterar o arquivo que contém a configuração de acesso ao banco de comunicação (communication) e alterar os campos name, user, pass conforme você criou:
app/config/communication.ini
host = localhost
port =
name = projeto1
user = mysql
pass = senha
type = mysql
slog =
Por fim, altere o arquivo que contém a configuração de acesso ao banco de logs (log) e alterar os campos name, user, pass conforme você criou:
app/config/log.ini
host = localhost
port =
name = projeto1_logs
user = mysql
pass = senha
type = mysql
slog =
Pronto, agora você tem um template pronto para o desenvolvimento!
Acredito que o Wamp Server para o windows é muito melhor que o XAMP WINDOWS.