Apache com PHP-FPM - PHP não executa

1

Eu compilei o PHP 7 com suporte ao FPM usando este tutorial no ambiente do CentOS 7.x.

Eu pude testar o php através do CLI executando.

cd /opt/php7/bin
./php --version

Quais saídas

PHP 7.0.6 (cli) (built: May 22 2016 07:20:48) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies

Eu também instalei o apache e ele está sendo executado com sucesso.

Agora criei vhosts e domínio guiado em um diretório. Eu colei um arquivo php info.php com a função phpinfo() mas o servidor retorna a função PHP sem executá-lo.

Eu sinto que estou realmente perto agora e só preciso configurar o apache para rodar com o php-fpm, então eu coloco essa configuração no arquivo httpd.conf , mas isso não ajuda.

<IfModule mod_fastcgi.c>

    DirectoryIndex index.html index.shtml index.cgi index.php

    AddType application/x-httpd-fastphp7 .php
    Action application/x-httpd-fastphp7 /php7-fcgi

    Alias /php7-fcgi /opt/php7/bin/php-cgi

    FastCgiExternalServer /var/www/html/ -socket /opt/php7/var/run/php-fpm.pid -pass-header Authorization

    <Directory /var/www/html/>
        Require all granted
    </Directory>
</IfModule>

O módulo fcgi é instalado quando eu executo apachectl -t -D DUMP_MODULES recebo fcgid_module (shared)

    
por Sisir 23.06.2016 / 12:17

1 resposta

1

Resolvido o problema. Eu segui os passos abaixo.

Verifique se o PHP-FPM está sendo executado

Primeiro de tudo, se você não tiver escolhido nenhuma porta alternativa para o php-fpm, ela será configurada para ser executada na porta 9000.

/etc/init.d/php-fpm start

Se falhar dizendo que a porta já está ocupada, você precisará descobrir o número do processo que está sendo executado pela porta e matar .

netstat -tulpn | grep :8999

Isso deve fornecer o ID do processo que está sendo executado no momento. Por exemplo, se o ID do processo for 21190 , você executará

kill 21190

Agora que a porta está limpa, agora você pode tentar iniciar o php-fpm novamente

/etc/init.d/php-fpm start

Atualizar o arquivo de configuração do vHost

Por exemplo, você está hospedando example.com . Agora abra a configuração do vhost para o domínio. Aqui está um exemplo mais simples.

<VirtualHost *:80>
    DocumentRoot "/var/www/html/example.com/"
    ServerName example.com
</VirtualHost>

Agora adicione a atualização com o seguinte:

<VirtualHost *:80>
    DocumentRoot "/var/www/html/example.com/"
    ServerName example.com

    # Setup php-fpm to process php files
    ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/html/example.com/$1
    DirectoryIndex /index.php index.php
</VirtualHost>

E agora todo o seu arquivo php para o example.com deve ser executado.

Referência: link

    
por 23.06.2016 / 14:53