Falha no início do Apache após modificações de configuração do apache, mostrando erro de sintaxe, não é possível carregar o arquivo php5apache2_2.dll no servidor

3

Estou preso novamente com os caras da configuração do apache. Eu estou trabalhando em um sistema de 64 bits executando o Windows 7 professional com service pack 1. Copiei o diretório de instalação do php5 dos colegas de equipe, copiei os arquivos .dll necessários da pasta de instalação do php5 (como se estivessem na configuração de trabalho dos colegas de equipe ) para o meu windows/system32/ . O servidor Apache foi iniciado com sucesso com o arquivo padrão de configuração do apache ( httpd.conf ). Consegui acessar o host local no navegador. Mas o código php não estava analisando. Eu notei nenhuma linha como a seguinte no arquivo de configuração do apache: -

# PHP5 module
LoadModule php5_module D:/php5/php5apache2_2.dll

Se eu adicionar essa linha, o início do servidor apache falhará. A execução da configuração de teste fornece o seguinte erro -

httpd.exe: Syntax error on line 60 of C:/Program Files (x86)/Apache Software Foundation/Apache2.2/conf/httpd.conf: Cannot load D:/php5/php5apache2_2.dll into server: The specified procedure could not be found.  

Mas o arquivo php5apache2_2.dll está lá no local especificado e dei todas as permissões ao usuário do sistema atual para o diretório de instalação php5 . A mesma linha também aparece no log de erros do apache. Outra coisa aqui é que eu não tenho certeza quando exatamente os logs são gravados no arquivo de log. Estou confuso se as entradas de log não são feitas se eu abri o arquivo de log para leitura? lol ... porque eu não pude observar um padrão quando as entradas são feitas. Eu vi algumas entradas de log sendo feitas, outras não. Mas esse é um problema separado por enquanto.

Eu já tinha configurado o apache, php no mesmo sistema, em outro disco rígido. Eu tinha seguido os mesmos passos como eu segui agora e ele foi configurado com sucesso, embora depois de muita confusão, como a confusão na entrada do arquivo de log que eu escrevi acima. Não me lembro exatamente como consertei antes. Mas, eu tentei com o mesmo arquivo de configuração do apache (o que estava trabalhando anteriormente na configuração anterior no disco rígido antigo - tinha tomado um backup), mas ainda dá o mesmo erro.

Atualizar
Eu li o link e adicionei AddHandler application/x-httpd-php .php logo após LoadModule php5_module "D:/php5/php5apache2_2.dll" . Ainda não há sucesso.

Eu também leio este blog onde alguns binários VC6 e VC9 são mencionados. Eu não sei sobre eles. Preciso fazer algo sobre isso?

Atualizações adicionais
Eu baixei o apache do link - a opção "Win32 Binary sem criptografia (sem mod_ssl) (MSI Installer)".

    
por Sandeepan Nath 01.07.2011 / 09:27

3 respostas

8

O mais provável é que você tenha incompatível com o Apache . Você não mencionou onde baixou o Apache HTTPD da + versão do PHP que você tem.

  1. Obtenha a versão mais recente do Apache no site do Apache Lounge - suas compilações são compiladas com VC9 enquanto as compilações do apache.org ainda são VC6. Você precisa construir o VC9, pois é assim que compilações oficiais do PHP são compiladas agora (você pode ler uma pequena explicação no PHP para o site do Windows - veja o link no # 2).

  2. Obtenha uma compilação Thread-Safe do PHP em PHP para Windows (baseado em sua pergunta você quer executá-lo como módulo do Apache). Se você quiser executá-lo como FastCGI, é necessária a criação segura Non-thread.

  3. Desabilite todas as extensões php não-padrão (até que você inicie com sucesso o Apache com o PHP funcionando).

  4. Configure seu PHP e Apache, se necessário (as linhas de configuração do Apache que você mencionou até agora estão bem).

P.S. "copiou os arquivos .dll necessários da pasta de instalação do php5 (como se eles estivessem na configuração de trabalho dos colegas de equipe) para o meu windows / system32 /"

  1. Você está na versão de 64 bits do Windows. C:\windows\system32\ é para processos / arquivos de 64 bits SOMENTE. No seu caso, o Apache e o PHP são x32, então o local correto seria C:\Windows\SysWOW64 .

  2. Não há nenhum motivo real para copiar esses arquivos - você pode adicionar o caminho de instalação do PHP ( D:\php5\ ) à variável de ambiente PATH (coloque-o na frente) e o Windows localizará todos os arquivos automaticamente pode ser necessário) - funciona bem para mim.

P.P.S. Em vez de instalá-lo manualmente, você poderia usar uma das pilhas já pré-configuradas: XAMP , WAMP ou similar.

    
por 02.07.2011 / 13:44
3

Eu consertei o problema. Na verdade, a ausência de alguns arquivos DLL necessários, não tenho certeza qual arquivo específico, foi a razão e eu estava tentando na ausência de um monte de arquivos DLL.

O que eu fiz foi, eu tinha seguido a parte de configuração do apache do teammate 1 e depois copiei o diretório php5 do teammate 2 (que estava em um sistema de 32 bits com o Windows px). Eu assumi que a pasta php 5 seria a mesma e estava errada. O problema foi corrigido quando peguei a pasta php 5 do companheiro de equipe 1.

Eu verifiquei e descobri que havia muitas diferenças no conteúdo das duas pastas php5, principalmente arquivos DLL. Ausência de arquivos dll necessários deve ter sido o problema, porque eu precisava de um sistema de reinicialização depois de tomar a pasta php5 correta do companheiro de equipe 1.

Moral da história -
Ao copiar, não aplique cérebro e copie do mesmo lugar:)

    
por 06.07.2011 / 08:29
0

Você não precisa copiar nenhum desses arquivos (como libeay32.dll , ssleay32.dll ) para nenhum lugar, o problema pode ser resolvido apenas adicionando o diretório de instalação do php à variável de ambiente do caminho do sistema.

    
por 02.05.2016 / 19:42