您的位置:首页 > 运维架构 > Apache

编译安装Apache发布多个虚拟主机

2011-07-18 18:27 316 查看
编译安装可以自定义软件的功能,优化编译参数提高性能等功能。

在Linux下编译安装软件大致分为三个步骤:

1:编译前的配置工作

2:编译

3:安装

这次我们拿apache的安装来实验,我们先把要用的软件包下载到linux里

下载网址:http://www.apache.org/或者在网上搜索:我这里使用的版本是

httpd-2.2.17.tar.gz

下面就来着手安装 httpd-2.2.17.tar.gz

我先在根下建立一个目录用来放我们的安装文件/www





解压httpd-2.2.17.tar.gz包到/www目录下





进入/www目录,然后再建立一个apache目录用来放我们的apache的安装文件





查看http-2.2.17目录我们可以看到如下文件




在编译之前我们还要查看一下有没有安装gcc编译器





提示我们gcc这个包没有安装,下面我们就要先安装上gcc

我们这里采用yum的方式来安装,因为用rpm包有过多的依赖关系。

有关yum的配置方法请参考我的别的文档,这里就不细说了。





之后我们再来查看gcc是不是安装好了





下在我们就来做准备前的配置工作

[root@localhost httpd-2.2.17]# ./configure --prefix=/www/apache --enable-so --enable-rewrite

其中--prefix=/www/apache是指定我们的apache安装在哪里

--enable-so是编译动态加载模块(DSO)支持到httpd二进制文件。此模块使得Apache的各功能模块可以与核心分开编译、运行时动态加载。

--enable-rewrite支持地址重写功能,使用1.0版本请将它改为--enable-module=rewrite

看一下有没有提示错误,有就解决问题,

还有一些其它选项可以参考:

--enable-mods-shared=most 告诉编译器将所有标准模块都动态编译为DSO模块。

--enable-module=most

用most可以将一些不常用的,不在缺省常用模块中的模块编译进来.动态编译大部分常用的模块。
--enable-mods-shared=all 意思是动态加载所有模块。

如果没有然后[root@localhost httpd-2.2.17]# make

看一下有没有提示错误,有就解决问题,

如果没有然后

[root@localhost httpd-2.2.17]#make install

( 我们也可以

[root@localhost httpd-2.2.17]# make && make install )

结束之后我们查看/www/apache目录可以看到生成了很多文件





这时候我们启动apache服务测试一下





apache服务安装成功了,下面我们就来在这一台linux上用三种方法发布多个网站

1:利用多个端口发布多个网站

2:利用多个IP地址发布多个网站

3:利用不同的主机头发布多个网站

现在就先来准备几个简单的网页,我们要注意编译安装的apache存放网页的目录要放在apache的安装目录htdocs中,否则提示没有权限打开等错误。

[root@localhost apache]# vim conf/httpd.conf 大约在106行









相应的日志文件目录和文件我们也一块建立了后来会用到





用rpm包安装的apache主配置文件是安装主目录下apache/conf/httpd.conf

所有配置文档在httpd.conf这个文件里就可以,但是编译安装的就不一样了

我们需要看配置文件[root@localhost apache]# vim conf/httpd.conf





我们要把#Include conf/extra/httpd-vhosts.conf前的#号去掉,他的虚拟主机我们应该在

安装目录下apache/conf/extra/httpd-vhosts.conf这个配置文件里实现

1:利用多个端口发布多个网站

需要修改的配置文件如下:

[root@localhost apache]# vim conf/httpd.conf



大约在40行



大约在389行

然后再编辑[root@localhost apache]# vim conf/extra/httpd-vhosts.conf

在配置文件的最后修改成:





然后我们重启服务

[root@localhost apache]# bin/apachectl stop

[root@localhost apache]# bin/apachectl start

用客户端测试:













2:利用多个IP地址发布多个网站

首先在一个网卡上绑定多个IP地址

我们可以临时绑定一下:

方法1:[root@localhost ~]# ifconfig eth0:1 192.168.8.9 netmask 255.255.255.0 up

重启网络服务就不再有

方法2:如果想让绑定的IP地址永久生效可以复制eth0配置文件

[root@localhost ~]# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0:1

需要修改的配置文件为

[root@localhost apache]# vim conf/httpd.conf



去掉刚才加的两个端口的这两行(不去也不影响)

然后再编辑[root@localhost apache]# vim conf/extra/httpd-vhosts.conf 效果如下:





重启apache服务测试

[root@localhost apache]# bin/apachectl stop

[root@localhost apache]# bin/apachectl start

用windows客户端测试









3:利用不同的主机头发布多个网站

利用不同的主机头来标识多个网站这是我们用的最多的,这一个需要我们DNS服务的支持。(我们这里就在windows客户端的hosts文件里添加记录做实验)

(首先我们把刚才的配置还原一下 )

httpd.conf这个配置文件不需要修改,

然后要配置[root@localhost apache]# vim conf/extra/httpd-vhosts.conf 效果如下:

把 NameVirtualHost * : 80 大约在19行前的#号去掉

最后几行修改成:





重启apache服务

[root@localhost apache]# bin/apachectl stop

[root@localhost apache]# bin/apachectl start

我们用windows客户端测试

我们要先在hosts文件里添加一些条目









打开浏览器









本文出自 “红公鸡” 博客,请务必保留此出处http://lifeng.blog.51cto.com/3339249/615845
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: