分享
 
 
 

Linux和Solaris建立Apache的虚拟根环境

王朝system·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

摘要:在Linux上安装一个虚拟根环境化的Apache目录树是相当的简单的。这个例子使用的是Red Hat 6.*和Apache 1.3.12。同时,它也包含PHP4(作为一个Apache模块),以及在虚拟根环境化的目录树上的perl5的安装。另外还安装了mod-ssl和mod-perl

介绍

??我曾经利用CERN httpd安装和使用了已经虚拟根环境下的Web服务器。对Web服务器建立虚拟根环境有各种各样的优点和缺点。在Web发展的早期阶段,这种技术还提供了额外的有价值的安全机制。但是在这个apache的领域中,这种技术似乎没有太大的用处,可它仍旧很有趣。

??我提供对apache在linux和soloris环境下实现虚拟根环境的安装的例子,它既可以做标准的编辑(在必要的时候被标记为non-DSO)或者做动态共享对象编辑(在必要时它将被标记为DSO)。选项为DSO的Solaris的例子还没有进行文档化,所以我没有测试它(我打算在测试时使用Solaris 8)。

??在Linux上安装一个虚拟根环境化的Apache目录树是相当的简单的。这个例子使用的是Red Hat 6.*和Apache 1.3.12。同时,它也包含PHP4(作为一个Apache模块),以及在虚拟根环境化的目录树上的perl5的安装。另外还安装了mod-ssl和mod-perl。

??该例也假定Red Hat 安装比较完整 (即:有足够的文件、库和开发工具)。注意,如果你安装Red Hat时用了custom(prefered)的配置,并且选择了development选项;或者你就是使用了服务器(server)配置,你都会有一个完全的开发环境。

??Mysql3.22.27并没有安装在实现了虚拟根环境目录树中,但是为了完整性我们在此将它包含进去。

声明

??我并不是个专家:),尤其在加密方面(openssl、mod-ssl和company)我的水平更是有限。我也是个普通的人,也会犯错误,所以,如果你发现了什么或是有什么建设性的意见,请告诉我。

??我写这篇文章只是希望,你能从中学到一些东西,获得一些帮助。我也可以经常提供一些RPM,但如果你知道你可以从草图开始,独立的建一个自己的现代Web网站,那恐怕会更有趣些。但是,在当前的Internet上,学习、理解关于运行一个Web网站各种问题以及所冒的风险,都要靠你自己了。

Solaris 例子

??对Web目录树进行虚拟根环境化的solaris的例子与Linux的例子十分相似。当然,如果你没有安装GNU开发环境,solaris的例子就不可能像Linux例子那样容易。

??Solaris的例子文档在另一个web页中。

附加的注释

使用工具ldd来发掘必要的共享库。

在这个例子中,用户有这样的提示:

root user:

ROOT#

ordinary user:

$

我基本上都是作为普通用户而不是root用户来编译和安装各种软件的。这有助于避免对文件系统(尤其是在使用不熟悉的软件时)造成的不必要的破坏。这也有助于在进行危险操作前给以警示,例如在已经安装的二进制文件上的“setuid"操作,以及在不寻常的地方安装文件的操作等危险操作前的警示。

在这个例子中,我作为用户soft:soft来进行编译和安装等操作。

其实,只要保证软件的所有者的身份ID与Apache目录树用户的ID(在本例中我们用的是888)不同就可以了。

Red Hat的缺省root环境中,有一个交互式的开关-I被加在命令cp、mv和rm上。如果你的root环境中没有这些设置,建议你最好将它加上。你可以检查下面的文件:

ROOT# alias |grep '-i'

alias cp='cp -i'

alias mv='mv -i'

alias rm='rm -i'

你应当使你的配置尽量的简单――不要安装那些用不到或根本不必要的模块。一般说来,一个标准的non-DSO(非动态共享对象)Apache,在安装一个perl,对大多数人都是足够的。

关于DSO和mod-ssl需要注意的地方:

如果你打算把任何东西都按照DSO模版进行编译,那你首先要建立mod-ssl,然后你确实要按照下面的顺序建立自己的Apache目录树。Mod-ssl会明显的修改Apache 建立的目录树,据我的经验,在使用我们刚才提到的软件版本的前提下,下面的顺序是做起来最简单的顺序:

建立Apache

在Apache中建立和增加mod-ssl

在Apache中建立和增加php 和mod-perl。

你应该在适当的地方记录下来你是如何编译你的目录树的,以便再做时参考。(你可以将其打印出来,并加上注释)

安装了各种软件之后,最终的虚拟根环境化的目录树有23MB,其中包含了8MB的共享库和perl。下面是基于DSO安装的文件的总结(以KB表示):

ROOT# pwd

/www

ROOT# du -s .

22737 .

ROOT# du -s *

6832??apache

0?? bin

1?? dev

7?? etc

6679??lib

1?? tmp

9215??usr

1?? webhome

ROOT# du -s apache /*

600?? apache /bin

3?? apache /cgi-bin

125?? apache /conf

1560??apache /htdocs

133?? apache /icons

392?? apache /include

3925??apache /libexec

64?? apache /man

29?? apache /var

ROOT# du -s usr/*

8410??usr/Local

336?? usr/bin

340?? usr/lib

128?? usr/share

1.获得源代码

??如果你想将一个包加入到你的虚拟根环境化的目录树中,那你必须获得这个包中任何一个文件的源代码。多数源文件都可以从相应的Linux版本的被称为SRPMs(RPM源代码包)的原码光盘中获取;当然也可从tarball文件(.tar.gz)中获取(这种方法很适合于你的带宽有限的情况)。

??在Red Hat 系统中你作为root用户安装Source:

??ROOT# rpm -i /path/to/SRPMfile.src.rpm

??然后,在/usr/src/redhat/SOURCES/目录中提取出源代码。

??在我们的例子中我将指出,在Internet上你可从何处获取这些源代码:

??软件包????版本号????????源代码??????????文档信息

??Apache??? 1.3.12????www.apache.org/dist/?????www.apache.org/docs/

??MySQL????3.22.27??? www.mysql.com/downloads???www.mysql.com/documentation/

??PHP?????4.0.2?????www.php.net/downloads.php??www.php.net/docs.php

??Perl???? 5.00503??? www.cpan.org/src/?????? www.cpan.org/doc/manual/html/index.html

??mod_perl??1.24????? perl.apache.org/dist/???? perl.apache.org/#docs

??Hello.pm?????????????????????????? perl.apache.org/dist/contrib/

??mod_ssl?? 2.6.6-1.3.12 ftp://ftp.modssl.org/source/?www.modssl.org/docs/2.6/

??OpenSSL?? 0.9.5a????ftp://ftp.openssl.org/source/?www.openssl.org/support/faq.html

??RSAref???2.0??????google search????????? google search

2.步骤细节

??准备好一个虚拟根环境化后的文件系统

2.1 在任何一个地方安装目录树

??注意:最好是在另一个磁盘上,或是在非系统分区上安装,这样可以避免别人从Web目录树以外建立到文件的连接,但是你可以使用symlink(例如:/www)连接来找到这棵目录树。

??ROOT# mkdir /export/misc/www

??ROOT# ln -s /export/misc/www /www

2.2 生成基本的目录,bin将是usr/bin的连接

??注意: 在这些例子中(除了我直接从一般文件系统中拷贝的代码)我都省略了前导的“/”,所以,注意不要将你的虚拟根环境化的目录树与真正的“/”混淆。

??在下面我将用紫红色标记出虚拟根环境化的文件

??ROOT# cd /www

??ROOT# mkdir -p usr/bin usr/lib lib etc tmp dev webhome

??ROOT# ln -s usr/bin bin

2.3 /tmp是假定的专用perms

??ROOT# chmod 777 tmp

??ROOT# chmod +t tmp

2.4 构造特殊的装置 dev/null

??ROOT# mknod -m 666 dev/null c 1 3

2.5 为你自己的时区设定时区信息(这里使用的是MET)

??ROOT# mkdir -p usr/share/zoneinfo

??ROOT# cp -pi /usr/share/zoneinfo/MET usr/share/zoneinfo/

??ROOT# cd etc

??ROOT# ln -s ../usr/share/zoneinfo/MET localtime

??ROOT# cd ..

2.6 你会发现由于缺乏本地设置,perl和mod-perl多有不便,但你可以通过在实现了虚拟根环境目录树中安装本地文件来克服它:

??ROOT# set |grep LANG

??LANG=en_US

??ROOT# mkdir /www/usr/share/locale

??ROOT# cp -a /usr/share/locale/en_US /www/usr/share/locale/

2.7 现在,在可以提供非常基础的虚拟根环境化的文件系统的共享库

??ROOT# cp -pi /lib/libtermcap.so.2 /lib/ld-linux.so.2 /lib/libc.so.6 lib/

2.8 测试你的目录树(Apachect1后面将要用到“cat”,但也不是必需的)

??ROOT# cp -pi /bin/ls /bin/sh /bin/cat bin/

??ROOT# chroot /www /bin/ls -l /

??lrwxrwxrwx 1 0????0?????

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有