Назад | Перейти на главную страницу

mod_fcgid: ошибка чтения данных с сервера FastCGI

Это мой первый пост здесь, хотя я часто ищу и нахожу здесь ответы. На этот раз я потратил пару дней на поиск различных сайтов, но, к сожалению, ни один из ответов в других темах не помог в моем случае.

Я управляю несколькими серверами LAMP, на каждом из которых размещается от 10 до 15 виртуальных хостов. На каждом сервере есть панель управления для администратора и клиента для управления сайтами. Последние несколько лет это хорошо работает на Centos 6 с mod_php.

Сейчас я обновляю панель управления для работы на Centos 7 с PHP, установленным как mod_fcgid.

У каждого виртуального хоста есть собственный файл конфигурации apache, как показано ниже:

<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>

С этим нет проблем, и каждый сайт работает так, как ожидалось. Раньше это работало так: панель управления прослушивает другой порт, а ее файл конфигурации vhost прослушивает любой IP-адрес и не имеет переменной ServerName, поэтому не имеет значения, какое имя домена использует пользователь, это перенаправит на панель управления, если они используют правильный порт.

Другими словами, пользователь с доменом user_one.com может перейти на user_one.com:10025, а второй пользователь может перейти на свой user_two.com:10025, и оба попадут в панель управления:

<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>

Это хорошо работало в старой настройке с использованием mod_php. С mod_fcgid Это не работает при попытке доступа к панели управления в этой ситуации типа «поймать все».

Браузер отображает внутреннюю ошибку 500, а журналы ошибок httpd показывают следующее:

[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 

В идеале я хотел бы, чтобы все это работало с fast_cgi, но если есть способ, которым я могу заставить виртуальные хосты продолжать работать с fcgi и только панель управления на порту 10025 для запуска с использованием mod_php, тогда это было бы приемлемым временным решение, я просто не знаю, как и даже если это возможно.

Заранее спасибо!

Джон