《嵌入式Linux设计与开发》课程设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
所谓的虚拟主机服务就是指将一台机器虚拟成多台 WEB 服务器。举个例子 来说,一家公司想从事提供主机代管服务,它为其它企业提供 W EB 服务。那么 它肯定不是为每一家企业都各准备一台物理上的服务器,而是用一台功能较强大 的大型服务器,然后用虚拟主机的形式,提供多个企业的 WEB 服务,虽然所有的 WEB 服务就是这台服务器提供的,但是让访问者看起来却是在不同的服务器上获 得 WEB 服务一样。 具体地说,就是,我们可以利用虚拟主机服务将两个不同公 司 www.company1.com 与 www.company2.com 的主页内容都存放在同一台主机上。 而访问者只需输入公司的域名就可以访问到它想得到的主页内容。 用 Apache 设置虚拟主机服务通常可以采用两种方案:基于 IP 地址的虚拟主机和基于名字 的虚拟主机,本设计采用的是第二种设计方案。
为了使有限的资源能够充分的利用,学校规定为每个用户分配 50M 的空间。 用户可以使用此用户名和密码通过 ssh 远程连接进行文件的上传和下载,将个人 主页上传到用户自己的 web 目录,以供互联网用户访问。
为了将来系统管理员排错方便,每次建立新用户必须产生一个日志记录。
所有新用户的 web 空间必须单独放置在一个专用磁盘空间中(即使用 Vmware 新添加一块磁盘)。
-8-
<head>
<meta
http-equiv="Content-Type"
charset=utf-8" />
content="text/html;
<title>User Register</title>
</head>
<body style="font-size:28px;">
<form action="./index.php" method="post" name="info">
图2
如果不显示则表示没安装进行下边的动作即可安装成功:
图3
(2)安装 php
图4
-3-
如果不显示则表示没安装进行下边的动作即可安装成功:
图5
(3) 安装 mysql
图6
如果不显示则表示没安装进行下边的动作即可安装成功:
图7
(4)、设置磁盘配额与挂载: A、关闭虚拟机,在 VMware 中添加一块硬盘。点击“VM”—“Settings” —“Add”—“Hard Disk”,根据提示向导添加硬盘 B、启动虚拟机,在 linux 系统下使用 fdisk –l 命令查看/dev/sdb 是否 添加成功,
-4-
图8
如果成功,则使用 fdisk /dev/sdb 命令来为 sdb 硬盘创建分区。(n-p-1回车-回车-p-w)
图9
C、为/dev/sdb2 分区创建文件系统:mkfs.ext3 /dev/sdb2
-5-
图 10
D、为了使用/dev/sdb1 分区,将其挂载到/home 目录下面:mount /dev/sdb2 /home
- 10 -
//返回值为 000,表示用户已经存在,弹出警告用户已存在 echo("<script type='text/javascript'> alert('UserName is
exist!Please another one');</script>"); }
else{ //没有返回值,说明没有重复的用户名,可以注册 $file=fopen("./newUserList",'a+'); //打开 newUserList,并把用户名及密码写入中间以“:”隔开 fwrite($file,$user.":".$password."\n"); fclose($file); //写入成功后,提示用户名与密码 echo "User register success!Please remeber your username:".$user; echo "<br />"; echo "and password:".$password.".You can use it in 3 minutes."; echo "<br />"; echo "<a href='index.php'>Back</a>"; } } } ?> </body> </html>
图 25
代码如下: #!/bin/bash #name:user_add.sh #获取/etc/passwd 文件中的用户名,赋予变量 newuser for newuser in `cut -f 1 -d : /var/www/html/useradd/newUserList` do #通过循环的方式添加用户名,使其属于组 netusers,并在其用户目录下 创建 #文件夹 public_html,为用户分配空间,并修改用户目录的权限 useradd -g netusers $newuser edquota –p test –u $newuser
大庆师范学院
《嵌入式 LINUX 设计与开发》 课程设计报告
题目:简易 WEB 服务器的搭建
专业班级: 2010 级嵌入式选课组(三班)
设 计 者: 王堃(201001041095)
指导老师:
董雷刚
设计时间:
2012-2013-1
1 设计任务及要求
为了使每个学生有一个展示自我的平台,学校在 web 服务器上开通注册通 道,学生可以在网站上注册个人账户,在注册的过程中,可以检测用户名是否已 存在。如果存在,则不能注册。用户注册成功后,系统会自动为此用户创建一个 系统用户账户,账户名和密码为用户注册时填写的用户名和密码 。
</tr>
<tr>
<td>Password:</td>
<td><input type="password" name="user_pwd" /></td>
</tr>
<tr>
-9-Байду номын сангаас
<td colspan="2" align="center"> <input name="submit" type="submit" value="Submit" /> <input name="reset" type="reset" value="Reset" /> </td> </tr> </table> </form> <?php
所有新建用户的个人 WEB 空间每隔一周自动备份,以备不测之需。
在注册的过程中,可以检测用户名,包含用户名的文件有两个,一个为 /ect/passwd,一个为/tmp/userpass,首先检测/etc/passwd 文件中的用户名, 如果用户输入的用户名在/etc/passwd 中存在,则不能注册。如果不存在,则检 测/tmp/userpass 文件中是否已存在,如果存在,则不能注册,如果不存在,则 将用户的用户名和密码追加重定向到/tmp/userpass 文件中。安排 cron 任务, 每隔 10 分钟运行增加用户脚本(add.sh),为/tmp/userpass 文件中的注册的用 户创建系统用户账户,账户名和密码为用户注册的用户名和密码,为了使有限的 资源能够充分的利用,学校规定为每个用户分配 50MB 空间。用户可以使用此用 户名和密码通过 ssh 远程连接进行文件的上传和下载,并将文件上传到用户自己 的目录。
$user=$_POST["user_name"]; $password=$_POST["user_pwd"]; if($_POST['submit']){ //检验用户名密码是否为空,若存在空值,弹出警告 if(strlen($user)==0 || strlen($password)==0){ echo("<script type='text/javascript'> alert('UserName or password can not be null!');</script>"); } //如果用户名密码不为空,继续执行,判断/etc/passwd 与 newUserList 文件中是否存在此用户名 else{ //执行脚本 check.sh,并把用户名传值过去 $userCheck = "bash ./check.sh $user"; $result = exec($userCheck); if($result=="000"){
- 11 -
编辑控制的 shell 文件: User_add.sh 控制用户的建立
图 24
代码如下: #!/bin/bash #filename:check #获取/etc/passwd 文件中的用户名,赋予变量 user_exist for user_exist in `cut -f 1 -d : /etc/passwd` do #将 index.php 文件中传过来的用户名与系统存在的用户名对比,若存在同 名,打印出 000 #并退出对比,若没有配的则继续循环 user="$1" if [ "$user" == "$user_exist" ];then echo "000" exit fi done #若 index.Php 文件中传过来的用户名与系统用户名没有匹配的,则通过相 同的方式与 #当前目录下的 newUserList 文件中的用户名相匹配
- 12 -
for user_exist1 in `cut -f 1 -d : ./newUserList` do #echo $user_exist1 user="$1" if [ "$user" == "$user_exist1" ];then echo "000" exit fi done check.sh:检验用户存在与否
图 11
E、在开机时自动挂载/dev/sdb2,将其记录假如/etc/fstab 中。
图 12
F、使用 mount -o remount /home 重新加载/home 分区。
图 13
G 、 使 用 mount 查 看 分 区 情 况 。 /dev/sdb1 on /home type ext3 (rw,usrquota,grpquota)
图1
-2-
3 程序设计
1、配置虚拟机的网络 #ifconfig eth0 192.168.92.128 netmask 255.255.255.0 up #vi /resolv(添加:search localdomain,nameserver 192.168.92.2) #route add –net 0.0.0.0/0 gw 192.168.1.1 #ping www.baidu.com(可以连接) 2、安装相关套件 (1)安装 apache
H、重新启动电脑
图 14
I、创建磁盘配额 quotacheck -avug
-6-
J、开启 quot
图 15
图 16
K、设置模版配额用户(用于新加用户的配额限制)
图 17
(5)、个人空间页面的设计和注册页面的设置 首先设置虚拟主机:
做如下几行的设置: 打开虚拟主机
图 18
图 19
-7-
创建虚拟主机对应 ip 以及域名,其中 www.shenqing.com 为域名申请页面 www.wethnicity.com 为一个个人域名
2 设计原理及流程图
Apache 源于 NCSAhttpd 服务器,经过多次修改,成为世界上最流行的 Web 服务器软件之一。Apache 取自“a patchy server”的读音,意思是充满补丁的 服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修
-1-
改原来的缺陷。Apache 的特点是简单、速度快、性能稳定,并可做代理服务器 来使用。
<table width="640" border="15" align="center" bgcolor="#3399FF">
<tr>
<td colspan="2" align="center">
New User
</td>
</tr>
<tr>
<td>Name:</td>
<td><input type="txt" name="user_name" /></td>
First:设置注册页面 创建文件夹
进入到该目录先
图 20 图 21
编辑注册页面
图 22
图 23
代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">
为了使有限的资源能够充分的利用,学校规定为每个用户分配 50M 的空间。 用户可以使用此用户名和密码通过 ssh 远程连接进行文件的上传和下载,将个人 主页上传到用户自己的 web 目录,以供互联网用户访问。
为了将来系统管理员排错方便,每次建立新用户必须产生一个日志记录。
所有新用户的 web 空间必须单独放置在一个专用磁盘空间中(即使用 Vmware 新添加一块磁盘)。
-8-
<head>
<meta
http-equiv="Content-Type"
charset=utf-8" />
content="text/html;
<title>User Register</title>
</head>
<body style="font-size:28px;">
<form action="./index.php" method="post" name="info">
图2
如果不显示则表示没安装进行下边的动作即可安装成功:
图3
(2)安装 php
图4
-3-
如果不显示则表示没安装进行下边的动作即可安装成功:
图5
(3) 安装 mysql
图6
如果不显示则表示没安装进行下边的动作即可安装成功:
图7
(4)、设置磁盘配额与挂载: A、关闭虚拟机,在 VMware 中添加一块硬盘。点击“VM”—“Settings” —“Add”—“Hard Disk”,根据提示向导添加硬盘 B、启动虚拟机,在 linux 系统下使用 fdisk –l 命令查看/dev/sdb 是否 添加成功,
-4-
图8
如果成功,则使用 fdisk /dev/sdb 命令来为 sdb 硬盘创建分区。(n-p-1回车-回车-p-w)
图9
C、为/dev/sdb2 分区创建文件系统:mkfs.ext3 /dev/sdb2
-5-
图 10
D、为了使用/dev/sdb1 分区,将其挂载到/home 目录下面:mount /dev/sdb2 /home
- 10 -
//返回值为 000,表示用户已经存在,弹出警告用户已存在 echo("<script type='text/javascript'> alert('UserName is
exist!Please another one');</script>"); }
else{ //没有返回值,说明没有重复的用户名,可以注册 $file=fopen("./newUserList",'a+'); //打开 newUserList,并把用户名及密码写入中间以“:”隔开 fwrite($file,$user.":".$password."\n"); fclose($file); //写入成功后,提示用户名与密码 echo "User register success!Please remeber your username:".$user; echo "<br />"; echo "and password:".$password.".You can use it in 3 minutes."; echo "<br />"; echo "<a href='index.php'>Back</a>"; } } } ?> </body> </html>
图 25
代码如下: #!/bin/bash #name:user_add.sh #获取/etc/passwd 文件中的用户名,赋予变量 newuser for newuser in `cut -f 1 -d : /var/www/html/useradd/newUserList` do #通过循环的方式添加用户名,使其属于组 netusers,并在其用户目录下 创建 #文件夹 public_html,为用户分配空间,并修改用户目录的权限 useradd -g netusers $newuser edquota –p test –u $newuser
大庆师范学院
《嵌入式 LINUX 设计与开发》 课程设计报告
题目:简易 WEB 服务器的搭建
专业班级: 2010 级嵌入式选课组(三班)
设 计 者: 王堃(201001041095)
指导老师:
董雷刚
设计时间:
2012-2013-1
1 设计任务及要求
为了使每个学生有一个展示自我的平台,学校在 web 服务器上开通注册通 道,学生可以在网站上注册个人账户,在注册的过程中,可以检测用户名是否已 存在。如果存在,则不能注册。用户注册成功后,系统会自动为此用户创建一个 系统用户账户,账户名和密码为用户注册时填写的用户名和密码 。
</tr>
<tr>
<td>Password:</td>
<td><input type="password" name="user_pwd" /></td>
</tr>
<tr>
-9-Байду номын сангаас
<td colspan="2" align="center"> <input name="submit" type="submit" value="Submit" /> <input name="reset" type="reset" value="Reset" /> </td> </tr> </table> </form> <?php
所有新建用户的个人 WEB 空间每隔一周自动备份,以备不测之需。
在注册的过程中,可以检测用户名,包含用户名的文件有两个,一个为 /ect/passwd,一个为/tmp/userpass,首先检测/etc/passwd 文件中的用户名, 如果用户输入的用户名在/etc/passwd 中存在,则不能注册。如果不存在,则检 测/tmp/userpass 文件中是否已存在,如果存在,则不能注册,如果不存在,则 将用户的用户名和密码追加重定向到/tmp/userpass 文件中。安排 cron 任务, 每隔 10 分钟运行增加用户脚本(add.sh),为/tmp/userpass 文件中的注册的用 户创建系统用户账户,账户名和密码为用户注册的用户名和密码,为了使有限的 资源能够充分的利用,学校规定为每个用户分配 50MB 空间。用户可以使用此用 户名和密码通过 ssh 远程连接进行文件的上传和下载,并将文件上传到用户自己 的目录。
$user=$_POST["user_name"]; $password=$_POST["user_pwd"]; if($_POST['submit']){ //检验用户名密码是否为空,若存在空值,弹出警告 if(strlen($user)==0 || strlen($password)==0){ echo("<script type='text/javascript'> alert('UserName or password can not be null!');</script>"); } //如果用户名密码不为空,继续执行,判断/etc/passwd 与 newUserList 文件中是否存在此用户名 else{ //执行脚本 check.sh,并把用户名传值过去 $userCheck = "bash ./check.sh $user"; $result = exec($userCheck); if($result=="000"){
- 11 -
编辑控制的 shell 文件: User_add.sh 控制用户的建立
图 24
代码如下: #!/bin/bash #filename:check #获取/etc/passwd 文件中的用户名,赋予变量 user_exist for user_exist in `cut -f 1 -d : /etc/passwd` do #将 index.php 文件中传过来的用户名与系统存在的用户名对比,若存在同 名,打印出 000 #并退出对比,若没有配的则继续循环 user="$1" if [ "$user" == "$user_exist" ];then echo "000" exit fi done #若 index.Php 文件中传过来的用户名与系统用户名没有匹配的,则通过相 同的方式与 #当前目录下的 newUserList 文件中的用户名相匹配
- 12 -
for user_exist1 in `cut -f 1 -d : ./newUserList` do #echo $user_exist1 user="$1" if [ "$user" == "$user_exist1" ];then echo "000" exit fi done check.sh:检验用户存在与否
图 11
E、在开机时自动挂载/dev/sdb2,将其记录假如/etc/fstab 中。
图 12
F、使用 mount -o remount /home 重新加载/home 分区。
图 13
G 、 使 用 mount 查 看 分 区 情 况 。 /dev/sdb1 on /home type ext3 (rw,usrquota,grpquota)
图1
-2-
3 程序设计
1、配置虚拟机的网络 #ifconfig eth0 192.168.92.128 netmask 255.255.255.0 up #vi /resolv(添加:search localdomain,nameserver 192.168.92.2) #route add –net 0.0.0.0/0 gw 192.168.1.1 #ping www.baidu.com(可以连接) 2、安装相关套件 (1)安装 apache
H、重新启动电脑
图 14
I、创建磁盘配额 quotacheck -avug
-6-
J、开启 quot
图 15
图 16
K、设置模版配额用户(用于新加用户的配额限制)
图 17
(5)、个人空间页面的设计和注册页面的设置 首先设置虚拟主机:
做如下几行的设置: 打开虚拟主机
图 18
图 19
-7-
创建虚拟主机对应 ip 以及域名,其中 www.shenqing.com 为域名申请页面 www.wethnicity.com 为一个个人域名
2 设计原理及流程图
Apache 源于 NCSAhttpd 服务器,经过多次修改,成为世界上最流行的 Web 服务器软件之一。Apache 取自“a patchy server”的读音,意思是充满补丁的 服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修
-1-
改原来的缺陷。Apache 的特点是简单、速度快、性能稳定,并可做代理服务器 来使用。
<table width="640" border="15" align="center" bgcolor="#3399FF">
<tr>
<td colspan="2" align="center">
New User
</td>
</tr>
<tr>
<td>Name:</td>
<td><input type="txt" name="user_name" /></td>
First:设置注册页面 创建文件夹
进入到该目录先
图 20 图 21
编辑注册页面
图 22
图 23
代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">