文章目录
- 一.安装apache
- 二、apache文件和目录简述
- 2.1 网站数据目录
- 2.2 Apache配置文件
- 三、创建个人用户主页
- 3.1 开启个人用户主页功能
- 3.2 建立目录和首页面
- 3.3 开启模块
- 3.4 测试
- 四、添加口令认证
- 4.1 生成密码数据库
- 4.2 修改配置文件
一.安装apache
- 创建虚拟机,保持默认的NAT模式。注意:本文使用的是Ubuntu16.04版本,而且没有安装SELinux。
- 创建成功后,打开终端,输入命令
apt install apache2
。 - 解释:在很多apache安装教程中,会要安装httpd,但是该版本的在输入
apt install httpd
时,会要求你具体选择安装哪个,所以要明确安装apache2。这也导致配置文件目录与常见博文中的目录存在差异。此外,很多安装指南中还需要关闭防火墙,但由于我安装后就可以成功,所以不涉及防火墙内容。 - 验证:打开浏览器(虚拟机的)在地址栏输入
http://127.0.0.1
,跳转后,页面显示为Apache2 Ubuntu Default Page(如下图),即安装成功。
二、apache文件和目录简述
2.1 网站数据目录
- 该目录的默认地址为
/var/www/html
,内含有index.html
文件。这个文件就是一中所见的Default Page。但是可以通过修改apache的配置文件来改变网站数据目录。
2.2 Apache配置文件
- 该版本的Ubuntu安装apache后,配置文件目录在
/etc/apache2
中。 - 进入该目录后,内含11个文件,接下来把和”创建个人用户主页“相关的文件简单解释一下。
/etc/apache2/apache2.conf
,这是主配置文件,可以对Apache全局配置进行修改。该文件负责在配置目录中加载许多其他文件。/etc/apache2/mods-available/
,当前系统中可用的模块,尚未启用。/etc/apache2/mods-enabled/
,已经被启用的模块。
三、创建个人用户主页
3.1 开启个人用户主页功能
- 进入
/etc/apache2/mods-available/
对userdir.conf
文件进行配置,主要是两个修改:- 把
UserDir disabled
注释掉(在该行代码前添加#),表示开启个人用户主页功能。 - 把
UserDir public_html
参数前面的井号(#)去掉。UserDir
参数表示网站数据在用户家目录中的保存目录名称,即public_htm
目录。
- 把
3.2 建立目录和首页面
-
个人用户主页功能的作用是让系统内所有的用户在自己的家目录中管理个人的网站。
-
所以需要在用户家目录中建立用于保存网站数据的目录及首页面文件。执行这一步时,不能通过root用户建立,而是要使用该功能的用户。所以先退出root,并进入该用户的家目录。
su - username
输入密码
cd /home/username(用户名) -
进入家目录后,创建
public_htm
目录和首页面。mkdir public_htm
echo “This is username’s website.” > public_htm/index.html -
创建好后,还要把家目录权限修改为755,保证其他人有权读。
chmod -Rv 755 /home/username
3.3 开启模块
-
进入超级用户。
su
输入密码 -
因为mods-available里面是未启用模块,mods-enabled是启用模块,所以要把需要的模块链接到enabled里去,从而开启模块。有些博文操作load就行,但是我经过操作后,建议两个都加。
ln -s /etc/apache2/mods-available/userdir.load /etc/apache2/mods-enabled/userdir.load
ln -s /etc/apache2/mods-available/userdir.conf /etc/apache2/mods-enabled/userdir.conf -
重启apache服务。
systemctl restart apache2.service
3.4 测试
- 打开浏览器,输入
127.0.0.1/~username
,如果跳转页面为public_htm
目录里的首页面,即成功。如下图。
四、添加口令认证
4.1 生成密码数据库
htpasswd
命令是Apache的Web服务器内置工具,用于创建和更新储存用户名、域和用户基本认证的密码文件。- 使用
htpasswd
命令生成密码数据库。其中,-c
参数表示第一次生成;后面再分别添加密码数据库的存放文件,以及验证要用到的用户名称(该用户不必是系统中已有的本地账户)。我设置用户名为HHH。[root@ubuntu~]# htpasswd -c /etc/apache2/passwd HHH
New password:此处输入用于网页验证的密码
Re-type new password:再输入一遍进行确认
Addng password for user HHH
4.2 修改配置文件
-
编辑个人用户主页功能的配置文件(userdir.conf),把
<Directory></Directory>
内的信息修改如下:<Directory /home/*/public_html> AllowOverrid all authuserfile "/etc/apache2/passwd" #刚刚生成出的密码验证文件保存路径 authname "My privately website" #当用户访问网站时的提示信息 authtype basic #验证方式为密码模式 require user HHH #访问网站时需要验证的用户名称 </Directory>
-
特别注意:验证时使用的账户和密码是用 htpasswd 命令生成的专门用于网站登录的账户和密码,而不是系统中的账户和密码。
-
效果如下: