PHP em um servidor web apache embutido construído com buildroot

0

Então eu construí um servidor web apache embutido usando o buildroot, e ele está rodando bem, exceto pelo fato de que ele não roda código php. Eu posso rodar arquivos .php na linha de comando do sistema, mas quando eu abro esses arquivos .php em um navegador ele não roda o código php, ele simplesmente ignora todo o código php e o interpreta como se fosse html.

Eu olhei no arquivo /etc/apache2/httpd.conf e ele tem uma linha carregando o módulo php:

LoadModule php7_module     modules/libphp7.so

Alguém sabe como executar o php?

Vou deixar, por via das dúvidas, informações sobre alguns diretórios e arquivos que possam ser relevantes:

/ etc /

  • apache2 /

  • php-fpm.conf

  • php-fpm.d /

  • php.ini

/ etc / apache2 /

  • extra /

  • link

  • mime.types

  • link

  • mágica

  • original /

/ usr / lib / php /

  • (vazio)

/usr/modules/libphp7.so

    
por M_Luis 21.12.2017 / 00:59

1 resposta

1

Além de carregar o módulo (que seu arquivo httpd.conf mostra que está fazendo com base no conteúdo de sua pergunta), você também precisa usar uma diretiva SetHandler para *.php ou outras extensões apropriadas.

Algo como isso deve funcionar, basta colocá-lo logo após a declaração LoadModule .

<FilesMatch ".+\.ph(p[3457]?|t|tml)$">
    SetHandler application/x-httpd-php
</FilesMatch>

O que esta declaração acima diz ao Apache como lidar com arquivos com certas extensões. O .+\.ph(p[3457]?|t|tml)$ é uma expressão regular (regex) que corresponde a vários finais diferentes para o arquivo (o $ indica o fim da string) - assim, os arquivos terminados em .php , .php3 , .php4 , etc. todos são processados pelo servidor Apache e pelo módulo PHP antes de serem enviados para o navegador.

Não se esqueça de reiniciar o serviço httpd.

Se ainda assim não funcionar, verifique os caminhos que fazem referência ao módulo para carregar e verifique se libphp7.so está no local correto a ser carregado.

    
por 21.12.2017 / 03:24