linux下基于用户的虚拟主机的设计与实现简易web服务器的搭建课程设计大学论文文档格式.docx
《linux下基于用户的虚拟主机的设计与实现简易web服务器的搭建课程设计大学论文文档格式.docx》由会员分享,可在线阅读,更多相关《linux下基于用户的虚拟主机的设计与实现简易web服务器的搭建课程设计大学论文文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
4、所有新用户的web空间必须单独放置在一个专用磁盘空间中(即使用Vmware新添加一块磁盘)。
5、所有新建用户的个人WEB空间每隔一周自动备份,以备不测之需。
二、实现过程
1、配置虚拟机的网络
#ifconfigeth0192.168.92.128netmask255.255.255.0up
#vi/resolv(添加:
searchlocaldomain,nameserver192.168.92.2)
#routeadd–net0.0.0.0/0gw192.168.1.1
#ping(可以连接)
2、安装相关套件
(1)安装apache
如果不显示则表示没安装进行下边的动作即可安装成功:
(2)安装php
如果不显示则表示没安装进行下边的动作即可安装成功:
(3)安装mysql
(4)、设置磁盘配额与挂载:
1、关闭虚拟机,在VMware中添加一块硬盘。
点击“VM”—“Settings”—“Add”—“HardDisk”,根据提示向导添加硬盘
2、启动虚拟机,在linux系统下使用fdisk–l命令查看/dev/sdb是否添加成功,
如果成功,则使用fdisk/dev/sdb命令来为sdb硬盘创建分区。
(n-p-1-回车-回车-p-w)
3、为/dev/sdb2分区创建文件系统:
mkfs.ext3/dev/sdb2
4、为了使用/dev/sdb1分区,将其挂载到/home目录下面:
mount/dev/sdb2/home
5、在开机时自动挂载/dev/sdb2,将其记录假如/etc/fstab中。
6、使用mount-oremount/home重新加载/home分区。
7、使用mount查看分区情况。
/dev/sdb1on/hometypeext3(rw,usrquota,grpquota)
8、重新启动电脑
9、创建磁盘配额quotacheck-avug
10、开启quota
11、设置模版配额用户(用于新加用户的配额限制)
(5)、个人空间页面的设计和注册页面的设置!
首先设置虚拟主机:
做如下几行的设置:
打开虚拟主机
创建虚拟主机对应ip以及域名,其中为域名申请页面
为一个个人域名
First:
设置注册页面
创建文件夹
进入到该目录先
编辑注册页面
代码如下:
<
!
DOCTYPEhtmlPUBLIC"
-//W3C//DTDXHTML1.0Transitional//EN"
"
http:
//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
htmlxmlns="
//www.w3.org/1999/xhtml"
head>
metahttp-equiv="
Content-Type"
content="
text/html;
charset=utf-8"
/>
title>
UserRegister<
/title>
/head>
bodystyle="
font-size:
28px;
"
formaction="
./index.php"
method="
post"
name="
info"
tablewidth="
640"
border="
15"
align="
center"
bgcolor="
#3399FF"
<
tr>
tdcolspan="
2"
NewUser
<
/td>
/tr>
<
td>
Name:
inputtype="
txt"
user_name"
Password:
password"
user_pwd"
inputname="
submit"
type="
value="
Submit"
reset"
Reset"
/table>
/form>
?
php
$user=$_POST["
];
$password=$_POST["
if($_POST['
submit'
]){
//检验用户名密码是否为空,若存在空值,弹出警告
if(strlen($user)==0||strlen($password)==0){
echo("
scripttype='
text/javascript'
alert('
UserNameorpasswordcannotbenull!
'
);
/script>
}
//如果用户名密码不为空,继续执行,判断/etc/passwd与newUserList文件中是否存在此用户名
else{
//执行脚本check.sh,并把用户名传值过去
$userCheck="
bash./check.sh$user"
;
$result=exec($userCheck);
if($result=="
000"
){
//返回值为000,表示用户已经存在,弹出警告用户已存在
echo("
UserNameisexist!
Pleaseanotherone'
}
//没有返回值,说明没有重复的用户名,可以注册
$file=fopen("
./newUserList"
'
a+'
//打开newUserList,并把用户名及密码写入中间以“:
”隔开
fwrite($file,$user."
:
.$password."
\n"
fclose($file);
//写入成功后,提示用户名与密码
echo"
Userregistersuccess!
Pleaseremeberyourusername:
.$user;
br/>
andpassword:
.Youcanuseitin3minutes."
ahref='
index.php'
Back<
/a>
}
}
/body>
/html>
编辑控制的shell文件:
User_add.sh控制用户的建立
#!
/bin/bash
#filename:
check
#获取/etc/passwd文件中的用户名,赋予变量user_exist
foruser_existin`cut-f1-d:
/etc/passwd`
do
#将index.php文件中传过来的用户名与系统存在的用户名对比,若存在同名,打印出000
#并退出对比,若没有配的则继续循环
user="
$1"
if["
$user"
=="
$user_exist"
];
then
echo"
exit
fi
done
#若index.Php文件中传过来的用户名与系统用户名没有匹配的,则通过相同的方式与
#当前目录下的newUserList文件中的用户名相匹配
foruser_exist1in`cut-f1-d:
./newUserList`
#echo$user_exist1
$user_exist1"
check.sh:
检验用户存在与否
#name:
user_add.sh
#获取/etc/passwd文件中的用户名,赋予变量newuser
fornewuserin`cut-f1-d:
/var/www/html/useradd/newUserList`
#通过循环的方式添加用户名,使其属于组netusers,并在其用户目录下创建
#文件夹public_html,为用户分配空间,并修改用户目录的权限
useradd-gnetusers$newuser
edquota–ptest–u$newuser//进行磁盘配额
mkdir/home/$newuser/public_html
quota–uvs$newuser//显示用户的空间配额
chmod755/home/$newuser
#使用chpasswd命令,批量为新添加的用户创建密码
chpasswd<
/var/www/html/useradd/newUserList
#清空newUserList文件
为shell文件添加执行权限:
(5)、设置cron
(6)、测试注册
首先设置测试主机ip与域名的对应
注册:
在浏览器中输入地址http:
//192.168.92.128/useradd,在用户注册页面输入用户名及密码,若用户名及密码有一项为空,则弹出窗口提示输入的信息不全;
若输入root或ethnicity等系统中已存在的用户,会弹出窗口显示用户名不可用;
输入系统不存在的用户名wanyan,系统提示用户可以使用,提示3分钟后可用。
Second:
ssh的操作
(1)、开启sshd服务(port:
22)并且查看
(2)、用户wanyan登录测试
(3)、实现文件上传(上传至/home/newuser/public_html:
个人空间部分)
直接上传即可这时public_html下有主页index.html打开为:
三:
备份策略
1、个人空间的备份
(1)、编辑shell
(2)、修改权限
(3)、实现每十分钟备份一次
添加多人空间备份只需修改bf.sh即可
2、建立新用户产生一个日志记录(在用户目录下生成):
每次添加一个用户即在用户的主目录下产生一个名为:
newUserList的文件来记录此用户的用户名和密码,只有本用户和管理员可以查看,做到备份的效果
(1)、编辑/var/www/html/useradd/newUserList
效果为
(2)、设置自动运行
最后完成用户添加的记录
最后设置开机自动开启mysqld和httpd
四设计总结
课程设计不仅是对已学知识的检验,更是对学生动手能力以及综合能力的锻炼。
在我们小组组长的带领下,以及通过全小组同学的共同努力,我们完成了课程设计的任务。
在此期间,我们温故了课堂上学过的知识,还有查找各种资料,对RC加密算法有了进一步的了解和掌握。
平常学习的知识点,感觉已掌握,但是通过这次课程设计对自己学过的知识的检阅,发现很多东西并不是想象的那么简单,做起来的时候还是会因为粗心大意导致课程设计中出现很多小的错误。
课程设计培养了自己的动手能力,对以前学习的知识起到了好的巩固作用,并且对以后课程学习打下了坚实的基础作用。
通过整个小组成员的努力也学会了团结与合作,全小组的同学个个干劲十足,很好的完成了自己的任务,成功地搭建出了WEB服务器。
感谢老师为我们提供了这次课程设计的机会。
通过此次课程设计巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计我也明白了很多事理。
它使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
参看文献:
《循序渐进linux-基础知识,服务器搭建,系统管理,性能优化,群集应用》