centOS下编译安装apache

加入全栈技术交流群(QQ群号:254842154)

1、卸载系统自带的httpd

rpm -qa|grep httpd
rpm -e httpd-2.2.15-15.el6.centos --nodeps 
rpm -e httpd-tools

2、安装依赖文件

apache的编译需要运行在apr库上,相关的文件一共有三个 ①apr 下载

wget http://mirrors.hust.edu.cn/apache//apr/apr-1.5.1.tar.gz

解压

tar -zxvf apr-1.5.1.tar.gz

编译

cd apr-1.5.1
./configure --prefix=/usr/local/apr  
make
make install

②apr-util 下载

wget http://mirrors.hust.edu.cn/apache//apr/apr-util-1.5.4.tar.gz

解压

tar -zxvf apr-util-1.5.4.tar.gz

编译

cd apr-util-1.5.4
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make
make install

③pcre 下载

wget http://sourceforge.net/projects/pcre/files/pcre/8.32/pcre-8.32.tar.gz/download

解压

tar -zxvf pcre-8.32.tar.gz

编译

cd pcre-8.32
./configure  
make
make install

3、安装apache

地址:http://httpd.apache.org/download.cgi#apache24

下载

wget http://apache.dataguru.cn//httpd/httpd-2.4.10.tar.gz

解压

tar -zxvf httpd-2.4.10.tar.gz

编译(注意:假如apr,apr-util的安装目录有变化,对应修改下面的目录即可)

cd httpd-2.4.10

./configure --prefix=/usr/local/apache --enable-mods-shared=all --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/  

make
make install

4、启动apache

/usr/local/apache/bin/apachectl start //启动apache

//把apache启动脚本复制到系统脚本目录下
cp  /usr/local/apache/bin/apachectl /etc/init.d/httpd  

vi  /etc/init.d/httpd

在第一行下输入(注意,需要有#这个符号)

//修改脚本用于 在运行界别2345下自启动,并指定启动脚本序号为85,关闭脚本序号为35

#chkconfig: 2345 85 35    

注册为自启动服务

chkconfig --add httpd

5、测试

http://localhost

假如显示:it works!则成功

假如无法访问,需要把防火墙的80端口打开,否则不需要。我的进行上面的配置后不需要就work了

vi /etc/sysconfig/iptables  //编辑iptables配置文件

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT    //在适当位置插入

service iptables restart    //重启防火墙服务

6、开启gzip压缩

Gzip是一种流行的文件压缩算法,现在的应用十分广泛,尤其是在Linux平台。当应用Gzip压缩到一个纯文本文件时,效果是非常明显的,大约可以减少70%以上的文件大小。这取决于文件中的内容。 利用Apache中的Gzip模块,我们可以使用Gzip压缩算法来对Apache服务器发布的网页内容进行压缩后再传输到客户端浏览器。这样经过压缩后实际上降低了网络传输的字节数,最明显的好处就是可以加快网页加载的速度。开启gzip会对服务器的cpu有一定的消耗。

网页加载速度加快的好处不言而喻,除了节省流量,改善用户的浏览体验外,另一个潜在的好处是Gzip与搜索引擎的抓取工具有着更好的关系。

Apache利用Gzip压缩算法进行压缩的模块有两种:modgzip 和moddeflate。一般来说modgzip 对服务器CPU的占用要高一些。moddeflate 是专门为确保服务器的性能而使用的一个压缩模块,moddeflate 需要较少的资源来压缩文件。这意味着在高流量的服务器,使用moddeflate 可能会比mod_gzip 加载速度更快。

另外,从Apache 2.0.45开始,moddeflate 可使用DeflateCompressionLevel 指令来设置压缩级别。该指令的值可为1(压缩速度最快,最低的压缩质量)至9(最慢的压缩速度,压缩率最高)之间的整数,其默认值为6(压缩速度和压缩质 量较为平衡的值)。这个简单的变化更是使得moddeflate 可以轻松媲美mod_gzip 的压缩。

找到httpd.conf文件,取消注释,开始这两行:

LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so

在httpd.conf文件末尾加上这几行代码:

<IfModule mod_deflate.c>
# 1-9,预设可以采用 6 这个数值,以维持耗用处理器效能与网页压缩质量的平衡。
DeflateCompressionLevel 7
#必须的,就像一个开关一样,告诉apache对传输到浏览器的内容进行压缩
SetOutputFilter DEFLATE
#设置不对后缀gif,jpg,jpeg,png的图片文件进行压缩
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png|bmp)$ no-gzip dont-vary
#同上,就是设置不对exe,tgz,gz。。。的文件进行压缩
SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary

 #设置对文件是文本的内容进行压缩,例如text/html  text/css  text/plain等
AddOutputFilterByType DEFLATE text/*
 #这段代码你只需要了解application/javascript application/x-javascript这段就可以了,这段的意思是对javascript文件进行压缩
AddOutputFilterByType DEFLATE application/ms* application/vnd* application/postscript application/javascript application/x-javascript
 #这段是告诉apache对php类型的文件进行压缩
AddOutputFilterByType DEFLATE application/x-httpd-php application/x-httpd-fastphp

 # Netscape 4.x 有一些问题,所以只压缩文件类型是text/html的
BrowserMatch ^Mozilla/4 gzip-only-text/html
 # Netscape 4.06-4.08 有更多的问题,所以不开启压缩
BrowserMatch ^Mozilla/4.0[678] no-gzip
 # IE浏览器会伪装成 Netscape ,但是事实上它没有问题
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

我这里开启了js,css等这些文件的gzip压缩,图片并未开启。

查看浏览器的Response Headers请求,看到已经开启了gzip。开启前大小为22.7kb,压缩后为7.3kb,压缩率将近70%。

参考 1、http://www.cnblogs.com/itech/archive/2013/04/06/3002762.html

2、http://www.linuxidc.com/Linux/2013-05/84945.htm

3、http://www.onepx.com/centos-apache-246.html

标签: none

→ 如果你觉得作者的文章不错,一不小心帮到了你,欢迎打赏作者几包辣条的钱💰