利用Apache部署静态网站(二)
本文接着《利用Apache部署静态网站(一)》继续部署,为系统中的每位用户创建一个独立的网站。
httpd服务程序提供的个人用户主页功能可以为每位用户创建一个独立的网站。该功能可以让系统内所有的用户在自己的家目录中管理个人的网站,而且访问起来也非常容易。
第一步:编辑httpd的配置文件,开启个人用户主页功能
在此过程中,要注意网站数据在用户家目录中的保存目录名称是否合适。
[root@localhost ~]# vim /etc/httpd/conf.d/userdir.conf
将17 行"UserDir disabled" 前面加#,24行"#UserDir public_html"前面的#去掉
UserDir public_html表示网站数据在用户家目录中的保存目录名称

第二步:在用户家目录中建立用于保存网站数据的目录及首页面文件。
首先,切换到user用户下,另外,还需要把家目录的权限修改为755,保证其他人也有权限读取里面的内容。
[root@localhost ~]# su - user
上一次登录:六 4月 24 21:36:50 CST 2021pts/1 上
[user@localhost ~]$ mkdir public_html 创建保存网站数据的目录
[user@localhost ~]$ ll
总用量 0
drwxr-xr-x. 2 user user 24 4月 26 10:14 public_html
[user@localhost ~]$ echo "This is user's web" > public_html/index.html 创建保存网站数据的首页面的文件,并写入内容
[user@localhost ~]$ chmod -Rf 755 /home/user 修改目录权限
[user@localhost ~]$
第三步:重新启动httpd服务程序,访问访问网页127.0.0.1/~user。
[root@localhost ~]# systemctl restart httpd
网址格式为“网址/~用户名”(其中的波浪号是必需的,而且网址、波浪号、用户名之间没有空格)
从理论上来讲就可以看到用户的个人网站了。但是结果如下图所示,不能访问网页,出现此结果。

