编译安装可以自定义软件的功能,优化编译参数提高性能等功能。
在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模块。
用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行
然后再编辑[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文件里添加一些条目
打开浏览器