пересборка 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
где и указан корректный пакет для установки , соответствующий системе.