我们现在分以下步骤进行安装apache:
1、 安装编译环境
2、 卸载原有apache
3、 下载解压源码包
4、 安装apache
5、 测试apache
6、 查看apache安装生成的目录
7、 查看apache的配置文件
8、 apache加入系统服务
一、安装编译环境
在安装apache之前,我们需要安装编译apache时所需要的相关软件包,如下:
apr、apr-util、pcre、gcc-c++、libtool
1.下载所需要的包
wget http://archive.apache.org/dist/apr/apr-1.4.5.tar.gz
wget http://archive.apache.org/dist/apr/apr-util-1.3.12.tar.gz
wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.10/pcre-8.10.zip
2.解压,依次进入相应目录进行编译安装
编译安装apr:
./configure --prefix=/usr/local/apr
make && make install
编译安装apr-util:
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install
编译安装pcre:
./configure --prefix=/usr/local/pcre
make && make install
安装gcc-c++库:
yum -y install gcc-c++
安装libtool库:
yum -y install libtool
ps:若在编译过程中出错,可执行make clean重新进行./configure
二、卸载原有Apache
在源码安装apache之前,我们要先卸载系统中,已经通过rpm包安装的apache(否则可能引起端口冲突)。如下:
rpm -qa |grep httpd
rpm -e --nodeps $(rpm -qa |grep httpd)
三、下载解压源码包
建议去apache官网下载,本实验以httpd-2.4.25.tar.gz为例
#tar -zxf httpd-2.4.25.tar.gz
四、安装apache
安装apache,我们首先要编译,然后进行安装.
./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre
--prefix=/usr/local/apache2表示指定apache的安装路径,默认安装路径为/usr/local/apache2
--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模式原理是更多的使用线程来处理请求,所以可以处理更多的并发请求。另外还有prefork等模式,具体区别参见下面。如果不指定此参数,默认的模式是prefork进程模式。这个是apache调优的一个重要选项之一。
--enable-deflate提供对内容的压缩传输编码支持,一般是html、js、css等内容的站点。使用此参数会打打提高传输速度,提升访问者访问的体验。在生产环境中,这是apache调优的一个重要选项之一。
prefork, worker, event 三种模式的区别:
1. prefork 中没有线程的概念,是多进程模型,一个进程处理一个连接;稳定;响应快。其缺点是在连接数比较大时就非常消耗内存。
2. worker 是多进程多线程模型,一个进程有多个线程,每个线程处理一个连接。与prefork相比,worker模式更节省系统的内存资源。不过,需要注意worker模式下的Apache与php等程序模块的兼容性。
3. event 是worker模式的变种,它把服务进程从连接中分离出来,在开启KeepAlive的场合下相对worker模式能够承受更高的并发负载。event模式不能很好的支持https的访问(HTTP认证相关的问题)。
下面进行安装
$ make
$ make install
$ /usr/local/apache2/bin/apachectl start
#netstat -tln用此命令查看端口使用情况,若有80端口说明安装成功。
五、测试apache
wget http://127.0.0.1
通过上图,我们可以很明显的看到apache已经正常启动。
六、查看apache安装生成的目录
apache正常启动后,我们来查看apache安装生成的目录。如下:
bin主要存放程序命令目录,。
conf主要存放apache配置文件。
htdocs主要存放站点目录。
logs主要存放默认日志文件。
modules主要存放apache的运行模块。例如php、memcache编译后的模块存放在这里。
七、查看apache的配置文件
apache的配置文件httpd.conf存放在conf 目录下,如下:
查看httpd.conf配置内容,如下:
egrep -v '^[ ]*#|^$' /usr/local/apache2/conf/httpd.conf | nl
ServerRoot "/usr/local/apache2"表示apache根目录,该目录应只有root用户具有访问,一般不需要修改。
Listen 80表示apache监听端口,默认为80。如果同时监控81端口,可以加一行:Listen 81。
AddType application/x-httpd-php .php LoadModule php5_module modules/libphp5.so用于apache与php进行集成时使用。
User daemon Group daemon表示apache运行时的用户及组,默认为daemon,建议修改,如apache。
DocumentRoot "/usr/local/apache2/htdocs"表示apache默认的web站点目录,路径结尾不要添加斜线。
ServerAdmin you@example.com表示系统管理员的邮箱,此项为非重要选项。当网站出现问题时,面面会显示此页面地址。
DirectoryIndex index.php index.html配置默认的apache首页。如果虚拟主机未配置,默认应用这里的配置。
ErrorLog "logs/error_log"错误日志路径。
LogLevel warn错误日志级别。
ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"配置cgi别名。
八、apache加入系统服务
为了让apache开机启动,我们可以把apachectl启动脚本加入rc.local文件中,如下:
echo "/usr/local/apache2/bin/apachectl start">>/etc/rc.local
关于更多的apache加入系统服务的知识,请参阅www.jb51.net/article/59474.htm