Mod fcgid error reading data from fastcgi server referer

I am having issue on PHP where my app is trying to run a php backup file and suddenly getting HTTP Error 500 Code. I have checked the logs and this what it saying. [Tue Aug 28 14:17:28 2012] [wa...

I am having issue on PHP where my app is trying to run a php backup file and suddenly getting HTTP Error 500 Code. I have checked the logs and this what it saying.

[Tue Aug 28 14:17:28 2012] [warn] [client x.x.x.x] (104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server, referer: http://example.com/backup/backup.php
[Tue Aug 28 14:17:28 2012] [error] [client x.x.x.x] Premature end of script headers: backup.php, referer: http://example.com/backup/backup.php

Anyone knows how to fix this? I’m really stuck in here and can’t find solution in internet.

Hope anyone could share their knowledge.

Thanks.
James

hakre's user avatar

hakre

189k51 gold badges426 silver badges824 bronze badges

asked Aug 28, 2012 at 5:59

James Wise's user avatar

I managed to solved this by adding FcgidBusyTimeout . Just in case if anyone have similar issue with me.

Here is my settings on my apache.conf:

<VirtualHost *:80>
.......
<IfModule mod_fcgid.c>
FcgidBusyTimeout 3600
</IfModule>
</VirtualHost>

answered Aug 30, 2012 at 8:15

James Wise's user avatar

James WiseJames Wise

1,6954 gold badges16 silver badges21 bronze badges

6

I had very similar errors in the Apache2 log files:

(104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server
Premature end of script headers: phpinfo.php

After checking the wrapper scripts and Apache2 settings, I realized that /var/www/ did not have accordant permissions. Thus the FCGId Wrapper scripts could not be read at all.

ls -la /var/www
drwxrws---  5 www-data     www-data     4096 Oct  7 11:17 .

For my scenario chmod -o+rx /var/www was required of course, since the used SuExec users are not member of www-data user group — and they should not be member for security reasons of course.

answered Oct 7, 2013 at 9:53

Oliver Hader's user avatar

Oliver HaderOliver Hader

3,9941 gold badge24 silver badges45 bronze badges

2

if you want to install a PHP version < 5.3.0, you must replace

--enable-cgi

with:

--enable-fastcgi

in your ./configure statement, excerpt from the php.net doc:

--enable-fastcgi

If this is enabled, the CGI module will be built with support for FastCGI also. Available since PHP 4.3.0

As of PHP 5.3.0 this argument no longer exists and is enabled by —enable-cgi instead. After the compilation the ./php-cgi -v should look like this:

PHP 5.2.17 (cgi-fcgi) (built: Jul  9 2013 18:28:12)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies

NOTICE THE (cgi-fcgi)

kgdesouz's user avatar

kgdesouz

1,9503 gold badges16 silver badges21 bronze badges

answered Jul 9, 2013 at 17:04

reiner23fx's user avatar

reiner23fxreiner23fx

511 silver badge1 bronze badge

I had this issue and realized that the file cgi-bin/php-fcgi had no execution rights.

It had 644 mode while is should have 755 mode.

Setting the correct mode was impossible (probably because the file was opened or sth), so I copied that file from another domain directory where it had proper rights already set and that fixed everything.

answered Sep 27, 2013 at 8:06

sEver's user avatar

sEversEver

1,8681 gold badge16 silver badges10 bronze badges

I had the same problem with a different and simple solution.

Problem

I installed PHP 5.6 following the accepted answer to this question on Ask Ubuntu.
After using Virtualmin to switch a particular virtual server from PHP 5.5 to PHP 5.6, I received a 500 Internal Server Error and had the same entries in the apache error log:

[Tue Jul 03 16:15:22.131051 2018] [fcgid:warn] [pid 24262] (104)Connection reset by peer: [client 10.20.30.40:23700] mod_fcgid: error reading data from FastCGI server
[Tue Jul 03 16:15:22.131101 2018] [core:error] [pid 24262] [client 10.20.30.40:23700] End of script output before headers: index.php

Cause

Simple: I didn’t install the php5.6-cgi packet.

Fix

Installing the packet and reloading apache solved the problem:

  • sudo apt-get install php5.6-cgi if you are using PHP 5.6

  • sudo apt-get install php5-cgi if you are using a different PHP 5 version

  • sudo apt-get install php7.0-cgi if you are using PHP 7

Then use service apache2 reload to apply the configuration.

answered Jul 3, 2018 at 14:36

user5626466's user avatar

The famous Moodle «replace.php» script can generate this situation too.
For me it was taking ages to run and then failed with a 500 message in the browser and also with the above error message in my apache error log file.

I followed up on @james-wise answer:
FcgidBusy is readably described in the Apache documentation. I tried this: doubled the amount of time which apache would give my script to run, by inserting the following line in /etc/apache2/mods-available/fcgid.conf

FcgidBusyTimeout 600

Then I restarted Apache and tried to run my replace.php script again.

Fortunately this time the script instance ran to completion, so for my purposes this served as a solution.

answered Mar 24, 2013 at 3:14

owenmck's user avatar

owenmckowenmck

3783 silver badges9 bronze badges

2

I came across this one while debugging a virtualmin/apache related error.

In my case, I am running virtualmin and had in my virtual machine’s php.ini
safe_mode=On.

In my Virtual Machine’s error log, I was getting the fcgi Connection reset by peer: mod_fcgid: error reading data from FastCGI server

In my main apache error log I was getting:
PHP Fatal error: Directive ‘safe_mode’ is no longer available in PHP in Unknown on line 0

In my case, I simply set safe_mode = Off in my php.ini and restarted apache.

stackoverflow.com/questions/18683177/where-to-start-with-deprecated-directive-safe-mode-on-line-0-in-apache-error

answered Sep 20, 2015 at 11:48

Lance's user avatar

LanceLance

213 bronze badges

Not in this questions askers case but often:

What does the «premature end of script headers» error mean?

That error means that the FCGI call was exited unexpectedly.

In some cases it means that the script «backup.php» did crash.

How to fix this?

If the crash of a script was the cause, fix the script so that it does not crash. Then this error is fixed, too. To find out if and why a script crashes, you need to debug it. For example you can check the PHP error log. Errors logged to STDERR normally go into the error handler of the FCGI.

Community's user avatar

answered Aug 28, 2012 at 6:34

hakre's user avatar

hakrehakre

189k51 gold badges426 silver badges824 bronze badges

9

I had the same problem with long-running scripts with the error messages
«Premature end of script headers: index.php» and «Connection reset by peer: mod_fcgid: error reading data from FastCGI server» in error_log.
After hours of testing this helps for me (CentOS 6, PHP-FPM 7, Plesk 12.5.30):

edit the config file:

/etc/httpd/conf.d/fcgid.conf

Set a higher running time. In my case 600 seconds

create the new entry:

FcgidBusyTimeout 600

adapt following entries:

FcgidIOTimeout 600

FcgidConnectTimeout 600

restart httpd:

service httpd restart

answered Feb 14, 2016 at 13:16

joruf81's user avatar

In CentOS releases suexec is compiled to run only in /var/www. If you try to set a DocumentRoot somewhere else you have to recompile it — the error in apache log are:
(104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server
Premature end of script headers: php5.fcgi

answered Feb 1, 2017 at 8:31

Jivko Todorov's user avatar

Just install php5-cgi
in debian

sudo apt-get install php5-cgi

in Centos

sudo yum install php5-cgi

answered Oct 19, 2013 at 21:22

Mancy's user avatar

MancyMancy

3193 silver badges5 bronze badges

1

Check /var/lib/php/session and its permissions. This dir should be writable by user so the session can be stored

answered Dec 30, 2013 at 11:04

mangia's user avatar

mangiamangia

1311 silver badge3 bronze badges

As already mentioned this could be happening due to fcgi handler permission issues. If you’re using suexec — don’t forget to check if apache has this module enabled.

answered Jun 20, 2014 at 16:34

kK-Storm's user avatar

kK-StormkK-Storm

4644 silver badges15 bronze badges

I increased max execution time to 600 seconds job done !

plesk 17 - domain effected

Petter Friberg's user avatar

answered Jan 4, 2018 at 16:56

Stephen Murray's user avatar

In my case I was using a custom extension for my PHP files and I had to edit /etc/apache2/conf-available/php7.2-fpm.conf and add the following code:

    <FilesMatch ".+.YOUR_CUSTOM_EXTENSION$">
        SetHandler "proxy:unix:/run/php/php7.2-fpm.sock|fcgi://localhost"
    </FilesMatch>

answered Mar 11, 2019 at 13:50

Otto's user avatar

OttoOtto

3,9306 gold badges34 silver badges46 bronze badges

I’ve tried the majority of answers that I’ve found on this issue. My issue was with wp-cron.php executing a particular function.

I’m working on Plesk CentOS7, Apache server.

I used this related question and suggested answer to help me find out how to adjust the fcgid.conf memory limit utilizing the command line.

Upon trying to troubleshoot the limits on the fcgid.conf file (/etc/httpd/conf.d/fcgid.conf) and restarting apache gracefully, I found that there was no change.

After seeing that other cron jobs were running properly, I decided to refer back to my function declared in functions.php and found that some of the arguments declared were not being specified properly, so there was a loop occurring that would eventually lead to the timeout.

Upon fixing this and running the cron again, it ran as it should.

Hope this helps someone else in a similar position!

answered Jun 17, 2021 at 22:08

Gary Torrence's user avatar

I got the same problem (with Plesk 12 installed).
However, when i switched from execute PHP as FastCGI to Apache Module the website worked.

Checked my suexec log:

$ cd /var/log/apache2/
$ less suexec.log

When you find something like this:

[2015-03-22 10:49:00]: directory is writable by others: (/var/www/cgi-bin/cgi_wrapper)
[2015-03-22 10:49:05]: uid: (10004/gb) gid: (1005/1005) cmd: cgi_wrapper

try this commands

$ chown root:root /var/www/cgi-bin/cgi_wrapper
$ chmod 755 /var/www/cgi-bin/cgi_wrapper
$ shutdown -r now

as root.

I hope it can help you.

answered Mar 23, 2015 at 11:13

Marvin M's user avatar

1

 Самыми распространенными ошибками mod_fcgid являются «Premature end of script headers», «can’t lock process table in pid», «can’t apply process slot», «couldn’t bind unix domain socket», «exit(communication error), get unexpected signal 11″…

Причины этих ошибок могут быть разные, от неправильных прав на файлы до неполной загрузки файла на сервер, не правильно написанного скрипта и неправильного режима передачи файла ASCII/Двоичный. Иногда бывает проблема кроется в переводе строк Windows формата, в этом случае может помочь команда col -bx <input_file> output_file (скобки обязательны!) или редактор notepad++ «Конверсия конца строки«.

Но когда mod_fcgid в целом работает нормально, а «Connection reset by peer: mod_fcgid: error reading data from FastCGI server, referer: …» и «Premature end of script headers: php-fcgi-wrapper, referer: …» продолжают регулярно появляться в error_log, при этом php_errors.log и /var/log/httpd/suexec.log не предоставляет никакой дополнительной информации, то копать нужно глубже — /var/log/messages или /var/log/kernel.log.

Chapter 1. Connection reset by peer: mod_fcgid: error reading data from FastCGI server

[Fri Dec 16 04:30:14.424452 2016] [fcgid:warn] [pid 26593] (104)Connection reset by peer: [client 127.0.0.1:42657] mod_fcgid: error reading data from FastCGI server, referer: http://example.com/install/index.php?restart=true

[Fri Dec 16 04:30:14.424564 2016] [core:error] [pid 26593] [client 127.0.0.1:42657] End of script output before headers: index.php, referer: http://example.com/install/index.php?restart=true

Если увеличение значений в FcgidProcessLifeTime, FcgidIOTimeout, FcgidIdleTimeout, FcgidBusyTimeout, не решает проблему, тогда нужно смотреть, а не используются ли PHP акселераторы типа APC. Например при использовании opcache в PHP 7 установка PrestaShop 1.7 обламывалась с ошибкой «Connection reset by peer: mod_fcgid: error reading data from FastCGI server«, в php.ini была указана директория для дополнительного кеширования байткода «opcache.file_cache=/var/www/.tmp«, но после того, как «;opcache.file_cache=/var/www/.tmp» была закомментирована — проблема исчезла.

Section 1. Причина №1 — неправильные «чмоды»

Основной причиной, как правило, появления этой ошибки может быть нехватка прав/полномочий на выполнение FastCGI скрипта, РНР в нашем случае.

Права на домашний каталог юзера в котором лежат файлы сайта должны быть 0755 и не меньше, а иначе будет «форбайден» (НТТР 403: 13PermissionDenied — Httpd Wiki), на файл же выполняющий обработку (онже FcgidWrapper) CGI скриптов «чмоды» (chmod) как минимум 750.

Если не помогло, смотрим иные варианты…

Section 2. Причина №2 — нахватка системных ресурсов

Например, первые ошибки mod_fcgid мы получили в error_log «Fri Mar 08 13:42:10 2013«:

[Fri Mar 08 13:42:10 2013] [warn] [client 81.83.хх.ххх] (104)Connection reset by

peer: mod_fcgid: error reading data from FastCGI server, referer: ...

[Fri Mar 08 13:42:10 2013] [error] [client 81.83.хх.ххх] Premature end of script

headers: phpfcgiwrapper, referer: ...

Тогда открываем /var/log/messages или /var/log/kernel, находим системные события происходившие в упомянутое выше время вплоть до секунды и смотрим что же там творилось до и после ошибки php-cgi: http://pastebin.com/Gz5ccSNV

Как видим OOM Killer (oom-killer) начал прибивать процессы уже когда памяти совсем не осталось. OOM Killer — это реализация «Out of memory Killer» на уровне ядра Linux.

Виртуальной памяти (swap) в системе может быть немеряно, разумеется в пределах адресации HDD, а вот оперативной (RAM-ы) вполне ограниченное её количество. Бывают ситуации когда «чилды» (форки) процессов системы поедают ее всю (swap + RAM), и тут OOM Killer начинает среди процессов, кроме kernel init и threads, такой, который по его (oom-killer) мнению является самым ущербным (badness) и начинает его убивать.

В примере выше как раз возникла именно такая ситуация, когда «Free swap = 0kB» процессами (их чилдами/форками httpd-олигархов) httpd и php-cgi съедена вся память включая файл подкачки, «Swap is 100% used» и «Memory is 99% used» — обычно в таких ситуациях система уходит в нирвану и прекращает отвечать/реагировать на внешние команды.

Для решения проблемы поедания памяти рекомендуется снизить число чилдов (CHILDREN) апача и PHP, если PHP_FCGI_CHILDREN больше 2. Понизить значение PHP_FCGI_CHILDREN, а в случае использования PHP акселераторов типа APC и т.д. установить PHP_FCGI_CHILDREN = 0 ибо как сказано в секции «Special PHP considerations» официального мана mod_fcgid, чтоPHP акселератор APC не в состоянии расшаривать свой кэш для PHP модуля mod_fcgid если mod_fcgid/PHP использует управление процессами! Про иные акселераторы ничего не сказано, но всё же если используются любые акселераторы, то лучше управление процессами оставить на совести httpd демона.

Второй способ побороть ошибки «Connection reset by peer: mod_fcgid: error reading data from FastCGI server» и «Premature end of script headers: php-fcgi-wrapper» — это не устанавливать слишком высокое значение в PHP_FCGI_MAX_REQUESTS, которое по умолчанию равно = 500. Вместе с этим использовать директиву FcgidMaxRequestsPerProcess, значение которой должно быть <= PHP_FCGI_MAX_REQUESTS — т.е. если PHP_FCGI_MAX_REQUESTS = 1000, то и значение FcgidMaxRequestsPerProcess должно быть = 1000 или меньше, по умолчанию количество запросов отправляемых в php-cgi не контролируется, т.е. FcgidMaxRequestsPerProcess = 0.

В некоторых случаях помогает увеличение РНР лимита в php.ini, в директивах «max_execution_time = 180«, «max_input_time = 120» и «default_socket_timeout = 180«, а также установкой «FcgidIOTimeout 300» и «FcgidBusyTimeout 500» в vi /etc/httpd/conf/httpd.conf или же конфиге виртуального хоста — разумеется под каждые конкретные условия значения подбираются экспериментальным путём.

Следующим шагом будет выбор стратегии выделения памяти (OVERCOMMIT_GUESS (0), OVERCOMMIT_ALWAYS (1), OVERCOMMIT_NEVER (2)) отличной от стратегии по умолчанию. По умолчанию sysctl -w vm.overcommit_memory=0 система пытается оценить объем свободной памяти, а на практике же удовлетворяет все запросы к памяти до момента её полной утечки, после чего вызывает упомянутый выше OOM Killer (oom-killer) уже тогда, когда система ушла в нирвану «Free swap = 0kB», «Swap is 100% used» и «Memory is 99% used».

vm.overcommit_memory=1 почти тоже что и = 0, только теперь уже система не пытается оценивать объем свободной памяти, а делает вид, что её всегда хватает до момента её полной утечки. vm.overcommit_memory=2 запретит выделять больше памяти чем имеется в файле подкачки и больше оперативной памяти в процентном соотношении указанном в параметре vm.overcommit_ratio=?. Также можно вырубить эвристический поиск ущербного процесса для убивания, по умолчанию vm.oom_kill_allocating_task=0 (OOM Killer) сканирует весь список задач и на основе своего эвристического алгоритма выбирает процесс для убивания, что отнимает дополнительные ресурсы системы. Значение выше 0 запрещает сканировать список задач и говорит «OOM Killer-у» уничтожать любой процесс запросивший больше РАМ-ы чем имеется в наличии.

sysctl w vm.overcommit_memory=2

sysctl w vm.overcommit_ratio=90

sysctl w vm.oom_kill_allocating_task=1

Для изменений на постоянной основе добавим в /etc/sysctl.conf. Ещё как вариант можно сделать ещё один файл подкачки, на случай вонючий:)

dd if=/dev/zero of=/root/swap1 bs=1024 count=1024K

1048576+0 records in

1048576+0 records out

1073741824 bytes (1.1 GB) copied, 8.61173 s, 125 MB/s

mkswap /root/swap1

Setting up swapspace version 1, size = 1048572 KiB

no label, UUID=ba18ffdeb25b48449da46fd095c9182f

swapon /root/swap1

vi /etc/fstab

/root/swap1 swap swap defaults 0 0

Chapter 3. mod_fcgid: can’t lock process table in pid

Это сообщение «mod_fcgid: can’t lock process table in pid» (mod_fcgid: не может заблокировать таблицу процессов в pid) может возникать тогда, когда регулярно используется команда «apachectl graceful» — т.е. перезапуск без разрыва текущих соединений, а её выполнение попадает во время интенсивного использования/нагрузки сервера.

Chapter 4. mod_fcgid: can’t apply process slot

«mod_fcgid: can’t apply process slot» — mod_fcgid не может выделить слот для процесса…

Section 1. Причина №1 — проблемы сегментации

В лог файл виртуального хоста получили «[warn] [client 78.159.53.233] mod_fcgid: can’t apply process slot for /var/www/user/php/php-cgi-wrapper, referer: https://www.google.com.ua/«, а в лог файл самого сервера множественные «[crit] (22)Invalid argument: ap_queue_pop failed«.

Ошибкой «Invalid argument: ap_queue_pop failed» в лог файл /var/log/httpd/error_log нагадило мегов на 300 с лишним за какие-то считанные минуты. Этой ошибке предшествовали сообщения «[alert] (11)Resource temporarily unavailable: apr_thread_create: unable to create worker thread» и «[notice] child pid 2839 exit signal Segmentation fault (11) Error in my_thread_global_end(): 1 threads didn’t exit«.

На ibm.com рекомендовалось увеличить значение «sysctl -w kernel.threads-max=120000» (по умолчанию 3525 в CentOS 6 и 7877 в CentOS 5) и уменьшить «stack size» с 10240 кб до «ulimit -s 256«.

Размер для каждого потока «thread» равен размеру «stack size», а если Apache запущен как Workerи завышены значения MaxClients, MinSpareThreads, MaxSpareThreads и ThreadsPerChild, в условиях нехватки памяти, то получим «[alert] (11)Resource temporarily unavailable: apr_thread_create: unable to create worker thread Error in my_thread_global_end(): 1 threads didn’t exit»

Можно увеличить kernel.threads-max, но «stack size» лучше оставить как есть, а иначе на некоторых страницах сайта это может вызывать ошибку «exit(communication error), get unexpected signal 11«! Однако принимая во внимание предыдущий абзац, «stack size» можно попробовать урезать в 3-5 раза или же урезать ThreadsPerChild если продолжаем получать «Resource temporarily unavailable: apr_thread_create: unable to create worker thread«.

Установить ограничение для «stack size» на постоянной основе можно в конф. файле /etc/security/limits.conf:

....

*               soft    stack            2048

apache               hard    stack            5120

# End of file

В примере выше мягкий лимит на «stack size» для всех установлен в 2 МБ, а для пользователя apache ограничен жестким лимитом в 5 МБ. После изменения лимитов с помощью «ulimit -s 256» нужно остановить и снова запустить сервер «service httpd stop && service httpd start«, чтобы изменения вступили в силу, изменения в /etc/security/limits.conf вступят в силу после перезагрузки ОС!

Section 2. Причина №2 — проблема конфигурации

…»mod_fcgid: can’t apply process slot» может быть связана не только с ошибками сегментации, но и с другими причинами такими, как например конфигурация самого mod_fcgid. Рядом с ошибкой «mod_fcgid: can’t apply process slot» граничит и «apache https 503» (ака «Service Unavailable»).

Основную погоду делают параметры:

  • FcgidMaxProcesses — максимально допустимое число php-cgi процессов запущенных одновременно;
  • FcgidMaxProcessesPerClass — максимально допустимое число php-cgi процессов для каждого класса.

PerClass-ом в Апаче, имхо … как я понимаю, считается базовый хост и все его виртуальные хосты. Значит, если FcgidMaxProcessesPerClass 2, а виртуальных хостов у нас 15 + 1 базовый хост, то в итоге получаем 32 php-cgi процесса, но если FcgidMaxProcesses (1000 по умолчанию) будет ниже 32, то в итоге в лог можем получить «mod_fcgid: can’t apply process slot», а в браузер «503 Service Unavailable».

В некоторых случаях (зависит от нагрузки) значение FcgidMaxProcessesPerClass должно быть не меньше 3-5.

Chapter 5. exit(communication error), get unexpected signal 11

Эта ошибка результат уменьшения «stack size»:

less /var/log/httpd/error_log

[Sun Nov 03 00:40:30 2013] [error] mod_fcgid: process /var/www/wrs/php/phpcgiw

rapper(2558) exit(communication error), get unexpected signal 11

[Sun Nov 03 00:40:30 2013] [warn] [client xxx.xxx.xxx.xxx] (104)Connection reset by

peer: mod_fcgid: error reading data from FastCGI server, referer: http://example.

com

[Sun Nov 03 00:40:30 2013] [error] [client xxx.xxx.xxx.xxx] Premature end of script

headers: index.php, referer: http://example.com/

less /var/log/messages

Nov  3 00:56:21 samp kernel: phpcgi[2666]: segfault at 7fffe9034f30 ip

00000000004740c3 sp 00007fffe9034ef0 error 6 in phpcgi[400000+341000]

Premature end of script headers / exit(communication error), get unexpected signal 11 в некоторых случаях может возникать из-за PHP акселераторов типа APC, обычно отсутствует если PHP работает «Как модуль APACHE».

Примечательно, что данная ошибка может проявляться только на некоторых страницах, обычно больших по размеру, где, например, может быть много кода раскрашиваемого Geshi плагином. Часто такие страницы создают большую нагрузку на ЦП и превысив всевозможные лимиты вызывают segfault.

Chapter 6. user mismatch (daemon instead of www)

Связанные ошибки:

/home/user/logs/error_log

[Mon Dec 16 12:36:19.011343 2013] [fcgid:warn] [pid 17033:tid 2183892224] [clien

t 178.94.242.15:54550] mod_fcgid: error reading data, FastCGI server closed conn

ection

[Mon Dec 16 12:36:19.016230 2013] [core:error] [pid 17033:tid 2183892224] [clien

t 178.94.242.15:54550] End of script output before headers: writetest.php

logs/error_log

suexec policy violation: see suexec log for more details

logs/suexec_log

[20131216 12:36:19]: user mismatch (daemon instead of www)

Ошибка вызвана несовпадением имени пользователя указанного в директиве AP_HTTPD_USER, имя которого можно узнать выполнив «suexec -V«, с именем пользователя, которое указано в /var/www/conf/httpd.conf.

В данном случае AP_HTTPD_USER для suexec = www, а имя указанное в httpd.conf = daemon. Решение: в конфиге /var/www/conf/httpd.conf, в директивах User и Group указать имя www вместо daemon.

Chapter 7. mod_fcgid: couldn’t bind unix domain socket /var/www/logs/fcgidsock/29944.19

Сопутствующие ошибки:

[Mon Dec 16 12:40:29.310746 2013] [fcgid:warn] [pid 29944:tid 665836768] (13)Per

mission denied: mod_fcgid: spawn process /home/user/php/phpcgiwrapper error

[Mon Dec 16 12:40:30.344063 2013] [fcgid:error] [pid 29944:tid 665836768] (13)Pe

rmission denied: mod_fcgid: couldnt bind unix domain socket /var/www/logs/fcgid

sock/29944.19

Решается сменой прав на каталог «chmod 777 /var/www/logs/fcgidsock/» или же сменой каталога директивой FcgidIPCDir

Если есть ещё какие вопросы по другим ошибкам mod_fcgid, то пишем в комментарии…

Chapter 8. Ссыль по теме:

  • mod_fcgid — Apache HTTP Server
  • Documentation for /proc/sys/vm/*

Stuck with the Error reading data from fastcgi server: Plesk? We can help you.

Generally, we come across this error due to corrupted WordPress plugins.

As part of our Server Management Services, we assist our customers with several Plesk queries.

Today, let us discuss how to resolve this error.

Error reading data from fastcgi server: Plesk

Recently, one of our customers came across this error on at least 3 of the domains on his server. The error message is like this:

Connection reset by peer: mod_fcgid: error reading data from FastCGI server

The major symptom of this error includes:

  • WordPress is installed on the Plesk server. However, login to the WordPress admin page is slow.
  • Errors in /var/www/vhosts/system/example.com/logs/error_log:
[warn] [client 203.0.113.2] (104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server, referer: https://example.com/wp-admin/
[error] [client 203.0.113.2] Premature end of script headers: edit-comments.php, referer: https://example.com/wp-admin
  • Stracing Apache processes shows the following:
# for fn in `ps fax | grep -i /usr/sbin/httpd | grep -v grep | awk '{ print $1 } '` ; do strace -fF -tT -s102400 -o /tmp/strace.log -p $fn & done

# grep plugins /tmp/strace.log | grep such
32335 02:12:05 lstat("/var/www/vhosts/example.com/httpdocs/test_rp/wp-content/languages/plugins/woocommerce-en_US.mo", 0x7ffe87108a60) = -1 ENOENT (No such file or directory) <0.000015>

Corrupted WordPress plugins can be the cause of this error. In the example above, the WooCommerce plugin is the cause.

How to solve this?

Moving ahead, let us see how we can fix this error in different scenarios:

  • Initially, we log in to Plesk
  • Then we deactivate one by one all plugins for the website at Domains > example.com > WordPress > Plugins until we fix it.
  • Eventually, we can Re-install or delete the plugin we have identified.

On the other hand, if we find that the permissions on the file /var/www/cgi-bin/cgi_wrapper are incorrect, we can fix it via command-line.

To do so, we connect to the server via SSH

Then we correct the permissions:

# chown root:root /var/www
# chmod 0755 /var/www
# chown -R root:root /var/www/cgi-bin
# chmod 0755 /var/www/cgi-bin
# chmod -R 0755 /var/www/cgi-bin/cgi_wrapper

[Need help with the fix? We are available 24*7]

Conclusion

To conclude, in most cases, this error occurs when there are Corrupted WordPress plugins. Today, we saw how our Support Techs fix this for our customers.

PREVENT YOUR SERVER FROM CRASHING!

Never again lose customers to poor server speed! Let us help you.

Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure.

GET STARTED

var google_conversion_label = «owonCMyG5nEQ0aD71QM»;

Skip to content

mod_fcgid Error Reading Data from FastCGI Server – Premature End of Script Headers

mod_fcgid Error Reading Data from FastCGI Server – Premature End of Script Headers

When running web app coding in PHP programming language, and which is assigned to the handler fcgid-script for execution through FastCGI protocol provided by mod_fcgid, the PHP script may run a while, and then suddenly return HTTP status code of 500 Internal Server Error.

Internet Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, [email protected] and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

500 Internal Server Error

Upon checking the Apache HTTPD web server error log, the following entries are logged:

[Mon Mar 11 08:08:28 2015] [warn] [client 192.168.1.1] (104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server, referer: https://techjourney.net/
[Mon Mar 11 08:08:28 2015] [error] [client 192.168.1.1] Premature end of script headers: backup.php, referer: https://techjourney.net/

The error can happen on any PHP script, but normally involves PHP script which takes a long time to complete its process, such as backup, import, export, deletion, replace and etc.

The error is normally related to FcgidBusyTimeout (old name BusyTimeout) and/or FcgidIOTimeout (old name IPCCommTimeout) directive which defines the maximum time limit for request handling. If a FastCGI request does not complete within FcgidBusyTimeout seconds, it will be terminated and killed. The purpose of this directive is to terminate hung applications.

By default, FcgidBusyTimeout directive has the value of 300 seconds. So a FastCGI application will be terminated anytime between 300 and 420 seconds (the app may run for longer period of time because the check is performed at the interval defined by FcgidBusyScanInterval, which is 120 seconds by default).

FcgidIOTimeout directive defines the maximum period of time the module will wait while trying to read from or write to a FastCGI application. By default, FcgidIOTimeout has 40 seconds communication timeout for FastCGI app to generate response, such as waiting for upload or download to complete.

So if you have a PHP script handled by FastCGI that takes longer time to complete or process, increase the timeout of FcgidBusyTimeout and/or FcgidIOTimeout directives.

To do so, modify the Apache web server httpd.conf or apache.conf. You can apply the settings globally on server for all virtual hosts or virtual servers (all websites and web apps hosted), or individually on each virtual hosts or virtual servers.

To apply the FastCGI directives globally, insert the following code before the virtual hosts declaration in httpd.conf or apache.conf. Sometimes, the <IfModule mod_fcgid.c> section is already existed, so you just need to add in the appropriate lines. Note that some Apache configuration may use another config file such as fcgid.conf located in conf.d, extra or includes directory to define module-specific parameters.

In cPanel with WHM, you can use the Include Editor to easily add the directives. To access Include Editor, go to Service Configuration -> Apache Configuration -> Include Editor, and choose Pre Virtual Host Include.
<IfModule mod_fcgid.c>
# Other fcgid directives, if any, may also appears here.
FcgidBusyTimeout 3600
FcgidIOTimeout   3600
</IfModule>

If you decide to apply the increased timeouts for a particular virtual host (website) only, add the fcgid directives to within the virtual host declaration. For example:

<VirtualHost *:80>
# Other virtual host directives such as ServerName, DocumentRoot, ErrorLog, CustomLog and etc.
<IfModule mod_fcgid.c>
# Other fcgid directives, if any, may also appears here.
FcgidBusyTimeout 3600
FcgidIOTimeout   3600
</IfModule>
</VirtualHost>

About the Author: LK

LK is a technology writer for Tech Journey with background of system and network administrator. He has be documenting his experiences in digital and technology world for over 15 years.Connect with LK through Tech Journey on Facebook, Twitter or Google+.

Page load link

Go to Top

13 ответов

Мне удалось решить эту проблему, добавив FcgidBusyTimeout. На всякий случай, если у кого-то есть аналогичная проблема со мной.

Вот мои настройки на моем apache.conf:

<VirtualHost *:80>
.......
<IfModule mod_fcgid.c>
FcgidBusyTimeout 3600
</IfModule>
</VirtualHost>

James Wise
30 авг. 2012, в 10:06

Поделиться

У меня были очень похожие ошибки в файлах журнала Apache2:

(104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server
Premature end of script headers: phpinfo.php

После проверки сценариев оболочки и настроек Apache2 я понял, что/var/www/не имеет соответствующих разрешений. Таким образом, скрипты FCGId Wrapper не могли быть прочитаны вообще.

ls -la /var/www
drwxrws---  5 www-data     www-data     4096 Oct  7 11:17 .

Для моего сценария chmod -o+rx /var/www требовалось, конечно, так как используемые пользователи SuExec не входят в группу пользователей www-data, и, конечно, они не должны быть членами по соображениям безопасности.

Oliver Hader
07 окт. 2013, в 10:24

Поделиться

если вы хотите установить версию PHP < 5.3.0, вы должны заменить

--enable-cgi

с:

--enable-fastcgi

в инструкции ./configure, выдержка из документа php.net:

--enable-fastcgi

Если это включено, модуль CGI будет построен с поддержкой FastCGI. Доступно с PHP 4.3.0

Начиная с PHP 5.3.0, этот аргумент больше не существует и включен вместо —enable-cgi. После компиляции ./php-cgi -v должен выглядеть следующим образом:

PHP 5.2.17 (cgi-fcgi) (built: Jul  9 2013 18:28:12)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies

УВЕДОМЛЕНИЕ (cgi-fcgi)

reiner23fx
09 июль 2013, в 17:15

Поделиться

В версиях CentOS suexec компилируется для запуска только в /var/www. Если вы попытаетесь установить DocumentRoot где-то в другом месте, вам придется перекомпилировать его — ошибка в журнале apache:
(104) Соединение reset by peer: mod_fcgid: ошибка чтения данных с сервера FastCGI
Преждевременный конец заголовков script: php5.fcgi

Jivko Todorov
01 фев. 2017, в 08:46

Поделиться

У меня была та же проблема с длинными сценариями с сообщениями об ошибках
«Недопустимый конец заголовков script: index.php» и «Connection reset by peer: mod_fcgid: ошибка чтения данных с сервера FastCGI» в error_log.
После нескольких часов тестирования это помогает мне (CentOS 6, PHP-FPM 7, Plesk 12.5.30):

отредактируйте файл конфигурации:

/etc/httpd/conf.d/fcgid.conf

Установите более высокое время работы. В моем случае 600 секунд

создайте новую запись:

FcgidBusyTimeout 600

адаптировать следующие записи:

FcgidIOTimeout 600

     

FcgidConnectTimeout 600

перезапустить httpd:

служба httpd restart

joruf81
14 фев. 2016, в 13:54

Поделиться

Я столкнулся с этим при отладке связанной с virtualmin/apache ошибки.

В моем случае я запускаю virtualmin и имел в своей виртуальной машине php.ini
safe_mode = On.

В моем журнале ошибок виртуальной машины я получал соединение fcgi reset через peer: mod_fcgid: ошибка чтения данных с сервера FastCGI

В моем главном журнале ошибок apache я получал:
PHP Неустранимая ошибка: директива «safe_mode» больше не доступна в PHP в Unknown on line 0

В моем случае я просто устанавливаю safe_mode = Off в моем php.ini и перезапущенном apache.

stackoverflow.com/questions/18683177/where-to-start-with-deprecated-directive-safe-mode-on-line-0-in-apache-error

Lance
20 сен. 2015, в 12:35

Поделиться

У меня возникла эта проблема и я понял, что файл cgi-bin/php-fcgi не имеет прав выполнения.

Он имел режим 644, в то время как он должен иметь режим 755.

Настройка правильного режима была невозможна (вероятно, потому, что файл был открыт или sth), поэтому я скопировал этот файл из другого каталога домена, где у него были уже установленные права, и что все исправлено.

sEver
27 сен. 2013, в 08:55

Поделиться

Знаменитый Moodle «replace.php» script также может генерировать эту ситуацию.
Для меня это потребовало времени для запуска, а затем с сообщением 500 в браузере, а также с указанным выше сообщением об ошибке в моем файле журнала ошибок apache.

Я проследил @james-мудрый ответ:
FcgidBusy легко читается в документации Apache. Я попробовал это: удвоил количество времени, которое apache дал бы моему script, вставив следующую строку в /etc/apache 2/mods-available/fcgid.conf

FcgidBusyTimeout 600

Затем я перезапустил Apache и снова попытался запустить my replace.php script.

К счастью, на этот раз экземпляр script завершился, поэтому для моих целей это послужило решением.

owenmck
24 март 2013, в 03:26

Поделиться

Не в этот вопрос задает адепты, но часто:

Что означает «преждевременный конец ошибки заголовка script»?

Эта ошибка означает, что вызов FCGI неожиданно завершился.

В некоторых случаях это означает, что script «backup.php» сработал.

Как это исправить?

Если причиной сбоя является script, исправьте script, чтобы он не разбился. Тогда эта ошибка также исправлена. Чтобы узнать, если и почему произошел сбой script, вам нужно отладить его. Например, вы можете проверить журнал ошибок PHP. Ошибки, зарегистрированные в STDERR, обычно идут в обработчик ошибок FCGI.

hakre
28 авг. 2012, в 07:43

Поделиться

Просто установите php5-cgi
в debian

sudo apt-get install php5-cgi

в Centos

sudo yum install php5-cgi

Mancy
19 окт. 2013, в 23:15

Поделиться

Как уже упоминалось, это может происходить из-за проблем с обработчиком fcgi. Если вы используете suexec — не забудьте проверить, включен ли в этот модуль этот модуль.

kK-Storm
20 июнь 2014, в 16:54

Поделиться

Проверить/var/lib/php/session и его разрешения. Этот каталог должен быть доступен для записи пользователем, чтобы сеанс можно было сохранить

mangia
30 дек. 2013, в 11:26

Поделиться

У меня такая же проблема (с установленным Plesk 12).
Однако, когда я переключился с выполнения PHP как FastCGI на Apache Module, сайт работал.

Проверьте мой журнал suexec:

$ cd /var/log/apache2/
$ less suexec.log

Когда вы найдете что-то вроде этого:

[2015-03-22 10:49:00]: directory is writable by others: (/var/www/cgi-bin/cgi_wrapper)
[2015-03-22 10:49:05]: uid: (10004/gb) gid: (1005/1005) cmd: cgi_wrapper

попробуйте выполнить следующие команды

$ chown root:root /var/www/cgi-bin/cgi_wrapper
$ chmod 755 /var/www/cgi-bin/cgi_wrapper
$ shutdown -r now

как root.

Я надеюсь, что это может вам помочь.

Marvin M
23 март 2015, в 11:37

Поделиться

Ещё вопросы

  • 1Сделайте так, чтобы текст появлялся сразу, но постепенно исчезал, используя современные CSS-переходы
  • 1Итерация по параллельным спискам и преобразование текста с разделителями табуляции в одном списке в путь CSV в другом
  • 1OpenWeatherMap получит среднюю температуру за день
  • 0Напишите этот HTML из этого результата JSON (разбор JSON)
  • 0Авто Увеличение первичного ключа
  • 1Обновить AppWidget из программы?
  • 1Создайте словарь подсчета категорий для столбца панд
  • 0Alt тег не отображается в браузере
  • 0Рут в Yii2 не работает
  • 1Открытие соединения и получение ответа занимает слишком много времени
  • 0Доступ к личным членам класса
  • 0OpenCV — остановка программы при выполнении шага определения ключевых точек изображения
  • 0Openlayers 3, применение массива пространственных объектов к векторным результатам в getId () не является функцией
  • 0Автозаполнение jQuery UI плагин с JSP и сервлетов не работает
  • 1Получить пользовательские атрибуты пользователя из AD в weblogic
  • 1Несколько текстовых режимов в ASP.NET
  • 0массив PHP с переменной, которая не создает ключ
  • 0Статистика сети LinkedIn API говорит: «Доступ к сети запрещен», хотя я предоставил r_network
  • 0Не могу найти строку char * в моем коде
  • 0MFC ActiveX CShockwaveflash элемент. Как отключить контекстное меню?
  • 0Как запустить код в модуле YUI?
  • 1Есть ли способ расширить уведомления нажатием клавиши, а не касанием?
  • 1Защищен ли сайт от атак XSS, если нет контента, созданного пользователями?
  • 0Функция дружеского шаблона
  • 0Вставка данных в таблицу MySQL из многоязычной HTML-формы через PHP
  • 1Python Imp не находит модули
  • 1Найти первый пустой слот в массиве объектов
  • 0CodeIgniter — извлекает данные из MySQL и отображает без обновления страницы
  • 1проверка БД, если записи существуют только в течение 13 месяцев
  • 1GraphDatabaseService Shutdown () не возвращается
  • 0Вычитая время для публикации сколько минут назад
  • 0Prettyprint ASCII значения для нажатия клавиш в C / C ++
  • 0Гравитационные формы платежей с несколькими условиями
  • 1Войти в Jabber-сеть
  • 0AngularJ вызывают функцию только после вызова заводской функции
  • 1MSMQ — могу ли я запрашивать сообщения, которые в данный момент обрабатываются?
  • 0Настройка Cookies для JQuery Popup — всплывающее окно всегда открывается, хотя cookie установлены
  • 0Контент, который изменяет ширину с помощью анимированной боковой панели
  • 1Проблема производительности в активных отчетах 6
  • 1Условия предиката для критериев JPA
  • 0Синтаксическая ошибка в полном внешнем соединении?
  • 0MEAN.js — Как перенаправить после функции Push
  • 1Настройте таргетинг на все элементы <a> с определенным textContent, пока не доступен идентификатор
  • 0Быстрые запросы в производственной базе данных очень медленные при локальной импортированной копии
  • 0Почему я не могу получить доступ к глобальным переменным в моей функции js?
  • 0Win32 отправляет события синхронизации другому процессу
  • 1Ошибка зависимости Hadoop maven — классы Hadoop не найдены
  • 0как получить уменьшенное изображение загруженного изображения в angularjs
  • 0Как получить частичный текст из HTML в Python
  • 1Динамический импорт Python3 с exec — почему «as» не выполняется?

Здравствуйте!

Все время существования сервера у меня каждый день имеется ~ 30 вот таких вот ошибок в еррор логах:

[Fri Mar 04 15:52:04 2016] [warn] [client 85.94.17.79] (104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server, referer: site.ru/category/post
[Fri Mar 04 15:52:04 2016] [error] [client 85.94.17.79] Premature end of script headers: kama_postviews.php, referer: site.ru/category/post

Они вылетают на случайных страницах и Premature end of script headers: kama_postviews.php — не всегда этот файл, это может быть и index.php и еще что-то

Логи пересматривал кучу раз, абсолютно все которые есть на сервере — причину никак выявить не могу. Конфиг fcgid.conf менял тыщу раз — никаких результатов это не дает. Т.е. эта ошибка (в браузере отображается как 500) — какая-то неуловимая и рандомная, вообще не от чего не зависит… Появляется она так же в случайный промежуток времени — т.е. ошибки эти не только утром, днем или вечером, а равномерны в течении дня. Так же нет никакой аномальной нагрузки на сервер при появлении этой ошибки.

Если перевести эти ошибки в % относительно просмотренных страниц — получается ~ 0.03% Это не критично и никаких жалоб мне не поступает, но очень раздражает наличие этой ошибки в error логах — если бы не она, то этот лог был бы пустой :(

Так же нет никаких зависаний при появлении ошибки. Т.е. я кликаю на ссылку, потом на другую и в один момент бац — мгновенно отдается ошибка 500, т.е. я даже не жду генерации страницы. Затем жму обновить страницу и все нормально — страница грузится без каких-то тормозов.

Вопрос: У вас нет никаких идей из-за чего это может быть и как с этим бороться? Или 0.03% того не стоят и можно не обращать на это внимания?

Дополнительно:
Я на 1ом каком-то сайте однажды столкнулся с такой же ошибкой: бродил по сайту и тут бац, после клика по ссылке вылезла ошибка 500, но не прошло и секунды как страница сама обновилась и все работало нормально.

Вы не знаете что это за фишка такая, что страница сама обновилась как только вылезла ошибка 500?

(104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server

Set up:

  • Plesk Obsidian 18.0.28
  • Centos 7

Like any error that pops up, the real check is how do you react?

  • Keep and calm and investigate — even if colleagues are stressed out; 
  • Grab a stress ball and work on it hard; or
  • Join and stressed out party and lose perspective.

I haven’t seen this one before.  A quick search through Google and I discovered a solution on Virtualmin.  However, they write about a migration process which for us wasn’t happening.  Second, they point to a directory fcgi-bin.  A quick look using shell ls command and again not us.  But the essence of what they wrote about pointed me in the right direction.

In Plesk, I performed the following steps:

  • Respective domain.com;
  • Hosting settings; and
  • Then scrolled to the bottom and clicked Apply

Checked the front-end of the offending site, and back up and running.

Logs

Looking through the error logs on the server, not that much more was shown from the original error:

  • [Thu Aug 06 10:25:14 2020] [warn] [client xxx.xx.xx.xxx] (104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server
  • [Thu Aug 06 10:25:14 2020] [error] [client xxx.xx.xx.xxx] Premature end of script headers: index.php

So I needed to alter the mod_fcgi through using FcgidBusyTimeout.  This can be applied a couple of ways.

  1. Through Plesk:
    1. Respective domain.com;
    2. Click on PHP Settings;
    3. Scroll to the bottom and in the input box for Additional directives, add 
      1. FcgidBusyTimeout=3600
    4. Click Apply
  2. Using Shell:
    1. Open your directory of the domain 
    2. cd /var/www/vhosts/your-domain.com
    3. Open .htaccess file using
      1. vi .htaccess
    4. Add the following lines
      1. <IfModule mod_fcgid.c>
        FcgidBusyTimeout 3600
        </IfModule>
    5. Save [esc]wq!

With either, when you go back to the front end, potentially on your first refresh you might see 502 error.  No issue, refresh again and the error should be gone and your site back up.

У меня возникла проблема с PHP, где мое приложение пытается запустить файл резервной копии php и вдруг получает HTTP Error 500 Code. Я проверил журналы и это то, что он говорит.

Кто-нибудь знает, как это исправить? Я действительно застрял здесь и не могу найти решение в Интернете.

Надеюсь, кто-нибудь может поделиться своими знаниями.

Благодарю. Джеймс

Мне удалось это решить, добавив FcgidBusyTimeout . На всякий случай, если у кого-то есть аналогичная проблема со мной.

Вот мои настройки на моем apache.conf:

<VirtualHost *:80> ....... <IfModule mod_fcgid.c> FcgidBusyTimeout 3600 </IfModule> </VirtualHost> 

У меня были очень похожие ошибки в файлах журнала Apache2:

 (104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server Premature end of script headers: phpinfo.php 

После проверки сценариев оболочки и настроек Apache2 я понял, что / var / www / не имеет соответствующих разрешений. Таким образом, скрипты FCGId Wrapper не могли быть прочитаны вообще.

 ls -la /var/www drwxrws--- 5 www-data www-data 4096 Oct 7 11:17 . 

Разумеется, для моего сценария требуется chmod -o+rx /var/www , поскольку используемые пользователи SuExec не являются членами группы пользователей www-data – и, конечно, они не должны быть членами по соображениям безопасности.

если вы хотите установить версию PHP <5.3.0, вы должны заменить

 --enable-cgi 

с:

 --enable-fastcgi 

в вашем ./configure заявлении, выдержка из документа php.net:

 --enable-fastcgi 

Если это разрешено, модуль CGI будет построен с поддержкой FastCGI. Доступно с PHP 4.3.0

Начиная с PHP 5.3.0 этот аргумент больше не существует и активируется –enable-cgi. После компиляции ./php-cgi -v должен выглядеть так:

 PHP 5.2.17 (cgi-fcgi) (built: Jul 9 2013 18:28:12) Copyright (c) 1997-2010 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies 

УВЕДОМЛЕНИЕ (cgi-fcgi)

Сценарий знаменитого Moodle «replace.php» также может генерировать эту ситуацию. Для меня это потребовало времени для запуска, а затем с сообщением 500 в браузере, а также с указанным выше сообщением об ошибке в моем файле журнала ошибок apache.

Я последовал за @ james-мудрым ответом: FcgidBusy читается в документации Apache . Я попробовал это: удвоил количество времени, которое apache предоставил моему сценарию для запуска, вставив следующую строку в /etc/apache2/mods-available/fcgid.conf

 FcgidBusyTimeout 600 

Затем я перезапустил Apache и снова попытался запустить скрипт replace.php.

К счастью, на этот раз экземпляр сценария завершился, поэтому для моих целей это послужило решением.

У меня была эта проблема и я понял, что файл cgi-bin / php-fcgi не имеет прав исполнения.

Он имел режим 644, тогда как режим должен иметь 755.

Установка правильного режима была невозможна (вероятно, потому, что файл был открыт или sth), поэтому я скопировал этот файл из другого каталога домена, где у него уже были права, и все исправлено.

Я столкнулся с этим при отладке ошибки, связанной с virtualmin / apache.

В моем случае я запускаю virtualmin и имел в своей php.ini виртуальной машины safe_mode = On.

В журнале ошибок моей виртуальной машины я получал сброс соединения fcgi через peer: mod_fcgid: ошибка чтения данных с сервера FastCGI

В моем главном журнале ошибок apache я получал: PHP Fatal error: директива «safe_mode» больше не доступна на PHP в Unknown в строке 0

В моем случае я просто устанавливаю safe_mode = Off в моем php.ini и перезапущенном apache.

stackoverflow.com/questions/18683177/where-to-start-with-deprecated-directive-safe-mode-on-line-0-in-apache-error

Не в этом вопросе вопрос адеектов, но часто:

Что означает ошибка «преждевременного окончания заголовков скриптов» ?

Эта ошибка означает, что вызов FCGI неожиданно вышел из строя.

В некоторых случаях это означает, что сценарий «backup.php» сработал.

Как это исправить?

Если причиной сбоя был сценарий, исправьте скрипт так, чтобы он не разбился. Тогда эта ошибка также исправлена. Чтобы выяснить, если и почему сценарий аварийно завершает работу, вам нужно отладить его. Например, вы можете проверить журнал ошибок PHP. Ошибки, зарегистрированные в STDERR, обычно идут в обработчик ошибок FCGI.

У меня была та же проблема с длинными сценариями с сообщениями об ошибке «Преждевременный конец заголовков скриптов: index.php» и «Сброс соединения с помощью peer: mod_fcgid: ошибка чтения данных с сервера FastCGI» в error_log. После нескольких часов тестирования это помогает мне (CentOS 6, PHP-FPM 7, Plesk 12.5.30):

отредактируйте файл конфигурации:

/etc/httpd/conf.d/fcgid.conf

Установите более высокое время работы. В моем случае 600 секунд

создайте новую запись:

FcgidBusyTimeout 600

адаптировать следующие записи:

FcgidIOTimeout 600

FcgidConnectTimeout 600

перезапустить httpd:

перезагрузка службы httpd

В версиях CentOS suexec компилируется для запуска только в / var / www. Если вы пытаетесь установить DocumentRoot где-то еще, вам нужно перекомпилировать его – ошибка в журнале apache: (104) Сброс соединения через peer: mod_fcgid: ошибка чтения данных с сервера FastCGI Преждевременный конец заголовков скриптов: php5.fcgi

Просто установите php5-cgi в debian

  sudo apt-get install php5-cgi 

в Центосе

  sudo yum install php5-cgi 

Проверьте / var / lib / php / session и его разрешения. Этот каталог должен быть доступен для записи пользователем, чтобы сеанс можно было сохранить

Как уже упоминалось, это может происходить из-за проблем с обработчиком fcgi. Если вы используете suexec – не забудьте проверить, включен ли в этот модуль этот модуль.

У меня такая же проблема (с установленным Plesk 12). Однако, когда я переключился с выполнения PHP как FastCGI на Apache Module, сайт работал.

Проверьте мой журнал suexec:

 $ cd /var/log/apache2/ $ less suexec.log 

Когда вы найдете что-то вроде этого:

 [2015-03-22 10:49:00]: directory is writable by others: (/var/www/cgi-bin/cgi_wrapper) [2015-03-22 10:49:05]: uid: (10004/gb) gid: (1005/1005) cmd: cgi_wrapper 

попробуйте эти команды

 $ chown root:root /var/www/cgi-bin/cgi_wrapper $ chmod 755 /var/www/cgi-bin/cgi_wrapper $ shutdown -r now 

как корень.

Надеюсь, это может вам помочь.

Понравилась статья? Поделить с друзьями:
  • Mocp fatal error no valid sound driver
  • Mock axios error
  • Mocha error cannot find module
  • Mobile legends как изменить снаряжение
  • Mobile friendly другая ошибка