系统: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就已经编译安装成功了。