пересборка nginx 0.8 без aio для CentOS c epel5

Posted in Новости on 19 января, 2011 by admin

Если после установки nginx в CentOS с epel5 после запуска оного в логе ошибок возникает вот такая штука :

2011/01/19 18:53:11 [emerg] 24730#0: eventfd() failed (38: Function not implemented)
2011/01/19 18:53:11 [alert] 24729#0: worker process 24730 exited with fatal code 2 and can not be respawn
2011/01/19 19:18:49 [emerg] 24904#0: eventfd() failed (38: Function not implemented)
2011/01/19 19:18:49 [alert] 24903#0: worker process 24904 exited with fatal code 2 and can not be respawn
2011/01/19 18:53:11 [emerg] 24730#0: eventfd() failed (38: Function not implemented)

2011/01/19 18:53:11 [alert] 24729#0: worker process 24730 exited with fatal code 2 and can not be respawn

2011/01/19 19:18:49 [emerg] 24904#0: eventfd() failed (38: Function not implemented)

2011/01/19 19:18:49 [alert] 24903#0: worker process 24904 exited with fatal code 2 and can not be respawn

то значит, что модуль aio не отрабатывает так как нужно и nginx будет работать либо неправильно, либо вообще не работать.

Пересобираем nginx без aio :

1. ставим все нужные пакеты и зависимости :

yum install -y pcre-devel zlib-devel openssl-devel libxslt-devel GeoIP-devel gd-devel rpmdevtools yum-utils

2. создаем нужные условия :

cd /usr/src

rpmdev-setuptree

3. качаем исходники и потрошим пакет :

yumdownloader —enablerepo=epel-source —source nginx

rpm -ihv nginx-*

4. убираем из файла сборки модуль —with-aio

nano /usr/src/redhat/SPECS/nginx.spec

5. пересобираем пакет :

rpmbuild -bb nginx.spec

6. копируем конфиг nginx в безопасное место и удаляем nginx :

cp /etc/nginx/nginx.conf /etc/

yum remove -y nginx

7. накатываем новый пакет :

rpm -i /usr/src/redhat/RPMS/i386/nginx-0.8.53-1.i386.rpm

8. возвращаем конфиг на место и перезапускаем nginx :

cp /etc/nginx.conf /etc/nginx/

/etc/init.d/nginx restart

!!!ВАЖНО!!!

В процессе пересобрки пакета в последних строчках будет что то типа :

Wrote: /usr/src/redhat/RPMS/i386/nginx-0.8.53-1.i386.rpm

Wrote: /usr/src/redhat/RPMS/i386/nginx-debuginfo-0.8.53-1.i386.rpm

Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.49670

+ umask 022

+ cd /usr/src/redhat/BUILD

+ cd nginx-0.8.53

+ rm -rf /var/tmp/nginx-0.8.53-1-root-root

+ exit 0

где и указан корректный пакет для установки , соответствующий системе.

Tags: , , ,