hcb 发表于 2008-2-1 10:28:13

一句代码解决难题:让ROS变成你量身定做的WEB服务器

【引子】
近来,总有人在问,如何用ROS来做一台简单的WEB服务器,我也提供了一些思路,但都太过于复杂,难以实用。

刚才,头脑里突然灵光一闪:把HTTP目录链接到FTP目录下,不就可以很方便的修改了吗?

【试验】
马上行动测试一下:
1,关闭ROS,我的是学习用的,可一说关就关,否则就要找一个空闲时间了。
2,关闭另一台Linux机,同样是学习用的,没什么顾虑。
3,打开机箱,把ROS的硬盘拔下来挂在Linux机的IDE3上,即第二硬盘控制器的主硬盘上,当然挂其他几个位置也没关系的。
4,启动Linux,我的是RHEL AS4, 其他的版本也没什么关系,只要能支持ETX3文件系统就可以了,目前常见的LINUX基本上都没问题。
5,以root登陆,挂载ROS系统,用如下命令:
mount /dev/hdc1 /mnt
说明:成功后,进入/mnt目录就是ROS的东西了
       /dev/hdc1,其中的hd表示IDE硬盘,c表示第3位置上的硬盘(a:1,b:2,c:3,d:4),1是指该硬盘上的第一个分区,我的ROS只有一个分区,所以是1。
       /mnt 是系统上的一个空目录,当然你也可以用其他空目录
6,进入ROS文件系统,
cd /mnt
由于ROS是和个性化的系统,不知道有没有链接命令,先查找一下:
find . -name ln -print
显示 /bin/ln
找到了,有戏。然后在启动的时候加上一条链接命令:
[ ! -f /var/pckg/http ] && ln -s /home/web /var/pckg/http
用vi来编辑启动文件:
vi /mnt/etc/rc.d/rc.sysinit
移到最后,在exit 之前加入下面的一行:
[ ! -f /var/pckg/http ] && ln -s /home/web /var/pckg/http
然后保存文件
说明:/var/pckg目录是ROS的ftp目录,/home/web是ROS的http目录
7,卸载ROS文件系统,再关闭Linux
cd; umount /mnt; halt
8,把ROS硬盘重新装回去,开机
9,在Windows上打开winbox-->files,激动人心的画面就出来了,多了http目录,该目录下的文件就是ROS的WEB文件,修改了该目录下的文件,就是修改了WEB文件。
接下来的就简单了,WEB页面自己想怎么改就怎么改了,主页文件是index2.html。

【关键】
说了那么多,其实关键就在一点:ln -s /home/web /var/pckg/http

【用途】
ROS上的WEB,只能做一些静态页面,页面更新需要手动完成,适合于做广告页面,首次转向的页面,DNS错误的转向页面等要求不高的不想另建一个web服务器的应用.
另外,提供动态页面的思路,供有兴趣的参考:可以用CGI实现, CGI目录也可以用ln -s的方式放在FTP上以便更新,CGI程序用C语言在别的Linux上编写,编译后FTP更新。

【警告】
该方法需要有Linux/Unix的基本知识,不要随意改变ROS的其他系统文件。
我在ROS 2.7.27上测试成功,原则上其他版本也没问题,但没测试过,不肯定。
对于测试不成功以及产生的其他问题,本人不负责任。
由于改动了ROS系统,因此存在风险,请慎用。
【图片】
部分截图看附件

seboren 发表于 2008-2-1 10:43:45

诶,不懂LINUX

ee007 发表于 2008-2-1 13:41:25

UPUP

LUYOKY 发表于 2008-2-1 15:12:46

不懂linux,我是用IE2改index2.html文件.转到ftp目录.
<HTML>
<HEAD>
<title>宽带说明</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</HEAD>
<frameset rows="*" frameborder="NO" border="0" framespacing="0">
<frame src="ftp://ftpweb@192.168.0.1/web/INDEX.htm" name="topFrame" frameborder="0">
</frameset>
<NOFRAMES>
<BODY>
</BODY>
</NOFRAMES>
</HTML>
在ftp里做web服务器.都几方便.

hcb 发表于 2008-2-1 16:58:50

楼上你,你贴的是一个html文档,和web服务器不要混为一谈,你只不过是调用了ftp的数据而已,访问这个ftp是需要密码的,ftp和http也不要混为一谈,也是不能相互替代的

smxmxm 发表于 2008-2-2 00:54:59

hcb,太牛了!!!好,解决了我的一大问题。
可是我没有LINUX系统啊,能不能想办法,做一个批处理,让我在ROS主机上运行一下,就可以改变FTP目录为HTTP目录啊?
谢谢。我要求的是不是太多了,呵呵。

smxmxm 发表于 2008-2-2 00:55:48

另外,四楼兄弟的方法可以实现修改首页吗?

LUYOKY 发表于 2008-2-3 00:05:07

可以啊!配全kuwin的强推首页,超好用.
访问http://192.168.0.1,就是访问index2.html文件.
我改了index2.html,让它转到ftp里的index.htm文件.
网站有什么改动,就改ftp里的index.htm文件就可以了.

smxmxm 发表于 2008-2-3 00:50:06

luyoky:你把文件index2.html.转到ftp目录.
你用什么软件把index2.html传到ROS的WEB目录的。要知道那可是LINUX文件系统啊。你的客户机是WINDOWS,ROS是LINUX,你怎么传的?

LUYOKY 发表于 2008-2-3 03:42:14

index2.html还在原文件夹,我是改了index2.html文件里的内容.让它转到web目录的index.htm.
改index2.html方法:
1.把ros硬盘拆下来;
2.插在xp的机上,让xp启动;
3.用IE2将/home/web/index2.html和/home/web/index2.html.org两个文件删除.再上传改好的index2.html
记住要注意文件名字母的大小写.

LUYOKY 发表于 2008-2-3 03:43:17

这是IE2

wthmix 发表于 2008-2-3 05:53:10

ie2这么牛的软件啊~

smxmxm 发表于 2008-2-5 00:26:03

luyoky:我明白你的意思了,你是修改ROS原来的INDEX2.HTML,使它转向你FTP里的INDEX.HTML。
不过,<frame src="ftp://ftpweb@192.168.0.1/web/INDEX.htm">这里是转向的你的FTP地址。这个FTP好象是建在192.168.0.1这个机器上的。那你的ROS又是建在哪个IP上的呀?你的ROS不是192.168.0.1?当然我知道他可以不是192.168.0.1。:)如果它们是同一台电脑的话,就更不可能了。
不过,我还是非常高兴的要感谢你,你发的IE2可是太有用了,有了这个,就可以不需LINUX也能修改rc.sysinit,结合hcb"一句代码解决难题:让ROS变成你量身定做的WEB服务器"不就可以弄成功了吗?你真是太好了。THANK YOU!

leonmb 发表于 2008-3-14 22:15:55

在些想向楼主请教一个问题,就是如何实现你说的“首次转向”?
就是客户端第一次打开IE时,不管开什么站都转到指定的网页上~~

tpy372 发表于 2008-3-15 01:18:16

感谢楼主和四楼的兄弟......:victory:
页: [1] 2 3
查看完整版本: 一句代码解决难题:让ROS变成你量身定做的WEB服务器