源码安装
卸载系统自带的httpd:
rpm -qa |grep httpd rpm -e --nodeps httpd-2.2.15-29.el6.centos.x86_64 rpm -e --nodeps httpd-tools-2.2.15-29.el6.centos.x86_64
配置防火墙,开启80端口
vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
/etc/init.d/iptables restart
#重启防火墙使配置生效关闭SELINUX
vi /etc/selinux/config
#SELINUX=enforcing #注释掉 #SELINUXTYPE=targeted #注释掉 SELINUX=disabled #增加
shutdown -r now
#重启系统安装编译环境
yum -y install gcc gcc++ zlib zlib-devel
下载解压源码包
wget http://apache.fayea.com/httpd/httpd-2.2.27.tar.gz
编译配置
./configure --prefix=/usr/local/apache --enable-rewrite --enable-so --enable-headers --enable-expires --with-mpm=worker --enable-modules=most --enable-deflate
- –prefix=/usr/local/apache表示指定apache的安装路径,默认安装路径为/usr/local/apache
- –enable-rewrite提供URL规则的重写更嫩那个,即根据已知的URL地址,转换为其它想要的URL地址
- –enable-so激活apache服务的DSO(Dynamic Shared Objects动态共享目标),即在以后可以以DSO的方式编译安装共享模块,这个模块本身不能以DSO方式编译。
- –enable-headers提供允许对HTTP请求头的控制。
- –enable-expires激活荀彧通过配置文件控制HTTP的“Expires:”和“Cache-Control:”头内容,即对网站图片、js、css等内容,提供客户端浏览器缓存的设置。这个是apache调优的一个重要选项之一。
- –with-mpm=worker选择apache mpm的模式为worker模式。为worker模式原理是更多的使用线程来处理请求,所以可以处理更多的并发请求。而系统 资源的开销小玉基于进程的MPM prefork。如果不指定此参数,默认的模式是prefork进程模式。这个是apache调优的一个重要选项之一。
- –enable-deflate提供对内容的压缩传输编码支持,一般是html、js、css等内容的站点。使用此参数会打打提高传输速度,提升访问者访问的体验。在生产环境中,这是apache调优的一个重要选项之一。
编译&安装
make make install
安装完毕apache,查看安装后的目录,如下:
- bin主要存放程序命令目录,。
- conf主要存放apache配置文件。
- htdocs主要存放站点目录。
- logs主要存放默认日志文件。
- modules主要存放apache的运行模块。
配置说明(/etc/httpd/conf/httpd.conf:主配置文件,其主要设定以它为主)
egrep -v '^[ ]*#|^$' httpd.conf | nl
- ServerRoot “/usr/local/apache2”表示apache根目录,该目录应只有root用户具有访问,一般不需要修改。
Listen 80表示apache监听端口,默认为80。如果同时监控81端口,可以加一行:Listen 81。
User daemon Group daemon表示apache运行时的用户及组,默认为daemon,建议修改,如apache。
ServerAdmin you@example.com表示系统管理员的邮箱,此项为非重要选项。当网站出现问题时,面面会显示此页面地址。
DocumentRoot “/usr/local/apache2/htdocs”表示apache默认的web站点目录,路径结尾不要添加斜线。
DirectoryIndex index.php index.html配置默认的apache首页。如果虚拟主机未配置,默认应用这里的配置。
ErrorLog “logs/error_log”错误日志路径。
- LogLevel warn错误日志级别。
- ScriptAlias /cgi-bin/ “/usr/local/apache2/cgi-bin/”配置cgi别名。