Страница 1 из 1

Помогите перекомпилировать Apache

Добавлено: 2011-09-07 12:03:01
mvd81
На сервере стоит Apache 2.2.17 со стандартными параметрами.

Код: Выделить всё

# httpd -V
Server version: Apache/2.2.17 (FreeBSD)
Server built:   Sep  7 2011 12:09:44
Server's Module Magic Number: 20051115:25
Server loaded:  APR 1.4.2, APR-Util 1.3.10
Compiled using: APR 1.4.2, APR-Util 1.3.10
Architecture:   32-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/prefork"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_USE_FLOCK_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT="/usr/local"
 -D SUEXEC_BIN="/usr/local/bin/suexec"
 -D DEFAULT_PIDLOG="/var/run/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="/var/run/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="etc/apache22/mime.types"
 -D SERVER_CONFIG_FILE="etc/apache22/httpd.conf"
Как я понял, Apache ограничивает число одновременных подключений до 256..
Из-за этого в пиковые рабочие часы, когда эта цифра превышается, вижу "socket connection reset by peer" и дальше - перезапуск apache. пришлось для этой цели monitd поставить...
Нарыл опцию -D HARD_SERVER_LIMIT=N
Хочу установить её на 1024, а в httpd.conf прописать "MaxClients 512" и дальше уже играть с этой цифрой...
Но убейте - не пойму: Как перекомпилировать Apache с этой опцией???
Пробовал make deinstall -> make -D HARD_SERVER_LIMIT=1024 -> make install clean
Ничего не изменилось. Нужной опции не прибавилось...
Если можно по-коммандно, или пошагово...

Заранее благодарен за ответы.

Re: Помогите перекомпилировать Apache

Добавлено: 2011-09-07 13:19:02
bagas
помоему так
меняем переменную в /usr/local/include/apache22/httpd.h
HARD_SERVER_LIMIT с 256 на большее число.

или в make.conf указать

Код: Выделить всё

.if ${.CURDIR} == ${PORTSDIR}/www/apache22
WITH_SSL=YES
WITH_MODACCEL=YES
HARD_SERVER_LIMIT=4096
.endif
И заново запустить обновление самого порта. должно все пересобраться.
к примеру так в первом варианте не уверен..

Re: Помогите перекомпилировать Apache

Добавлено: 2011-09-07 13:33:16
x6e6564
Если надо что-то в исходниках поменять, то обычно:

Код: Выделить всё

make deinstall;
make patch; - распакует и применит патчи, если таковые есть. Далее в папке work поправить что нужно.
make install;
почитать man ports

Re: Помогите перекомпилировать Apache

Добавлено: 2011-09-07 13:42:51
mvd81
Спасибо.
Сейчас начну пробовать...

Re: Помогите перекомпилировать Apache

Добавлено: 2011-09-07 14:08:39
mvd81
самое интересное, что
нет в "/usr/local/include/apache22/httpd.h" переменной HARD_SERVER_LIMIT.

по поводу make.conf... Вы про Makefile в /usr/ports/www/apache22 или я недопонял?
Если про него, то и там ничего похожего на MODEACCEL и SERVER_LIMIT не нашел...

если данный код
.if ${.CURDIR} == ${PORTSDIR}/www/apache22
WITH_SSL=YES
WITH_MODACCEL=YES
HARD_SERVER_LIMIT=4096
.endif
нужно самому туда вставить, то подскажите в какое место... или это не имеет значения???

Re: Помогите перекомпилировать Apache

Добавлено: 2011-09-07 14:31:11
bagas
укажи в /etc/make.conf

Re: Помогите перекомпилировать Apache

Добавлено: 2011-09-07 14:54:18
mvd81
да, да...
понял, про какой Вы make.conf - тупить уже начинаю...

в общем, добавил туда
.if ${.CURDIR} == ${PORTSDIR}/www/apache22
WITH_SSL=YES
WITH_MODACCEL=YES
HARD_SERVER_LIMIT=4096
.endif

далее: make deinstall
и make install clean (естественно в /usr/ports/www/apache22) - ничего не изменилось...
строки -D HARD_SERVER_LIMIT не появилось...

Re: Помогите перекомпилировать Apache

Добавлено: 2011-09-07 16:27:05
mvd81
Тема закрыта.
Если кому будет интересно:
всякие HARD_SERVER_LIMIT это для апачей версии 1.3

в 2.2. всё элементарно:
перед строкой MaxClients прописать строку ServerLimit И ВСЁ...

т.е. в моём случае нужно было
ServerLimit 1024
MaxClients 512