尝试了一把从2005年以来第一次重大更新的新版本apache,不仅加入了云计算的基因更大幅提升了性能,I/O读写和内存占用优化程度比较大,主要是增加了一个enevt模式,测试效果不错。
实际我测试的 单纯的编译后静态文件和nginx的处理性能,确实已经相差不大,测试是使用ab测试的,单台nginx和阿帕奇测试后对比数据获得的结果,下次进行系统的测试在发测试数据,暂时只是测试了jpg图片 和html静态的文件 数据可能没代表性。
下面把编译的时候,常见的错误贴下:
错误一:
复制代码 代码如下:
rotatelogs.o: In function post_rotate':
rotatelogs.c:(.text+0x5ed): undefined reference to apr_file_link'
collect2: ld returned 1 exit status
make[2]: *** [rotatelogs] Error 1
make[2]: Leaving directory /root/src/httpd-2.4.2/support'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory /root/src/httpd-2.4.2/support'
make: *** [all-recursive] Error 1
rotatelogs.c:(.text+0x5ed): undefined reference to apr_file_link'
collect2: ld returned 1 exit status
make[2]: *** [rotatelogs] Error 1
make[2]: Leaving directory /root/src/httpd-2.4.2/support'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory /root/src/httpd-2.4.2/support'
make: *** [all-recursive] Error 1
这些是因为没apr的包
有2个解决方法:
第一种解决办法:
复制代码 代码如下:
yum remove “apr*”
wget http://ftp.jaist.ac.jp/pub/apache/apr/apr-1.4.6.tar.gz
tar xzf apr-1.4.6.tar.gz
cd apr-1.4.6
./configure ; make ; make install
wget http://ftp.jaist.ac.jp/pub/apache/apr/apr-util-1.4.1.tar.gz
tar zxvf apr-util-1.4.1.tar.gz
cd apr-util-1.4.1
./configure –with-apr=/usr/local/apr
yum install -y pcre-devel lua-devel libxml2-devel
wget http://ftp.jaist.ac.jp/pub/apache/apr/apr-1.4.6.tar.gz
tar xzf apr-1.4.6.tar.gz
cd apr-1.4.6
./configure ; make ; make install
wget http://ftp.jaist.ac.jp/pub/apache/apr/apr-util-1.4.1.tar.gz
tar zxvf apr-util-1.4.1.tar.gz
cd apr-util-1.4.1
./configure –with-apr=/usr/local/apr
yum install -y pcre-devel lua-devel libxml2-devel
第二种解决办法:
下载arp的包以后 cp到httpd的文件夹
复制代码 代码如下:
cp -r apr-1.4.6 httpd-2.4.2/srclib/apr
cp -r apr-util-1.4.1 httpd-2.4.2/srclib/apr-util
cp -r apr-util-1.4.1 httpd-2.4.2/srclib/apr-util
就可以解决了
第二个常见的错误 这种只有mini安装会出现 一般大部分菜鸟都不会安装devel的包
复制代码 代码如下:
checking for OpenSSL version >= 0.9.7… FAILED
configure: WARNING: OpenSSL version is too old
no
checking whether to enable mod_ssl… configure: error: mod_ssl has been requested but can not be built due to prerequisite failures
configure: WARNING: OpenSSL version is too old
no
checking whether to enable mod_ssl… configure: error: mod_ssl has been requested but can not be built due to prerequisite failures
解决办法
复制代码 代码如下:
yum install openssl-devel
yum update openssl
yum update openssl
近期准备把所有服务器都升级到httpd 2.4.2 获得更好的性能