封尘网

让学习成为一种习惯!

centos6.5源码安装apache2.2.31-搭建个人博客系列二

系统:Centos6.5(x64)

最小化定制安装:base、editors、development librarys、developement tools、x software development、system tools

防火墙关闭,selinux=disabled
源码包存放目录:/usr/local/src
安装目录:/application/apache
apache源码安装过程:版本:2.2.31

把apache下载到服务器源码包存放目录:/usr/local/src

编译参数:

./configure \
--prefix=/application/apache2.2.31 \
--enable-deflate \
--enable-expires \
--enable-headers \
--enable-modules=most \
--enable-so \
--with-mpm=worker \
--enable-rewrite

make && make install

./configurre后的参数说明:

  • —prefix=/application/apache2.2.31 表示指定apache的安装目录,如果不指定默认安装到[/usr/local/apache2]

  • —enable-deflate 提供对内容的压缩传输编码支持,一般html,js,css等内容的站点。使用此参数功能会大大提高传输速度,可以提升访问者访问体验。在生产环境中,这是apache调优的一个重要选项之一。

  • —enable-expires 激活允许通过配置文件控制HTTP的Expires:”和“Cache-Control:”头部内容,即对网站图片、JS,CS等内容,提供在客户端浏览器缓存的设置。这是apache调优的一个重要选项之一。

  • —enable-headers 提供允许对HTTP请求头的控制。

  • —enable-modules=most

  • —enable-so 激活apache服务的DSO(全称Dynamic Shared Object 动态共享对象)支持,即在以后可以以DSO的方式编译安装共享模块,这个模块本不身不能以DSO方式编译。

  • —with-mpm=worker 选择apache mpm的模式为worker模式,因为worker模式原理是更的使用线程来处理请求,所以可以处理更多的并发请求,而系统资源的开销小于基于进程的MPM prefork。如果不指定此参数,默认的模式是prefork进程模式。这是apache调优的一个重要选项。

  • —enable-rewrite 提供基于URL规则的重写功能,即根据已知URL地址,转换其它想要的URL地址,例如伪静态功能就是靠这个模块实现的。这是apache在生产环境中必用的一个重要功能。

如果编译时出现下面的错误:

configure 错误提示:

  checking whether to enable mod_deflate... configure: error: mod_deflate has been requested but can not be built due to prerequisite failures

原因是缺少了zlib-devel 没装的原因,

yum install zlib-devel openssl-devel   #安装一下即可。

安装完成后做一个软连接,因为我们安装时指定了版本号,这样是方便以后升级或管理。

[root@web_server ~]# ln -s /application/apache2.2.31 /application/apache

可以查看到已经编译了哪些模块,有些模块默认会被编译。

[root@web_server ~]# /application/apache/bin/apachectl -l

启动方法:

[root@web_server ~]# /application/apache/bin/apachectl start

执行apachectl 这个脚本时,实际又是在调用 httpd这个文件。

启动时会提示:这个主要是主机名字,需要修改一下。

[root@web_server ~]# /application/apache/bin/apachectl start
httpd: apr_sockaddr_info_get() failed for web_server

httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

检查一下服务是否正常:(通常是用于检查无法访问到网站时的一个检查过程)

  • 通过端口反查哪个服务在使用80端口:

     [root@web_server ~]# lsof -i:80
    
     COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
     httpd   24795   root    4u  IPv6  85754      0t0  TCP *:http (LISTEN)
     httpd   24797 daemon    4u  IPv6  85754      0t0  TCP *:http (LISTEN)
     httpd   24798 daemon    4u  IPv6  85754      0t0  TCP *:http (LISTEN)
     httpd   24801 daemon    4u  IPv6  85754      0t0  TCP *:http (LISTEN)
    
  • 查看httpd进程是否存在
     [root@web_server ~]# ps -ef|grep httpd
     root     24795     1  0 08:55 ?        00:00:00 /application/apache2.2.31/bin/httpd -k start
     daemon   24796 24795  0 08:55 ?        00:00:00 /application/apache2.2.31/bin/httpd -k start
     daemon   24797 24795  0 08:55 ?        00:00:00 /application/apache2.2.31/bin/httpd -k start
     daemon   24798 24795  0 08:55 ?        00:00:00 /application/apache2.2.31/bin/httpd -k start
     daemon   24801 24795  0 08:55 ?        00:00:00 /application/apache2.2.31/bin/httpd -k start
     daemon   24882 24795  0 08:56 ?        00:00:00 /application/apache2.2.31/bin/httpd -k start
     root     24933  8241  0 08:58 pts/1    00:00:00 grep httpd
    

在浏览器打开http://IP 可以看到 It works! 就说明apache服务成功在运行了。

到此apache就已经编译安装成功了。