Ubuntu16.04使用apache创建个人用户主页并添加口令认证

一.安装apache

  1. 创建虚拟机,保持默认的NAT模式。注意:本文使用的是Ubuntu16.04版本,而且没有安装SELinux。
  2. 创建成功后,打开终端,输入命令apt install apache2
  3. 解释:在很多apache安装教程中,会要安装httpd,但是该版本的在输入apt install httpd时,会要求你具体选择安装哪个,所以要明确安装apache2。这也导致配置文件目录与常见博文中的目录存在差异。此外,很多安装指南中还需要关闭防火墙,但由于我安装后就可以成功,所以不涉及防火墙内容。
  4. 验证:打开浏览器(虚拟机的)在地址栏输入http://127.0.0.1,跳转后,页面显示为Apache2 Ubuntu Default Page(如下图),即安装成功。

在这里插入图片描述

二、apache文件和目录简述

2.1 网站数据目录

  1. 该目录的默认地址为/var/www/html,内含有index.html文件。这个文件就是一中所见的Default Page。但是可以通过修改apache的配置文件来改变网站数据目录。

2.2 Apache配置文件

  1. 该版本的Ubuntu安装apache后,配置文件目录在/etc/apache2中。
  2. 进入该目录后,内含11个文件,接下来把和”创建个人用户主页“相关的文件简单解释一下。
  3. /etc/apache2/apache2.conf,这是主配置文件,可以对Apache全局配置进行修改。该文件负责在配置目录中加载许多其他文件。
  4. /etc/apache2/mods-available/,当前系统中可用的模块,尚未启用。
  5. /etc/apache2/mods-enabled/,已经被启用的模块。

在这里插入图片描述

三、创建个人用户主页

3.1 开启个人用户主页功能

  1. 进入/etc/apache2/mods-available/userdir.conf文件进行配置,主要是两个修改:
    • UserDir disabled 注释掉(在该行代码前添加#),表示开启个人用户主页功能。
    • UserDir public_html参数前面的井号(#)去掉。UserDir参数表示网站数据在用户家目录中的保存目录名称,即public_htm目录。

在这里插入图片描述

3.2 建立目录和首页面

  1. 个人用户主页功能的作用是让系统内所有的用户在自己的家目录中管理个人的网站。

  2. 所以需要在用户家目录中建立用于保存网站数据的目录及首页面文件。执行这一步时,不能通过root用户建立,而是要使用该功能的用户。所以先退出root,并进入该用户的家目录。

    su - username
    输入密码
    cd /home/username(用户名)

  3. 进入家目录后,创建public_htm目录和首页面。

    mkdir public_htm
    echo “This is username’s website.” > public_htm/index.html

  4. 创建好后,还要把家目录权限修改为755,保证其他人有权读。

    chmod -Rv 755 /home/username

3.3 开启模块

  1. 进入超级用户。

    su
    输入密码

  2. 因为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

  3. 重启apache服务。

    systemctl restart apache2.service

3.4 测试

  1. 打开浏览器,输入127.0.0.1/~username,如果跳转页面为public_htm目录里的首页面,即成功。如下图。

在这里插入图片描述

四、添加口令认证

4.1 生成密码数据库

  1. htpasswd命令是Apache的Web服务器内置工具,用于创建和更新储存用户名、域和用户基本认证的密码文件。
  2. 使用htpasswd命令生成密码数据库。其中,-c参数表示第一次生成;后面再分别添加密码数据库的存放文件,以及验证要用到的用户名称(该用户不必是系统中已有的本地账户)。我设置用户名为HHH。

    [root@ubuntu~]# htpasswd -c /etc/apache2/passwd HHH
    New password:此处输入用于网页验证的密码
    Re-type new password:再输入一遍进行确认
    Addng password for user HHH

4.2 修改配置文件

  1. 编辑个人用户主页功能的配置文件(userdir.conf),把<Directory></Directory>内的信息修改如下:

    <Directory /home/*/public_html>
    	AllowOverrid all
    	authuserfile "/etc/apache2/passwd"  #刚刚生成出的密码验证文件保存路径
    	authname "My privately website" 	#当用户访问网站时的提示信息
    	authtype basic						#验证方式为密码模式
    	require user HHH					#访问网站时需要验证的用户名称
    </Directory>
    
  2. 特别注意:验证时使用的账户和密码是用 htpasswd 命令生成的专门用于网站登录的账户和密码,而不是系统中的账户和密码。

  3. 效果如下:
    在这里插入图片描述

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值