在KYLIN上装APACHE2.2需将EnableSendfile设置为off


    装好apache2.2后会出现不能传输html页面,但是默认却能显示It Works 主要原因是这个指令控制httpd是否可以使用操作系统内核的sendfile支持来将文件发送到客户端。默认情况下,当处理一个请求并不需要访问文件内部的数据时(比如发送一个静态的文件内容),如果操作系统支持,Apache将使用sendfile将文件内容直接发送到客户端而并不读取文件。这个sendfile机制避免了分开的读和写操作以及缓冲区分配。由于默认是打开的,但Kylin对sendfile系统调用支持不够。所以会出现无法传输大于一定容量的html页面。关掉并不影响正常使用。
    同时默认编译运行时出现warn[92]Protocol not available:fail to enable APR_TCP_DEFER_ACCEPT的警告。并不影响apache正常运行,可以在编译之前将源代码中关于APR_TCP_DEFER_ACCEPT的宏定义注释掉就可以了,运行时就不会提示warn了