+5

Configurando o Apache com SSL e PHP no Windows

criado por Marcos Regis em 01/10/2009 10:50pm
Configurando o PHP para o Apache
Vou indicar duas formas de configurar o PHP. Uma é o modo NNF (já explicado o que é). A outra é o modo manual.
O modo manual é mais indicado para os casos de upgrade de versão de PHP. Para uma instalação limpa (do zero) o mais adequado é o modo usando o installer.
Se é a primeira vez que você instala o PHP em seu computador pode ignorar este passo e ir para a configuração NNF.
O primeiro passo para realizar um upgrade é fazer backup da configuração atual. Apenas compacte o seu diretório de isntalação do php.
Para ambos os métodos você deve parar o serviço do Apache. Isso pode ser feito digitando em um prompt de comando:

 net stop apache2 
 
     **NOTA** Neste exemplo não vou usar a versão 5.3 
     por achar que ainda é incomum ter esta versão em hosts.
     A instalação desta versão em nada difere da 5.2 e caso 
    deseje usá-la baixe esta versão ao invés da indicada.

Modo Manual
Renomeie o arquivo php.ini para meu.php.ini
Baixe o pacote de instalação do PHP.
No momento em que escrevo este manual a versão disponível mais atual é a 5.2.12 que pode ser obtida através da URL http://br.php.net/get/php-5.2.12-Win32.zip/from/this/mirror.
Se estiver simulando um ambiente instale a mesma versão do servidor alvo.
Descompacte o conteúdo do arquivo no mesmo diretório onde o php está atualmente instalado e mande sobrescrever todos os arquivos (ex.:C:\php).
Abra o arquivo httpd.conf que está dentro do diretório conf do Apache e adicione ou substitua as seguintes linhas:
# Adicionando o módulo php ao apache
LoadModule php5_module c:/php/php5apache2_2.dll
# Adicionando suporte a extensão .php
AddType application/x-httpd-php .php
# configure o caminho para o arquivo php.ini
PHPIniDir "c:/php"
.

Certifique-se de alterar o caminho para o diretório do PHP corretamente alterando todas as referências para o caminho correto.

Copie o arquivo libmysql.dll contido na raiz do diretório de instalação do php para o diretório System32 do Windows sobrescrevendo a existente (se houver) ou para o diretório bin do Apache. Isto vai lhe poupar um monte de problemas com relação a conexão com o MySQL, muito comum quando se atualiza o PHP.

Abra o arquivo php.ini existente (se houver) e faça as modificações tendo como base seu arquivo de backup (meu.php.ini). Caso não haja nenhum arquivo php.ini você pode renomear de volta seu arquivo de backup. Preste atenção as seguintes linhas de exemplos:
; Caminho para o diretório de extensões.
extension_dir = "C:/php/ext/"
; Caminho para o arquivo de log de error.
error_log = "c:/php/log/php_error.log"
; Path do php. Usado para buscar arquivos sem a necessidade de indicar o caminho completo
include_path=".;C:/php/pear"

Verifique se estas entradas existem e se o caminho corresponde corretamente à pasta de instalação do PHP.

Modo NNF

Execute o arquivo de instalação (no momento de escrever este manual a versão mais atual era a 5.2.12). Esta pode ser obtida a partir do link http://br.php.net/get/php-5.2.12-win32-installer.msi/from/this/mirror .


Escolha o diretório de destino ou use o padrão informado


Escolha a versão do Webserver para qual vai instalar o PHP como módulo. No nosso caso devemos selecionar a versão Apache 2.2


Neste momento devemos indicar ao instalador o diretório onde se encontra o arquivo de configuração do Apache (httpd.conf).


Navegue até o diretório conf do Apache e selecione-o. Clique em Next após tê-lo feito

Na configuração da instalação selecione os elementos que desejar.
Eu indico a seguinte escolha:
Em Extensions: GD2, Multi-Byte String, MySQL, PDO→MySQL, XML-RPC, XSL.
Caso vá utilizar Oracle e já tenha o client instalado selecione também Oracle e PDO→Oracle. em Extra: Pear Install

