编译安装可以自定义软件的功能,优化编译参数提高性能等功能。

在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文件里添加一些条目

 打开浏览器