利用 Apache 为个人用户创建 web 站点及其报错处理
为了使在安装了 Apache 的服务器上拥有本地账号的用户能够架设自己的 web 站点, Apache 提供了两种思路:
-- 使用 mod_userdir 模块: 通过使用 http://IP/~UserName 的 URL 形式访问系统用户 UserName 的站点
-- 使用 mod_rewrite 模块: 通过 http://username.example.com 的 URL 形式访问用户 username 的站点
这里介绍第一种方式:
1. 启用 UserDIr 模块的功能:
vi /etc/httpd/conf/httpd.conf
//注释掉其中的 UserIdr Disable 这一行
2. 创建编辑新的配置文件 userdir.conf
vi /etc/httpd/conf.d/userdir.conf
//添加如下配置:
<IfModule mod_userdir>
# 出于安全考虑, 禁用 root 用户使用个人 web 站点
UserDir disable root
# 配置对每个用户的 web 站点目录
UserDIr public_html
</IfModule>
//设置每个用户 web 站点目录的访问权限
<Directory "/home/*/public_html">
AllowOverride FIleInfo AuthConfig Limit
Options MutiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Order allow,deny
Allow from all
</Directory>
3. 重启 htttpd:
service httpd reload
4.开始创建个人 web 站点(以 user1 为例):
su - user1
mkdir public_html
// 给当前目录设置下权限
chmod 701 .
echo "This is User1's home page" > ./public_html/index.html
exit
然后用浏览器或使用 elinks 命令进行测试:
访问 http://localhost/~user1 #注意这里有个 `~`
我的测试结果为 403 Forbidden, 所以需进一步 troubleshooting:
查看系统日志:
tail /var/log/messages
发现有 SELinux 的报错, 显然是 SELinux 这边阻拦了我们的访问:
根据提示, 我们运行 sealert -l af683818-15c8-4e3d-a706-fb62da50b8ec
运行到此处, 我们有两种解决办法:
1. 把 user1 的 public_html 上下文设为 httpd 可访问的 context, httpd 默认只能访问 httpd_sys_content_t 的上下文,即:
semanage fcontext -a -t httpd_sys_content_t "/home/user1/public_html"
restorecon -Rv "/home/user1/public_html"
这样做的局限性是: 只针对了 user1 的配置, 如果有 user2, user3... 那就得一个一个改, 很麻烦! 我推介第二种办法:
2. 让 SELinux 允许 Apache 对用户主目录的访问策略:
setsebool httpd_enable_homedirs 1
如此执行只是当前生效, 想要永久生效则执行:
setsebool -P httpd_enable_homedirs 1
再次访问, 成功!
转载于:https://www.cnblogs.com/tresser/p/9160800.html
利用 Apache 为个人用户创建 web 站点及其报错处理相关推荐
- PHP动态创建Web站点
在这一篇中我写了一些动态创建Web站点的一些内容,例如黏性表单.发送电子邮件.日期函数等.希望能对大家有所帮助,别忘了好评哦. PHP有4个用于使用外部函数的函数:include().include_ ...
- web服务器创建站点,Dreamweaver创建Web站点的六个步骤流程
对于一个SEO优化人员来说,虽然不要求对于网站建站有多么精通,但是还是必须要懂得一些使用建站工具的基本操作.在Dreamweaver中,Web站点可视为网站中所有文件的集合.我们可以在本地计算机上创建 ...
- ESP32利用SPIFFS(闪存文件系统)创建 Web服务器实现引脚控制
ESP32利用SPIFFS(闪存文件系统)创建 Web服务器实现引脚控制 在本教程中,我们将向您展示如何构建一个web服务器,以提供存储在ESP32文件系统中的HTML和CSS文件.我们将创建分离的H ...
- Eclipse创建的Maven项目报错Could not calculate build plan: Plugin
Eclipse创建的Maven项目报错Could not calculate build plan: Plugin 2018年05月10日 21:59:25 TIMI-Nian 阅读数:5040 标签 ...
- 若依框架客户管理按照创建时间字段排序报错解决方法
问题分析 使用若依自带生成代码客户管理查询,按照创建时间开启排序报错 但是用户管理下排序字段可以正常排序 后来找到原因若依封装了分页和排序,调用startPage()方法会开启分页排序,仔细发现 若依 ...
- Eclipse导入Web项目代码报错解决方案
Eclipse导入Web项目代码报错解决方案 我相信很多人在开发中导入别人的项目时,Web项目导入Eclipse中项目出现报错(左上角有红叉).开发环境:J2EE5+JDK8,IDE使用Eclipse ...
- 【VirtualBox】VirtualBox使用现有的虚拟盘文件(如VHD)创建虚拟机时,报错:打开虚拟硬盘失败,“UUID already exist”的解决方法
###0.问题描述 使用现有的虚拟盘文件(如VHD)创建虚拟机时,报错:打开虚拟硬盘失败,"UUID already exists"的错误. ###1.参考博客 https://w ...
- SAP WM LT42创建TO单据,报错-No entry in Table 329S (NM1 L)-
SAP WM LT42创建TO单据,报错-No entry in Table 329S (NM1 L)- 执行事务代码LT42为group number 4创建TO单据,报错如下: 报错信息:No e ...
- SAP PP CS01使用ECR去创建BOM主数据,报错:System status: ECR is not yet approved.
SAP PP CS01使用ECR去创建BOM主数据,报错:System status: ECR is not yet approved. 1,使用CC31创建好了ECR #500000012717,用 ...
最新文章
- [Design] Flyweight Pattern
- 档案中级职称计算机需要考几个模块,2020年职称申报需要准备哪些档案资料?这些细节必须知道!...
- 正则东西类,简化正则匹配
- 基础三:控制执行流程
- 3d需要学linux_我的脑子—从核磁共振图像到3D打印
- win10安装net3.5不成功出现 0x8024402c_在移动硬盘中安装win10和macos双系统
- Spring事务管理详解_基本原理_事务管理方式
- dsPIC33EP 高速PWM模块初始化设置及应用
- 20165332第六周学习总结
- poj3280 Cheapest Palindrome(回文串区间dp)
- python编程从入门到实战抛出异常_文件和异常——python从编程入门到实践
- word绿豆沙颜色设置_Win7系统下将txt和word背景颜色设置为豆沙绿的方法
- numpy抽样函数 np.random.choice用法详解
- Vicdas实时历史库数据库 v2.3.0.201206
- 数组的降维与升维方法
- 400错误可能的原因
- VS2017MFC发布打包
- 叮咚买菜涨势,撑起生鲜电商门面
- Python的线程12 简易限流器
- 数字图像处理与Python实现
热门文章
- web前端好入门吗?
- 前端、后端、全栈都要学什么?薪资前景如何?
- lua 给userdata设置元表_提高Lua语言开发效率的简单方法
- C++中STL-queue使用方法
- Faster RCNN 学习笔记
- 【带着canvas去流浪(5)】绘制K线图
- sql order by 结合case when then
- 笔记:AIX系统/var/adm/wtmp大文件处理
- glm编译错误问题解决 formal parameter with __declspec(align(#39;16#39;)) won#39;t be aligned...
- Linux 在不重启的情况下识别新挂载的磁盘