Não há módulos PHP após compilar o Apache

1

Estou tentando instalar o Apache 2.4 e o PHP 5.6 no CentOS, o que fiz corretamente e confirmei usando ./apachectl configtest e php -v . O problema é que o Apache não está reconhecendo scripts PHP porque a instalação do Apache não incluiu nenhum dos módulos PHP que o Apache requer.

A única coisa que a documentação do PHP me diz para fazer é adicionar os módulos para httpd.conf adicionando:

# Extra Modules
AddModule mod_php.c
AddModule mod_perl.c

# Extra Modules
LoadModule php_module         modules/mod_php.so
LoadModule php5_module        modules/libphp5.so
LoadModule perl_module        modules/libperl.so
AddType application/x-httpd-php .php

que, ao tentar iniciar o servidor, gera:

httpd: Syntax error on line 156 of /usr/local/apache2/conf/httpd.conf: Cannot load modules/mod_php.so into server: /usr/
local/apache2/modules/mod_php.so: cannot open shared object file: No such file or directory

Eu compilei o Apache e o PHP corretamente sem erros.

Eu compilei isso para o Apache:

./configure --with-included-apr=/usr
make
make install

E isso para o PHP:

./configure
make
make install

Qualquer ajuda é apreciada.

    
por Henry A. 10.08.2016 / 20:43

1 resposta

1

Para não deixar sem resposta.

O Apache não pode construir mod_php.so como parte de sua compilação porque não sabe como analisar ou executar o PHP. Por outro lado, o PHP precisa saber como o Apache foi compilado para produzir mod_php.so . Você precisa especificar:

  • --enable-so no script de configuração do Apache, para permitir a criação de módulos extras como bibliotecas compartilhadas. E crie apxs , a ferramenta de extensão para criar as bibliotecas compartilhadas.

  • E --with-apxs2=/path/to/apache no script de configuração do PHP, para poder compilar nos cabeçalhos do Apache, localizar apxs e gerar mod_php.so .

Normalmente, em um sistema * nix, o Apache --prefix será o padrão para /usr/local e apxs terminará em /usr/local/bin/apxs . Portanto, a compilação deve ser executada da seguinte maneira.

Primeiro Aapche ( httpd ) com:

./configure --enable-so
make
make install

E depois o PHP com:

./configure --with-apxs2=/usr/local/apache2/bin/apxs
make
make install

Referências:

por 11.08.2016 / 02:59