mod_fcgid: erro ao ler dados do servidor FastCGI

1

Este é meu primeiro post aqui, embora eu sempre pesquise e encontre respostas aqui. Desta vez, passei alguns dias pesquisando vários sites, mas infelizmente nenhuma das respostas em outros tópicos ajudou no meu caso.

Eu gerencio alguns servidores LAMP, cada um hospedando cerca de 10 a 15 hosts virtuais. Cada servidor possui um painel de controle para o administrador e o cliente para gerenciar sites. Isso tem funcionado bem nos últimos anos no Centos 6 com mod_php.

Agora estou atualizando o painel de controle para rodar no Centos 7 com o PHP instalado como mod_fcgid.

Cada host virtual possui seu próprio arquivo conf do apache, conforme abaixo:

<VirtualHost 136.243.195.117:80>
   DocumentRoot "/home/c7demose/public_html"
   ServerName c7.demoserver.co.za
   ServerAlias www.c7.demoserver.co.za mail.c7.demoserver.co.za ftp.c7.demoserver.co.za
  <IfModule mod_fcgid.c>
        SuexecUserGroup c7demose c7demose
    <Directory /home/c7demose/public_html>
      Options +ExecCGI
      AllowOverride All
      AddHandler fcgid-script .php
      FCGIWrapper /var/www/php-fcgi-scripts/c7.demoserver.co.za/php-fcgi-starter .php
      Order allow,deny
      Allow from all
    </Directory>
  </IfModule>

</VirtualHost>

Não há problema com isso e cada site funciona conforme o esperado. A maneira como isso funcionou no passado é que o painel de controle atende em uma porta diferente e seu arquivo de configuração vhost escuta em qualquer endereço IP e não tem a variável ServerName, portanto, não importa qual nome de domínio o usuário usa, irá redirecionar para o painel de controle, se eles usam a porta correta.

Em outras palavras, o usuário com o domínio user_one.com pode ir para user_one.com:10025 e o usuário dois pode ir para o seu próprio user_two.com:10025 e ambos acessarem o painel de controle:

<VirtualHost *:10025>
        DocumentRoot "/var/www/html/webcp"
  <IfModule mod_fcgid.c>
        SuexecUserGroup apache apache
    <Directory /var/www/html/webcp>
      Options +ExecCGI
      AllowOverride All
      AddHandler fcgid-script .php
      FCGIWrapper /var/www/php-fcgi-scripts/localhost/php-fcgi-starter .php
      Order allow,deny
      Allow from all
    </Directory>
  </IfModule>

</VirtualHost>

Isso funcionou bem na configuração antiga usando mod_php. Com mod_fcgid Ele não funciona ao tentar acessar o painel de controle com este tipo de situação "catch all".

O navegador exibe um erro interno 500 e os registros de erro httpd mostram o seguinte:

[Mon Mar 14 00:06:03.684684 2016] [authz_core:debug] [pid 2585] mod_authz_core.c(809): [client 165.255.92.82:40036] AH01626: authorization result of Require all granted: granted 
[Mon Mar 14 00:06:03.684725 2016] [authz_core:debug] [pid 2585] mod_authz_core.c(809): [client 165.255.92.82:40036] AH01626: authorization result of <RequireAny>: granted 
[Mon Mar 14 00:06:03.783142 2016] [authz_core:debug] [pid 2585] mod_authz_core.c(809): [client 165.255.92.82:40036] AH01626: authorization result of Require all granted: granted 
[Mon Mar 14 00:06:03.783178 2016] [authz_core:debug] [pid 2585] mod_authz_core.c(809): [client 165.255.92.82:40036] AH01626: authorization result of <RequireAny>: granted 
[Mon Mar 14 00:06:03.785111 2016] [fcgid:info] [pid 2581] mod_fcgid: server c7.demoserver.co.za:/var/www/php-fcgi-scripts/localhost/php-fcgi-starter(11458) started
[Mon Mar 14 00:06:03.790277 2016] [fcgid:warn] [pid 2585] (104)Connection reset by peer: [client 165.255.92.82:40036] mod_fcgid: error reading data from FastCGI server
[Mon Mar 14 00:06:03.790305 2016] [core:error] [pid 2585] [client 165.255.92.82:40036] End of script output before headers: index.php
[Mon Mar 14 00:06:09.790430 2016] [fcgid:info] [pid 2581] mod_fcgid: process /var/www/php-fcgi-scripts/localhost/php-fcgi-starter(11458) exit(communication error), terminated by calling exit(), return code: 107 

Idealmente, gostaria de ter tudo isso funcionando com o fast_cgi, mas se houver uma maneira de fazer com que os hosts virtuais continuem rodando com o fcgi e apenas o painel de controle na porta 10025 para rodar usando o mod_php, isso seria uma solução provisória aceitável, eu simplesmente não sei como ou mesmo se isso é possível.

Obrigado antecipadamente!

John

    
por John Mc Murray 14.03.2016 / 06:39

0 respostas