Guia Windows
Motivação
Porquê um serviço de alojamento em Windows?
Uma plataforma Windows, com serviço de alojamento, é suficientemente indicada para o papel de Ambiente de Desenvolvimento Offline. Disponibiliza o ambiente de sistema com que a maioria dos utilizadores está habituada, permitindo ao mesmo tempo a “simulação” quase completa de todas as funcionalidades do Ambiente de Produção Online. O ambiente de produção deve manter-se o mais estável possível, em qualquer altura, o que implica que trabalhados de manutenção correctiva ou evolutiva devam ser realizados e testados num outro ambiente. O custo e o grau de dificuldade na implantação de um serviço de alojamento de nível profissional não é compensador face a este ambiente de desenvolvimento baseado na plataforma Windows.
Quais os conhecimentos essenciais?
Pressupõem-se que o utilizador sabe como e já configurou os serviços DNS e DHCP em Windows. Além disso, sabe como usar um editor de texto, que será necessário para a configuração e optimização através da edição dos ficheiros httpd.conf e php.ini.
Quais as soluções FOSS necessárias?
Existem configurações mais avançadas?
Sim, claro. Para isso, reveja os guias sobre:
- Hardening Hosting Services - guia que explica como aumentar a segurança e “endurecer” as configurações destas soluções, por forma a proteger o sistema face a ataques externos ou por forma a optimizar o rendimento do serviço de alojamento.
Arquitectura
::
:: Incluir diagrama do serviço de alojamento Windows.
Este guia recomenda a seguinte estrutura hierárquica de pastas:
- C:\Hosting\ - Pasta de topo do serviço de alojamento, que agrega todas as soluções e sites alojados no ambiente de desenvolvimento offline.
- C:\Hosting\Apache2\ - Pasta do servidor de páginas HTML, criada pelo processo de instalação do Apache HTPP Server. A configuração desta solução é efectuada no ficheiro httpd.conf, localizado em C:\Hosting\Apache2\conf\.
- C:\Hosting\PHP\ - Pasta do interpretador PHP, criada durante o processo de instalação. A configuração desta solução é efectuada no ficheiro php.ini, localizado em C:\Windows\.
- C:\Hosting\MySQL\ - Pasta do motor de bases de dados, criada pelo processo de instalação do MySQL. Os ficheiros físicos das bases de dados localizam-se na sub-pasta C:\Hosting\MySQL\data\.
- C:\Hosting\Sites\ - Pasta onde irão residir todas as aplicações Web e websites.
- C:\Hosting\Sites\DevEnv\ - Pasta de topo das soluções usadas no ambiente de desenvolvimento, por exemplo para gestão de incidentes e para controlo de versões. Deve incluir pelo menos a interface Web a base de dados MySQL:
- C:\Hosting\Sites\DevEnv\dba\ - Pasta da interface de acesso a bases de dados MySQL, configurada pelo ficheiro config.inc.php.
Desta forma, basta efectuar o backup à pasta C:\Hosting\Sites\ para salvaguardar todos os projectos e trabalhos realizados até à altura do backup.
Isto permite ter todos os dados, ficheiros e pastas relacionados com o serviço de alojamento num único local, que facilita quer a salvaguarda (backup) quer a reposição (restore) do serviço de alojamento. Além disso, organiza os websites que recorrem a este serviço de alojamento de forma simples e prática. Por exemplo, no caso da DoWeDo-IT, o ambiente de desenvolvimento extende a pasta C:\Hosting\Sites\ da seguinte forma:
- C:\Hosting\Sites\doClients\ - Pasta de topo com todos os domains virtuais, um por cada cliente.
- C:\Hosting\Sites\doSolutions\ - Pasta de topo com todas as soluções disponibilizadas pela DoWeDo-IT.
- C:\Hosting\Sites\doVendors\ - Pasta de topo com todas as soluções open-source utilizadas pela DoWeDo-IT.
Objectivos
Os principais objectivos que se procuram atingir neste documento são:
- Informar e guiar o utilizador na instalação de um serviço de alojamento Windows.
- Informar e guiar o utilizador na configuração básica de um serviço de alojamento Windows.
- Mostrar as vantagens de um serviço de alojamento Windows como parte de um ambiente de desenvolvimento offline.
- Identificar as semelhanças / diferenças entre os ambientes de desenvolvimento (offline) e de produção (online).
Procedimentos
::
::
Precisa de direitos de administrador do sistema Windows onde está a proceder à instalação deste serviço de alojamento.
Recomenda-se que o utilizador arquive todas as aplicações na pasta C:\Downloads\. Não é obrigatório, desde que o utilizador tenha sempre presente a localização do ficheiro no seu espaço de armazenamento local. Nas instruções seguintes, parte-se do princípio que o utilizador sabe aceder aos ficheiros que transferiu dos sites oficiais, para poder executar os passos de instalação aqui indicados.
Apache
Descrever, com imagens, a instalação e configuração da solução.
- Efectuar o download do ficheiro apache_2.0.53-win32-x86-no_ssl.msi, a partir do mirror recomendado, para a pasta de downloads local.
- Iniciar o processo de instalação, com um duplo-clique no ficheiro MSI.
- Aceitar os termos de utilização (licença Open-Source Apache).
- Indicar o domain de rede local. Por exemplo: dowedo-it.com.lan.
- Indicar o nome do servidor. Por exemplo: host.dowedo-it.com.lan.
- Indicar o endereço de correio electrónico do webmaster. Por exemplo: webmaster@dowedo-it.com.lan.
- Indicar que a instalação é global a todos os utilizadores.
- Escolher a opção de instalação personalizável (custom).
- Indicar a pasta de instalação de topo como sendo a pasta C:\Hosting\. Isso configura automaticamente a pasta de instalação da aplicação para C:\Hosting\Apache2\.
- Aguardar que o processo de instalação termine com sucesso. Se tudo correr bem, deve existir agora um ícone que representa uma pena Apache na TrayIcon, que tem por cima uma pequena seta verde. Se em vez da seta verde existir um quadrado vermelho, então houve um erro grave na instalação, e não se pode prosseguir até se resolver a causa desse erro.
- Verificar que o serviço está a funcionar, acedendo a http://127.0.0.1.
- Criar as sub-pastas dentro da pasta C:\Hosting\:
- C:\Hosting\Sites\.
- C:\Hosting\Sites\DevEnv\.
- Editar o ficheiro C:\Hosting\Apache2\conf\httpd.conf, de acordo com as instruções mais abaixo.
- Testar a configuração, correndo o script Test Configuration que se encontra no Grupo Apache HTTP Server do StartMenu.
- Se tudo estiver correcto então reiniciar o serviço Apache2 for Windows, clicando com o botão esquerdo no TrayIcon do Apache2.
- Verificar que o serviço está a funcionar, acedendo a http://127.0.0.1. A página agora apresentada deve mostrar a sub-pasta DevEnv.
httpd.conf
Encontrar cada uma das seguintes linhas:
...
DocumentRoot "C:/Hosting/Apache2/htdocs"
...
<Directory "C:/Hosting/Apache2/htdocs">
...
Options Indexes FollowSymLinks
...
DirectoryIndex index.html index.html.var
...
E alterar para:
...
#DocumentRoot "C:/Hosting/Apache2/htdocs"
DocumentRoot "C:/Hosting/Sites"
...
#<Directory "C:/Hosting/Apache2/htdocs">
<Directory "C:/Hosting/Sites">
...
Options Indexes FollowSymLinks ExecCGI
...
DirectoryIndex index.html index.html.var index.php default.php
...
PHP
Descrever, com imagens, a instalação e configuração da solução.
- Efectuar o download dos ficheiros php-4.3.10-Win32.zip e php-4.3.10-installer.exe, a partir do mirror recomendado, para a pasta de downloads local.
- Iniciar o processo de instalação, com um duplo-clique no ficheiro EXE.
- Aceitar os termos de utilização (licença Open-Source PHP).
- Escolher a instalação avançada.
- Indicar a pasta de instalação como sendo a pasta C:\Hosting\PHP\.
- Escolher não salvaguardar ficheiros que serão substituídos.
- Aceitar os valores por omissão das pastas de upload (C:\Hosting\PHP\uploadtemp\) e dados de sessão (C:\Hosting\PHP\sessiondata\).
- Indicar como servidor de correio electrónico, SMTP, o servidor do ISP. Por exemplo: smtp.sapo.pt.
- Indicar o endereço de correio electrónico do webmaster. Por exemplo: webmaster@dowedo-it.com.lan.
- Seleccionar o nível de erros All errors, warnings and notices.
- Seleccionar o serviço HTTP como sendo o Apache. No entanto, esta configuração irá ignorar a opção seguinte para escolher as extensões de ficheiros com código-fonte PHP.
- Editar o ficheiro C:\Windows\php.ini, de acordo com as instruções mais abaixo.
- Decompactar o conteúdo do ficheiro ZIP para a pasta C:\Hosting\PHP\, copiando por cima de todos os ficheiros já existentes. Este passo é importante porque só o ZIP contém todas as libraries do pacote PHP completo.
- Copiar os ficheiros DLL da sub-pasta C:\Hosting\PHP\dlls\ para a pasta C:\Windows\System32\.
- Copiar o ficheiro php4ts.dll da pasta C:\Hosting\PHP\ para a pasta C:\Windows\System32\.
- Editar o ficheiro C:\Hosting\Apache2\conf\httpd.conf, de acordo com as instruções mais abaixo.
- Testar a configuração, correndo o script Test Configuration que se encontra no Grupo Apache HTTP Server do StartMenu.
- Se tudo estiver correcto então reiniciar o serviço Apache2 for Windows, clicando com o botão esquerdo no TrayIcon do Apache2.
- Criar e colocar o ficheiro phpinfo.php na pasta C:\Hosting\Sites\DevEnv\.
- Verificar que o serviço está a funcionar, acedendo a http://127.0.0.1/DevEnv/phpinfo.php. Este ficheiro mostra toda a informação sobre o Engine PHP a correr em Apache2 for Windows.
php.ini
Encontrar cada uma das seguintes linhas:
...
extension_dir = "./"
...
;extension=php_gd2.dll
...
E alterar para:
...
extension_dir = "C:/Hosting/PHP/extensions"
...
extension=php_gd2.dll
...
phpinfo.php
httpd.conf
Encontrar cada uma das seguintes linhas:
...
#LoadModule ssl_module modules/mod_ssl.so
...
AddType application/x-gzip .gz .tgz
...
E alterar para:
...
#LoadModule ssl_module modules/mod_ssl.so
LoadModule php4_module "C:/Hosting/PHP/sapi/php4apache2.dll"
...
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php3
AddType application/x-httpd-php .phtml
...
MySQL
Descrever, com imagens, a instalação e configuração da solução.
- Efectuar o download do ficheiro mysql-4.0.23-win.zip, a partir do mirror recomendado, para a pasta de downloads local.
- Descompactar o conteúdo do ficheiro ZIP para uma sub-pasta da pasta de downloads local ao sistema.
- Iniciar o processo de instalação, com um duplo-clique no ficheiro EXE que foi descomprimido para a sub-pasta dentro da pasta downloads.
- …
- Efectuar o download do ficheiro mysql-administrator-1.0.19-win.msi, a partir do mirror recomendado, para a pasta de downloads local.
- Iniciar o processo de instalação, com um duplo-clique no ficheiro MSI.
- …
phpMyAdmin
Descrever, com imagens, a instalação e configuração da solução.
- Efectuar o download do ficheiro phpMyAdmin-2.6.1.tar.bz2, a partir do mirror recomendado, para a pasta de downloads local.
- Descompactar o conteúdo do ficheiro ZIP para a sub-pasta C:\Hosting\Sites\DevEnv\dba\.
- Editar o ficheiro de configuração, config.inc.php, como abaixo se indica.
config.inc.php
Ir para o fim do ficheiro, e alterar de:
/**
* File Revision - do not change either!
*/
$cfg['FileRevision'] = '$Revision: 2.48 $';
?>
Para:
/**
* File Revision - do not change either!
*/
$cfg['FileRevision'] = '$Revision: 2.48 $';
include('local.php');
?>
local.php
Criar o novo ficheiro local.php, na pasta C:\Hosting\Sites\DevEnv\dba\:
<?php
$cfg['PmaAbsoluteUri_DisableWarning'] = TRUE;
$cfg['PmaNoRelation_DisableWarning'] = TRUE;
$cfg['Servers'][$cfg['ServerDefault']]['host'] = 'localhost';
$cfg['Servers'][$cfg['ServerDefault']]['compress'] = TRUE;
$cfg['Servers'][$cfg['ServerDefault']]['user'] = '«username_dba»';
$cfg['Servers'][$cfg['ServerDefault']]['password'] = '«password_dba»';
$cfg['ShowStats'] = TRUE;
$cfg['ShowMysqlInfo'] = TRUE;
$cfg['ShowMysqlVars'] = TRUE;
$cfg['ShowPhpInfo'] = TRUE;
$cfg['ShowChgPassword'] = TRUE;
$cfg['ShowAll'] = TRUE;
$cfg['MaxRows'] = 100;
$cfg['DefaultLang'] = 'en-iso-8859-1';
$cfg['DefaultCharset'] = 'iso-8859-1';
?>
Alterar o valor «username_dba» para o utilizador DBA (normalmente root) e o valor «password_dba» para a senha de acesso (normalmente vazia).