понедельник, 19 марта 2012 г.

FastCGI: socket file descriptor (1103) is larger than FD_SETSIZE (1024)

Была год назад проблема с
(20)Not a directory: FastCGI: failed to connect to server "/home/abc/data/php-bin/php.sh": socket file descriptor (1103) is larger than FD_SETSIZE (1024), you probably need to rebuild Apache with a larger FD_SETSIZE
Сейчас снова всплыла после очередного обновления апача.

Фиксы:
make.conf:
.if ${.CURDIR} == ${PORTSDIR}/www/apache22
WITH_SSL=YES
WITH_SUEXEC=YES
PERF_TUNING=YES
WITH_MODACCEL=YES
HARD_SERVER_LIMIT=4096
#SUEXEC_DOCROOT=/home
SUEXEC_DOCROOT=/
SUEXEC_USERDIR=www
SUEXEC_LOGFILE=/var/log/httpd-suexec.log
SUEXEC_CALLER=www
CFLAGS+=" -DFD_SETSIZE=8192"
CONF_CFLAGS=" -DFD_SETSIZE=8192U"
.endif

В /usr/src/sys/sys/select.h:
...
#define FD_SETSIZE 8192U
...


После этого пересобираем апач и ap22-mod_fastcgi. Поведение с fcgid не проверялось.

2 комментария:

  1. Можно немного уточнить - на какой именно версии Апача такой баг теперь снова?

    ОтветитьУдалить
  2. apachectl -v
    Server version: Apache/2.2.22 (FreeBSD)
    Server built: Mar 18 2012 22:17:37

    Что самое странное - этот баг мне встречался только во фре, но на нескольких серверах сразу, mod_fastcgi + ispmanager, на разных версиях апача.

    ОтветитьУдалить