Clique em NEXT Finalize clicando em Install e depois em Finish.
Neste momento a instalação está concluída e ao iniciar o Apache ele já deverá carregar o PHP como módulo.
Extensões PECL e Pear precisarão ser adicionadas manualmente. O pacote de extensões PECL pode ser encontrado em http://museum.php.net/php5/pecl-5.2.6-Win32.zip. Esta é a versão mais atualizada e provavelmente não deverão sair novas versões visto que os itens mais recentes estão sendo embutidos junto com as extensões que acompanham o pacote principal.
Descompacte o conteúdo deste pacote dentro do diretório de extensões do PHP (ext). Para ativar uma extensão pecl contida neste pacote adicione uma linha para ele no php.ini.
Ex.:
extension = php_extensao.dll
Extensões Pear precisarão ser instaladas via comando ou manualmente. Cada pacote possui suas próprias características e portanto devem seguir suas próprias instruções.
Para a instalação manual o Pear deve ser instalado executando-se o arquivo go-pear.bat que se encontra dentro do diretório onde foi instalado o PHP.

Qualquer dúvida estou a disposição para esclarecê-las.

Comentários:

Mostrando 1 - 10 de 17 comentários
Rossano disse:
Olá Marcos,

Muito obrigado pelo rápido retorno!

Encontrei no log a seguinte mensagem:

(OS 3)The system cannot find the path specified. : httpd.exe: could not open error log file C:/Apache2/logs/error.log.
Unable to open logs

Isso ocorre após eu descomentar Include conf/extra/httpd-ssl.conf, e caso eu faça o rollback, ou seja, comente a linha novamente, consigo restartar o serviço normalmente.

Alguma idéia?

Mais uma vez muito obrigado.

Um abraço.
05/08/2012 8:39pm (~11 anos atrás)

Marcos Regis disse:
Em breve atualizarei o artigo para utilizar as versões mais recentes de cada programa e farei um adendo para uso com Wamp.
05/08/2012 2:02pm (~11 anos atrás)

Marcos Regis disse:
Rossano, não utilizo WAMP mas sei que tem versão com suporte a SSL sim. Procure os logs e veja o motivo do erro.
05/08/2012 1:53pm (~11 anos atrás)

Marcos Regis disse:

Ibrahim, até já li umas informações há um tempo atrás sobre simular uma CA, mas acho isso totalmente desnecessário.
Ela não é necessária para usar um dominio com SSL. Se o que quer é que o navegador não exiba a mensagem de domínio inseguro, somente comprando mesmo um certificado de uma CA válida.
05/08/2012 1:53pm (~11 anos atrás)

Rossano disse:
Prezado,
Solicito auxílio, pois segui todos os passos deste tutorial entretanto a partir do passo sobre Include conf/extra/httpd-ssl.conf o Apache não start mais. Estou utilizando o WAMP wampserver2.2e-php5.4.3-httpd2.2.22-mysql5.5.24-32b, porém não sei se o mesmo dá suporte ao SSL.

Poderia por gentileza me orientar sobre o que fazer?
E, como verifico se esta instalação dá suporte ao SSL.

Aproveitando a oportunidade, o tutorial é simplesmente esplêndido, detalhado e de fácil compreensão para execução dos passos.

Agradeço desde já.
05/08/2012 12:46pm (~11 anos atrás)

Só enrosco no CA. Estou tentando configurar o conf do apache para pegar um. Mas acho que falta algo. É que sem CA algumas coisas falham. Tem idéia de como configurar uma CA pra rodar?
01/08/2012 6:33pm (~11 anos atrás)

Marcos Regis disse:
Bacana que achou útil IBrahim e mais ainda de que utilizou versões atualizadas.
Estava querendo atualizar o artigo e acho que já é hora de espantar a preguiça e fazer isso.
01/08/2012 5:20pm (~11 anos atrás)

Cara, nunca tinha instalado o apache com ssl antes. E agora graças a você isso foi possível. Muito obrigado. O procedimento funcionou perfeitamente com Apache 2.2.22, PHP 5.4.5 Thread Safe, MySql 5.5.25a e phpMyAdmin 3.5.2 no Windows 7 Professional 32Bits.
01/08/2012 11:12am (~11 anos atrás)

Perfeito, funcionou direitinho!
04/04/2012 11:48am (~12 anos atrás)

Marcos Regis disse:
Conforme explicado nas mensagens de e-mail, muito cuidado com as extensões que for escolher no momento da instalação. Se escolher dar suporte a Oracle ou a Postgre sem ter os requerimentos atendidos o Apache não irá iniciar.
31/01/2011 8:31pm (~13 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)