练习实践 web中间件httpd-id:2-编译安装-web登录认证设置

参考来源:
用编译的方式安装apache httpd服务

编译安装过程记录

1.下载准备环境:

bash 复制代码
yum -y install gcc gcc-c++ make pcre pcre-devel gd-devel openssl-devel  zlib zlib-devel  apr-*

根据之前的操作文档和实际安装经验,提前将所需依赖项安装好,避免出现报错,需要停下检查后,还需要重新执行,减少时间花费;

2.使用wget下载应用软件压缩包,使用tar工具解压,进入httpd目录中

bash 复制代码
[root@centos7 www]# wget https://mirrors.aliyun.com/apache/httpd/httpd-2.4.62.tar.bz2
--2024-07-24 17:28:11--  https://mirrors.aliyun.com/apache/httpd/httpd-2.4.62.tar.bz2
正在解析主机 mirrors.aliyun.com (mirrors.aliyun.com)... 182.49.63.193, 182.49.63.186, 182.49.63.187, ...
正在连接 mirrors.aliyun.com (mirrors.aliyun.com)|182.49.63.193|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:7521661 (7.2M) [application/x-bzip]
正在保存至: "httpd-2.4.62.tar.bz2"

100%[==========================================>] 7,521,661    531KB/s 用时 14s    

2024-07-24 17:28:25 (540 KB/s) - 已保存 "httpd-2.4.62.tar.bz2" [7521661/7521661])

[root@centos7 httpd-2.4.62]# tar xf httpd-2.4.62.tar.bz2
[root@centos7 httpd-2.4.62]# cd httpd-2.4.62
[root@centos7 httpd-2.4.62]# ls
ABOUT_APACHE     CHANGES          httpd.dep       libhttpd.mak    README.cmake
acinclude.m4     changes-entries  httpd.dsp       LICENSE         README.platforms
Apache-apr2.dsw  CMakeLists.txt   httpd.mak       Makefile.in     ROADMAP
Apache.dsw       config.layout    httpd.spec      Makefile.win    server
apache_probes.d  config.log       include         modules         srclib
ap.d             config.nice      INSTALL         NOTICE          support
build            configure        InstallBin.dsp  NWGNUmakefile   test
BuildAll.dsp     configure.in     LAYOUT          os              VERSIONING
BuildBin.dsp     docs             libhttpd.dep    README
buildconf        emacs-style      libhttpd.dsp    README.CHANGES

配置软件模块

./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi

bash 复制代码
./configure \
--prefix=/usr/local/httpd \		#指定将 httpd 服务程序的安装路径
--enable-so \					#启用动态加载模块支持,使 httpd 具备进一步扩展功能的能力
--enable-rewrite \				#启用网页地址重写功能,用于网站优化、防盗链及目录迁移维护
--enable-charset-lite \			#启动字符集支持,以便支持使用各种字符集编码的页面
--enable-cgi					#启用CGI(通用网关接口)脚本程序支持,便于网站的外部扩展应用访问能力

编译安装

bash 复制代码
make				#make -j 2  表示开2核同时进行编译
make install

------编译安装完成

web登录认证设置

web登录认证的场景介绍

用户认证的用途:当一个网站被访问的时候,需要输入用户名和密码才能进入,而不是直接登录网站,这种认证的形式可以针对网站的一个目录进行,也可以针对单个的访问文件进行

优化配置文件路径,并把httpd服务的可执行程序文件放入路径环境变量的目录中便于系统识别

bash 复制代码
ln -s /usr/local/httpd/conf/httpd.conf /etc/
ln -s /usr/local/httpd/bin/* /usr/local/bin/

检查配置文件语法

bash 复制代码
[root@centos7 httpd-2.4.62]# httpd -t
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::7f9:9a7d:e440:9c3b. Set the 'ServerName' directive globally to suppress this message
Syntax OK

解决方法,在[root@centos7 local]# vim /usr/local/httpd/conf/httpd.conf的205行,添加

bash 复制代码
ServerName localhost:80

配置文件编辑

将默认httpd-vhosts.conf配置文件全部删除,配置文件路径

bash 复制代码
[root@centos7 local]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf

小技巧tips:vim工具中可以使用高效删除文本全部内容

bash 复制代码
在 Vim 中,清空整个文件内容可以使用以下命令:
打开文件后,按 Esc 确保处于普通模式。
输入 gg 跳转到文件的第一行。
输入 dG 删除从当前行到文件末尾的所有内容

将下面内容写入配置文件中,

bash 复制代码
<VirtualHost *:80>
    DocumentRoot "/www/abc" ##为将要访问的页面的目录         
<Directory /www/abc>
    AllowOverride AuthConfig #允许对/www/abc 目录下的内容进行用户认证
    AuthName "xiaoyue"     ##指定存放的用户                         
    AuthType Basic
    AuthUserFile /www/.htpasswd  # #指定存放用户名和密码的文件
    require valid-user
</Directory>
</VirtualHost>

配置虚拟主机访问权限

bash 复制代码
207 #
208 # Deny access to the entirety of your server's filesystem. You must
209 # explicitly permit access to web content directories in other 
210 # <Directory> blocks below.
211 #
212 <Directory />
213     AllowOverride none
214 #   Require all denied
215     Require all granted
216 </Directory>

vhost功能启用

编辑Apache的主配置文件,打开虚拟主机配置,在vim工具中,通过:/httpd-vhost 查询关键词,将vhost功能启用

bash 复制代码
[root@centos7 local]# vim /usr/local/httpd/conf/httpd.conf 
487 # Virtual hosts
488 Include conf/extra/httpd-vhosts.conf

htpasswd生成密码文件

bash 复制代码
[root@centos7 local]# htpasswd -c /www/.htpasswd xiaoyue
New password: 
Re-type new password: 
Adding password for user xiaoyue
[root@centos7 local]# cat /www/.htpasswd 
xiaoyue:$apr1$ZhDxzvAD$oEKDCz98M4Fx7RE9W93Ar.

检查配置参数并尝试启动

bash 复制代码
[root@centos7 bin]# apachectl graceful
httpd not running, trying to start
[root@centos7 bin]# apachectl start
httpd (pid 23473) already running

验证效果,出现输入用户名和密码页面即表示成功

通过elinks工具验证

bash 复制代码
[root@centos7 bin]# elinks http://127.0.0.1/www/abc

通过浏览器工具验证

快速回顾:

编译安装:从哪些渠道能够得到软件包,编译安装httpd如何实现?

httpd认证设置:配置文件中修改的内容,配置用户认证的htpasswd工具使用,验证效果的命令行浏览器elinks;

--END--

相关推荐
小远yyds14 分钟前
前端Web用户 token 持久化
开发语言·前端·javascript·vue.js
吕彬-前端1 小时前
使用vite+react+ts+Ant Design开发后台管理项目(五)
前端·javascript·react.js
学前端的小朱1 小时前
Redux的简介及其在React中的应用
前端·javascript·react.js·redux·store
guai_guai_guai1 小时前
uniapp
前端·javascript·vue.js·uni-app
bysking2 小时前
【前端-组件】定义行分组的表格表单实现-bysking
前端·react.js
王哲晓3 小时前
第三十章 章节练习商品列表组件封装
前端·javascript·vue.js
fg_4113 小时前
无网络安装ionic和运行
前端·npm
理想不理想v3 小时前
‌Vue 3相比Vue 2的主要改进‌?
前端·javascript·vue.js·面试
酷酷的阿云3 小时前
不用ECharts!从0到1徒手撸一个Vue3柱状图
前端·javascript·vue.js
微信:137971205873 小时前
web端手机录音
前端