第四步:开启rewrite_module模块
查找资料发现,出现上图情况是由于apache未开启rewrite_module模块,编辑配置文件,做出修改
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
# (删除了不必要的信息,只保留修改了的部分)
# This is the main Apache HTTP server configuration file. It contains the
# configuration directives that give the server its instructions.
# See <URL:http://httpd.apache.org/docs/2.4/> for detailed information.
-----------------------------------------------------------------------------------------------
#
Include conf.modules.d/*.conf
LoadModule rewrite_module modules/mod_rewrite.so
# 由于我未将网页信息存放在默认根目录下,则不需要修改下面的信息(不过,为了方便起见,修改了也没关系,所以,我也做了修改)
# <Directory> blocks below.
#
<Directory />
AllowOverride all
Require all denied
</Directory>
# 由于我将网页信息存放在/home/wwwroot,所以要修改下面的信息
<Directory "/home/wwwroot">
AllowOverride all
# Allow open access:
Require all granted
</Directory>
# Further relax access to the default document root:
<Directory "/var/www/html">
第五步:再次刷新页面,访问127.0.0.1/~user
刷新网页后,结果如下图所示,还是不能访问网页,很明显这次的错误与SELinux的配置有关。

第六步:配置SELinux文件,允许个人用户主页功能
一般情况下,系统并不默认开启个人主页功能,需要自行开启,这也是上图出现问题的原因。使用getsebool命令查询并过滤出所有与HTTP协议相关的安全策略。发现httpd_enable_homedirs --> off是关闭状态。
[user@localhost ~]$ getsebool -a | grep http
httpd_anon_write --> off
httpd_builtin_scripting --> on
httpd_can_check_spam --> off
httpd_can_connect_ftp --> off
httpd_can_connect_ldap --> off
httpd_can_connect_mythtv --> off
httpd_can_connect_zabbix --> off
httpd_can_network_connect --> off
httpd_can_network_connect_cobbler --> off
httpd_can_network_connect_db --> off
httpd_can_network_memcache --> off
httpd_can_network_relay --> off
httpd_can_sendmail --> off
httpd_dbus_avahi --> off
httpd_dbus_sssd --> off
httpd_dontaudit_search_dirs --> off
httpd_enable_cgi --> on
httpd_enable_ftp_server --> off
httpd_enable_homedirs --> off
httpd_execmem --> off
httpd_graceful_shutdown --> on
httpd_manage_ipa --> off
httpd_mod_auth_ntlm_winbind --> off
httpd_mod_auth_pam --> off
httpd_read_user_content --> off
httpd_run_ipa --> off
httpd_run_preupgrade --> off
httpd_run_stickshift --> off
httpd_serve_cobbler_files --> off
httpd_setrlimit --> off
httpd_ssi_exec --> off
httpd_sys_script_anon_write --> off
httpd_tmp_exec --> off
httpd_tty_comm --> off
httpd_unified --> off
httpd_use_cifs --> off
httpd_use_fusefs --> off
httpd_use_gpg --> off
httpd_use_nfs --> off
httpd_use_openstack --> off
httpd_use_sasl --> off
httpd_verify_dns --> off
named_tcp_bind_http_port --> off
prosody_bind_http_port --> off
第七步:开启个人安全策略
个人安全策略开启使用命令setsebool,在开启过程中使用参数-P 可以使得SELinux策略永久生效,且立即生效。
在此之前,要先切换到root用户下
[user@localhost ~]$ su - root
密码:
上一次登录:六 4月 24 21:39:20 CST 2021pts/1 上
[root@localhost ~]# setsebool -P httpd_enable_homedirs=on
重新刷新网页,即可看到下图效果,说明个人用户主页功能创建完善。

一般情况下,我们并不想自己的网页被别人随便访问,因此,我们可以给自己的网页设置身份验证,只有通过验证后才可以访问我们的网页。具体设置方法如下:
第八步:生成密码数据库
密码数据库生成使用htpasswd
[root@localhost ~]# htpasswd -c /etc/httpd/passwd user
New password: 输入验证密码
Re-type new password: 确认验证密码
Adding password for user user 为user用户设置密码成功
第九步:编辑个人用户主页的配置文件
[root@localhost ~]# vim /etc/httpd/conf.d/userdir.conf

第十步:重启httpd服务,刷新页面
刷新后出现如下图所示的界面

当输入错误的账户时,点击确认后,会重新弹出如上图所示的界面

当输入正确的账户时,会进入网页页面,如下面的第二张图片


到这里,Apache的个人主页功能就配置完毕了。(#^.^#)

利用Apache部署静态网站(二)的更多相关文章
- 利用Apache部署静态网站(一)
Apache是世界使用排名第一的Web服务器软件.它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一.它快速.可靠并且可通过简单的API扩充, ...
- jenkins+Git+Gitlab+Ansible实现持续集成自动化部署静态网站(二)
引言:首先我们可以实现一键部署网站,但在实际生产环境网站部署完成之后,我们的开发隔三差五要修改下网站的内容,难道都要我们运维手动执行命令吗?没有一种方法使得开发人员修改完代码自己测试,部署上线呢,那这 ...
- 使用Nginx部署静态网站
这篇文章将介绍如何利用Nginx部署静态网站. 之前写过2篇有关Nginx的文章,一篇是<利用nginx,腾讯云免费证书制作https>,另外一篇是<linux安装nginx> ...
- 《Linux就该这么学》培训笔记_ch10_使用Apache服务部署静态网站
<Linux就该这么学>培训笔记_ch10_使用Apache服务部署静态网站 文章最后会post上书本的笔记照片. 文章主要内容: 网站服务程序 配置服务文件参数 SELinux安全子系统 ...
- Linux下Apache服务部署静态网站------网站服务程序
文章链接(我的CSDN博客): Linux下Apache服务部署静态网站------网站服务程序
- 使用Apache服务部署静态网站2019-7-5
使用Apache服务部署静态网站 第1步:把镜像挂载到系统中 第2步:使用vim文件编辑器创建YUM仓库的配置文件 [root@study ~]# vim /etc/yum.repos.d/abc.r ...
- Jenkins+Git+Gitlab+Ansible实现持续集成自动化部署静态网站(一)--技术流ken
前言 在之前已经写了关于Git,Gitlab以及Ansible的两篇博客<Git+Gitlab+Ansible剧本实现一键部署Nginx--技术流ken>,<Git+Gitlab+A ...
- Jenkins+Git+Gitlab+Ansible实现持续集成自动化部署静态网站(一)
在之前已经写了关于Git,Gitlab以及Ansible的两篇博客<Git+Gitlab+Ansible剧本实现一键部署Nginx--技术流ken>,<Git+Gitlab+Ansi ...
- Jenkins+Git+Gitlab+Ansible实现持续集成自动化部署静态网站(6)
前言 在之前已经写了关于Git,Gitlab以及Ansible的两篇博客<Git+Gitlab+Ansible剧本实现一键部署Nginx–技术流ken>,<Git+Gitlab+An ...
随机推荐
- 免费的图片校正及漂白专业工具PicGrayRemover 0.96,专业去除文档图片黑底麻点杂色,还你一个清晰的文本。
当家长多年,每天都要拍照试卷打印.用App去掉图片黑底就成了每天必备工作.可是,有些图片文件不是来自手机,所以需要一个电脑版的图片漂白工具. 因此,经过几周的努力,图片漂白工具 PicGrayRemo ...
- CSS的定位布局(position)
定位 static(默认值) 没有开启定位 relative 相对定位的性质 包含块(containing block)概念 没有开启定位时包含块就是当前元素最近的祖先块元素 开启绝对定位后的元素包含 ...
- POJ-1459(最大流+EK算法)
Power Network POJ-1459 这题值得思索的就是特殊的输入,如何输入一连串字符.这里采用的方法是根据输入已知的输入格式,事先预定好要接受的数据类型. 这里套用的板子也是最大流的模板,但 ...
- Kafka SASL ACL配置踩坑总结
源起:工程现阶段中间件采用的是kafka.满足了大数据的高吞吐,项目间的解耦合,也增强了工程的容错率与扩展性.但是在安全这一块还有漏洞,kafka集群中,只要网站内的任何人知道kafka集群的ip与t ...
- 记录自己第一次搭建本地fabric框架
写在前,第一次搭建fabric框架,对于小白的我很是艰辛,参考了很多博主的博客才最终完成,在此记录一下搭建过程. 参考的网站 https://blog.csdn.net/smallone233/art ...
- 在onBackPress中实现退出拦截时不生效
现象描述 在快应用中弹出一个弹窗,期望效果是该弹窗在用户确认后再退出,但是使用onbackpress控制确认弹窗后自动退出不生效. 问题分析 快应用引擎实现机制决定了onbackpress不能有耗时的 ...
- 死磕Spring之IoC篇 - @Bean 等注解的实现原理
该系列文章是本人在学习 Spring 的过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring 源码分析 GitHub 地址 进行阅读 Spring 版本:5.1. ...
- 解决新版谷歌浏览器在http请求下无法开启麦克风问题
1.在浏览器地址栏中输入"chrome://flags/#unsafely-treat-insecure-origin-as-secure", 2.将该选项置为Enabled, 3 ...
- Python开发环境从零搭建-02-代码编辑器Sublime
想要从零开始搭建一个Python的开发环境说容易也容易 说难也能难倒一片开发人员,在接下来的一系列视频中,会详细的讲解如何一步步搭建python的开发环境 本文章是搭建环境的第2篇 讲解的内容是:安装 ...
- Python接口测试-保持登录状态
#coding:utf-8import requestsimport json#登录url ="https://passport.cnblogs.com/user/signin"h ...