unknown directive "aio" in Nginx 0.8.14

Igor Sysoev is at rambler-co.ru
Thu Sep 10 16:36:49 MSD 2009


On Thu, Sep 10, 2009 at 02:14:06PM +0200, Dinh Pham wrote:

> Hi Igor
> 
> Here is the output after I run ./configure
> 
> checking for OS
>  + Linux 2.6.18-128.2.1.el5 i686

This kernel has no eventfd() support.

> checking for C compiler ... found
>  + using GNU C compiler
>  + gcc version: 4.1.2 20080704 (Red Hat 4.1.2-44)
> checking for gcc -pipe switch ... found
> checking for gcc variadic macros ... found
> checking for C99 variadic macros ... found
> checking for unistd.h ... found
> checking for inttypes.h ... found
> checking for limits.h ... found
> checking for sys/filio.h ... not found
> checking for sys/param.h ... found
> checking for sys/mount.h ... found
> checking for sys/statvfs.h ... found
> checking for crypt.h ... found
> checking for Linux specific features
> checking for epoll ... found
> checking for sendfile() ... found
> checking for sendfile64() ... found
> checking for sys/prctl.h ... found
> checking for prctl(PR_SET_DUMPABLE) ... found
> checking for sched_setaffinity() ... found
> checking for crypt_r() ... found
> checking for sys/vfs.h ... found
> checking for nobody group ... found
> checking for poll() ... found
> checking for /dev/poll ... not found
> checking for kqueue ... not found
> checking for crypt() ... not found
> checking for crypt() in libcrypt ... found
> checking for O_DIRECT ... found
> checking for F_NOCACHE ... not found
> checking for directio() ... not found
> checking for statfs() ... found
> checking for statvfs() ... found
> checking for dlopen() ... not found
> checking for dlopen() in libdl ... found
> checking for sched_yield() ... found

It's strange: if you add --with-file-aio, you should see here:

checking for kqueue AIO support ... not found
checking for Linux AIO support ... not found

> checking for PCRE library ... found
> checking for system md library ... not found
> checking for system md5 library ... not found
> checking for OpenSSL md5 crypto library ... found
> checking for zlib library ... found
> creating objs/Makefile
> checking for int size ... 4 bytes
> checking for long size ... 4 bytes
> checking for long long size ... 8 bytes
> checking for void * size ... 4 bytes
> checking for uint64_t ... found
> checking for sig_atomic_t ... found
> checking for sig_atomic_t size ... 4 bytes
> checking for socklen_t ... found
> checking for in_addr_t ... found
> checking for in_port_t ... found
> checking for rlim_t ... found
> checking for uintptr_t ... uintptr_t found
> checking for system endianess ... little endianess
> checking for size_t size ... 4 bytes
> checking for off_t size ... 8 bytes
> checking for time_t size ... 4 bytes
> checking for setproctitle() ... not found
> checking for pread() ... found
> checking for pwrite() ... found
> checking for strerror_r() ... found but is not working
> checking for gnu style strerror_r() ... found
> checking for localtime_r() ... found
> checking for posix_memalign() ... found
> checking for memalign() ... found
> checking for mmap(MAP_ANON|MAP_SHARED) ... found
> checking for mmap("/dev/zero", MAP_SHARED) ... found
> checking for System V shared memory ... found
> checking for struct msghdr.msg_control ... found
> checking for ioctl(FIONBIO) ... found
> checking for struct tm.tm_gmtoff ... found
> checking for struct dirent.d_namlen ... not found
> checking for struct dirent.d_type ... found
> 
> Configuration summary
>   + using system PCRE library
>   + OpenSSL library is not used
>   + md5: using system crypto library
>   + sha1 library is not used
>   + using system zlib library
> 
>   nginx path prefix: "/usr/local/nginx"
>   nginx binary file: "/usr/local/nginx/sbin/nginx"
>   nginx configuration prefix: "/usr/local/nginx/conf"
>   nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
>   nginx pid file: "/usr/local/nginx/logs/nginx.pid"
>   nginx error log file: "/usr/local/nginx/logs/error.log"
>   nginx http access log file: "/usr/local/nginx/logs/access.log"
>   nginx http client request body temporary files: "client_body_temp"
>   nginx http proxy temporary files: "proxy_temp"
>   nginx http fastcgi temporary files: "fastcgi_temp"
> 
> 
> It says nothing about Linux AIO. Also, directio is said not to be found. 

Conversely found:
checking for O_DIRECT ... found

You probably mixed up with F_NOCACHE which is MacOSX feature.

> I am using CentOS 5.3 with libaio, libaio-devel installed. It seems that 
> the kernel equipped with CentOS 5.3/Redhat ES 5.3 is too old to support 
> this feature.

nginx requires eventfd() support in AIO.

> Thanks,
> 
> Dinh
> 
> 
> Igor Sysoev wrote:
> > On Thu, Sep 10, 2009 at 11:26:14AM +0200, Dinh Pham wrote:
> > 
> > Could you show this ./configure line:
> > checking for Linux AIO support ...
> > ?
> > 
> > Probabaly, your kernel does not support eventfd(), it's available since
> > 2.6.22 only.
> -- 
> Posted via http://www.ruby-forum.com/.

-- 
Igor Sysoev
http://sysoev.ru/en/





More information about the nginx mailing list