《嵌入式Linux设计与开发》课程设计
更新时间:2023-07-24 18:50:02 阅读量: 实用文档 文档下载
- 嵌入式linux开发流程推荐度:
- 相关推荐
大庆师范学院
《嵌入式LINUX设计与开发》
课程设计报告
题目:简易WEB服务器的搭建
专业班级: 2010级嵌入式选课组(三班) 设 计 者: 王堃(201001041095) 指导老师: 董雷刚 设计时间: 2012-2013-1
1 设计任务及要求
为了使每个学生有一个展示自我的平台,学校在web服务器上开通注册通道,学生可以在网站上注册个人账户,在注册的过程中,可以检测用户名是否已存在。如果存在,则不能注册。用户注册成功后,系统会自动为此用户创建一个系统用户账户,账户名和密码为用户注册时填写的用户名和密码 。
为了使有限的资源能够充分的利用,学校规定为每个用户分配50M的空间。用户可以使用此用户名和密码通过ssh远程连接进行文件的上传和下载,将个人主页上传到用户自己的web目录,以供互联网用户访问。
为了将来系统管理员排错方便,每次建立新用户必须产生一个日志记录。 所有新用户的web空间必须单独放置在一个专用磁盘空间中(即使用Vmware新添加一块磁盘)。
所有新建用户的个人WEB空间每隔一周自动备份,以备不测之需。 在注册的过程中,可以检测用户名,包含用户名的文件有两个,一个为/ect/passwd,一个为/tmp/userpass,首先检测/etc/passwd文件中的用户名,如果用户输入的用户名在/etc/passwd中存在,则不能注册。如果不存在,则检测/tmp/userpass文件中是否已存在,如果存在,则不能注册,如果不存在,则将用户的用户名和密码追加重定向到/tmp/userpass文件中。安排cron任务,每隔10分钟运行增加用户脚本(add.sh),为/tmp/userpass文件中的注册的用户创建系统用户账户,账户名和密码为用户注册的用户名和密码,为了使有限的资源能够充分的利用,学校规定为每个用户分配50MB空间。用户可以使用此用户名和密码通过ssh远程连接进行文件的上传和下载,并将文件上传到用户自己的目录。
2 设计原理及流程图
Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的 Web服务器软件之一。Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修
改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。
所谓的虚拟主机服务就是指将一台机器虚拟成多台WEB服务器。举个例子来说,一家公司想从事提供主机代管服务,它为其它企业提供W EB服务。那么它肯定不是为每一家企业都各准备一台物理上的服务器,而是用一台功能较强大的大型服务器,然后用虚拟主机的形式,提供多个企业的WEB服务,虽然所有的WEB服务就是这台服务器提供的,但是让访问者看起来却是在不同的服务器上获得WEB服务一样。 具体地说,就是,我们可以利用虚拟主机服务将两个不同公司与的主页内容都存放在同一台主机上。而访问者只需输入公司的域名就可以访问到它想得到的主页内容。 用Apache设置虚拟主机服务通常可以采用两种方案:基于IP地址的虚拟主机和基于名字的虚拟主机,本设计采用的是第二种设计方案。
图1
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 (可以连接) 2、安装相关套件 (1)安装
apache
图2
如果不显示则表示没安装进行下边的动作即可安装成功:
图3
(2)安装
php
图4
如果不显示则表示没安装进行下边的动作即可安装成功:
图5
(3) 安装
mysql
图6
如果不显示则表示没安装进行下边的动作即可安装成功:
图7
(4)、设置磁盘配额与挂载:
A、关闭虚拟机,在VMware中添加一块硬盘。点击“VM”—“Settings”—“Add”—“Hard Disk”,根据提示向导添加硬盘
B、启动虚拟机,在linux系统下使用fdisk –l命令查看/dev/sdb是否添加成功,
如果成功,则使用fdisk /dev/sdb 命令来为sdb硬盘创建分区。(n-p-1-回车-回车-p-w)
图9
C、为/dev/sdb2分区创建文件系统:
mkfs.ext3 /dev/sdb2
D、为了使用/dev/sdb1分区,将其挂载到/home目录下面:mount /dev/sdb2
/home
图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)
H、重新启动电脑
图14
I、创建磁盘配额quotacheck -avug
图15
J、开启
quot
图16
K、设置模版配额用户(用于新加用户的配额限制)
图17
(5)、个人空间页面的设计和注册页面的设置 首先设置虚拟主机:
图18
做如下几行的设置: 打开虚拟主机
图19
创建虚拟主机对应ip以及域名,其中 为域名申请页面 为一个个人域名
图20
First:设置注册页面 创建文件夹
图21
进入到该目录先
图22
编辑注册页面
图23
代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="/1999/xhtml">
<head> <meta
http-equiv="Content-Type"
content="text/html;
charset=utf-8" />
<title>User Register</title> </head>
<body style="font-size:28px;">
<form action="./index.php" method="post" name="info">
<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> </tr> <tr>
<td>Password:</td>
<td><input type="password" name="user_pwd" /></td> </tr> <tr>
<td colspan="2" align="center">
<input name="submit" type="submit" value="Submit" /> <input name="reset" type="reset" value="Reset" /> </td> </tr> </table> </form> <?php
$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"){
//返回值为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>
编辑控制的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文件中的用户名相匹配
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:检验用户存在与否
图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
//进行磁盘配额
mkdir /home/$newuser/public_html quota –uvs $newuser //显示用户的空间配额 chmod 755 /home/$newuser done
#使用chpasswd命令,批量为新添加的用户创建密码 chpasswd < /var/www/html/useradd/newUserList #清空newUserList文件
> /var/www/html/useradd/newUserList 为shell文件添加执行权限:
图26
(5)、设置
cron
图27
4 硬件调试与结果分析
测试注册
首先设置测试主机ip与域名的对应
图28
注册: 在浏览器中输入地址http://192.168.92.128/useradd,在用户注册页面输入用户名及密码,若用户名及密码有一项为空,则弹出窗口提示输入的信息不全;若输入root或ethnicity等系统中已存在的用户,会弹出窗口显示用户名不可用;输入系统不存在的用户名wanyan,系统提示用户可以使用,提示3分钟后可用。
图29
图30
Second :ssh的操作
(1)、开启sshd服务(port:22)并且查看
图31
(2)、用户wanyan登录测试
图32
图33
(3)、实现文件上传(上传至/home/newuser/public_html:个人空间部分
)
图34
图35
直接上传即可这时public_html下有主页index.html打开为:
图36
二:备份策略
1、 个人空间的备份 (1)、编辑
shell
图37
(2)、修改权限
图38
(3)、实现每十分钟备份一次
图39
添加多人空间备份只需修改bf.sh即可
2、 建立新用户产生一个日志记录(在用户目录下生成):每次添加一个用户即在用户的主目录下产生一个名为:newUserList的文件来记录此用户的用户名和密码,只有本用户和管理员可以查看,做到备份的效果
(1)、编辑/var/www/html/useradd/newUserList
图40
效果为
正在阅读:
《嵌入式Linux设计与开发》课程设计07-24
优化营商环境调研报告02-25
汇锦国际酒店管理系统操作流程11-30
万兽大王是谁?02-07
2022年贵州民族大学新闻学与传播学综合之新闻学考研复试核心题库04-19
用字母表示数教学反思12-10
晚会主持词(开场白+串词+闭幕词)06-07
地方民生新闻选题策划着重点分析06-06
外来人员管理办法11-13
陈奕迅经典歌词网名10-31
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 设计
- 嵌入式
- 课程
- 开发
- Linux
- 马钢4000 m 3级高炉的主要技术特点及装备水平
- 口腔医生全科必知
- 110(66)kV~500kV油浸式变压器(电抗器)运行规范(附说明)
- 江苏省泗阳县桃州中学、新阳中学2014-2015学年七年级下学期期末联考历史试题及答案
- 企业管理幻灯片终极版OK
- 最新工商银行业务委托书打印模版
- 党章党规知识测试题答案
- 固定收益证券9_投资组合管理技术
- 案例分析:民法总论
- dotNET入门教程_5高级编程
- 《实况足球2010》大师联赛入门级全面心得
- 2014年体艺2+1计划
- 小学语文五年级下册期末综合复习卷4
- 华北电力大学(北京)锅炉原理第一章和第二章
- 钓鲤鱼用做打窝的窝料制作方法有哪些?
- 2015届小说备考策略
- 白蚁防治技术方案
- Windows网络操作系统教学大纲
- 人大会计(非专业)第五版 徐经长,陈曼莉主编,课后习题及答案
- 黑龙江省高二下学期第六次月考(期中)历史试题