1.前期准备
买了服务器,Xshell7连接服务器(略)
前两点都是转别人的,写的简略易懂
- 安装httpd(点我)
- 部署项目到端口(点我)
备注:一个不行就换一个端口,有可能是端口占用
2.部署好的网页如何对某个文件进行权限管理验证?
核心思想如下,需要对三个文件进行配置
网络请求 ==>> httpd.conf配置触发 ==>> 对应文件下的.htaccess配置触发 ==>>寻找.htpasswd账户密码配置
原配置文件可以直接复制到翻译软件,每个配置基本都有注释的
1. httpd.conf;
#切换到它,打开它
cd /etc/httpd/conf
vim httpd.conf
修改配置
我要管控/var/www/html/admin文件,按i进入编辑模式,放入以下代码
<Directory "/var/www/html/admin">
Options Indexes FollowSymLinks
AllowOverride AuthConfig
Require all granted
</Directory>
按Esc退出编辑。Shift+:触发命令模式,输入wq!保存并退出
好了,现在admin文件会优先使用其下的.htaccess配置管理权限
备注:文件权限配置是放在Directory标签里的,标签中带路径
按/触发搜索,输入回车,按n下移
#FollowSymLinks 允许寻找httpd根目录外的文件,因为.htpasswd密码文件存储在外部更安全
##AuthConfig 设置通过读取.htccess文件来验证
#apache新版本弃用了Order关键词配置,采用Require 方式,此处允许任意用户来参与验证
2. .htaccess
#切换到它,vim创建并打开它
cd /var/www/html/admin
vim .htaccess
放入以下代码
AuthName "提示信息"
AuthType Basic
Require valid-user
AuthUserFile /etc/httpd/.htpasswd
按Esc退出编辑。Shift+:触发命令模式,输入wq!保存并退出
现在只差一个用户目录了
备注:#AuthType 验证类型
##Require 哪些用户参与验证,这里所有用户均可验证
#AuthUserFile 用户目录
3. .htpasswd;
生成一个加密的用户信息
Htpasswd -bc .htpasswd 用户名 密码
.htpasswd你想放哪儿都可以,文件路径自己配置到.htpasswd的AuthUserFile
-bc换成-b可以增加用户,相同用户名则覆盖
配置完成,重启httpd
/bin/systemctl stop httpd.service
/bin/systemctl restart httpd.service
4.BUG
- 关闭httpd后重启失败报错。
使用/bin/systemctl status httpd.service
查看详情,如果某行有关键词 Syntax ,表示你的语法报错,后面显示了具体的文件和路径,去相应的位置检查 - 一顿操作后,访问网页没有提示让输入密码,但是网页确实报:你无权访问该网页。之类的提示。缺少插件模块,在httpd.conf顶部加入
LoadModule auth_basic_module modules/mod_auth_basic.so
最后附上apache官网文档