01-apache

apache官网
apache的特点:
开放源代码:由ASF(apache软件基金会)管理和维护
跨平台应用:可以运行在Linux、Unix、Windows
支持各种web编程语言:支持的网页语言Perl、PHP、Python、Java、HTML、ASP(微软)
模块化设计:尽可能使用标准的模块的方式实现其专有技术
运行非常稳定:可用于构建具有高负载访问量的web站点
良好的安全性:相对较好的安全性(开源软件共性)。apache维护团队会及时对已发现的漏洞提供修补程序。
apache的主要版本:
1.X:具有非常好的兼容性、稳定性(最高版本1.3)
2.X:配置语法和管理风格有所改变,支持HTTPS协议
安装httpd服务器

  1. 准备工作:
[root@2920 ~]# rpm -e httpd --nodeps		#卸载使用RPM方式安装的httpd

安装apr、pcre等软件包及其开发包(devel)

[root@2920 ~]# mount /dev/sr0 /mnt/
[root@2920 ~]# cd /mnt/Packages/
[root@2920 Packages]# rpm -ivh apr-1.4.8-3.el7_4.1.x86_64.rpm
[root@2920 Packages]# rpm -ivh apr-devel-1.4.8-3.el7_4.1.x86_64.rpm
[root@2920 Packages]# rpm -ivh apr-util-1.5.2-6.el7.x86_64.rpm  
[root@2920 Packages]# rpm -ivh expat-devel-2.1.0-10.el7_3.x86_64.rpm
[root@2920 Packages]# rpm -ivh libdb-devel-5.3.21-24.el7.x86_64.rpm
[root@2920 Packages]# rpm -ivh openldap-devel-2.4.44-20.el7.x86_64.rpm
[root@2920 Packages]# rpm -ivh apr-util-devel-1.5.2-6.el7.x86_64.rpm
[root@2920 Packages]# rpm -ivh cyrus-sasl-2.1.26-23.el7.x86_64.rpm
[root@2920 Packages]# rpm -ivh cyrus-sasl-devel-2.1.26-23.el7.x86_64.rpm
[root@2920 Packages]# rpm -ivh pcre-devel-8.32-17.el7.x86_64.rpm
[root@2920 Packages]# rpm -ivh pcre-8.32-17.el7.x86_64.rpm
  1. 源码编译并安装

解包

[root@2920 ~]# curl -O http://archive.apache.org/dist/httpd/httpd-2.4.25.tar.gz
[root@2920 ~]# tar zxvf httpd-2.4.25.tar.gz -C /usr/src/
[root@2920 ~]# cd /usr/src/httpd-2.4.25/

配置

[root@2920 httpd-2.4.25]#./configure \		#配置
--prefix=/usr/local/httpd \		#指定安装位置/usr/local/httpd
--enable-so \		#启用动态加载模块支持,增加扩展能力
--enable-rewrite \		#启用网页地址重写功能,用于网站优化和目录迁移维护
--enable-charset-lite \		#启用CGI脚本程序支持,便于扩展网站的应用访问能力
--enable-cgi

编译并安装

[root@2920 httpd-2.4.25]#make -j 2		#编译,-j指定使用几个CPU计算
[root@2920 httpd-2.4.25]#make install		#安装
  1. 确认结果
[root@2920 ~]# ls /usr/local/httpd/
bin    cgi-bin  error   icons    logs  manual
build  conf     htdocs  include  man   modules

bin:存放服务执行程序文件(主程序httpd、服务控制工具apachectl等)
cgi-bin:存放CGI程序文件
logs:存放日志文件
conf:存放配置文件(主配置文件httpd.conf、增强配置子目录extra等)
htdocs:存放网页文档(默认首页文件 index.html 等)
modules:存放模块文件
  1. 优化执行路径
[root@2920 ~]# ln -s /usr/local/httpd/bin/* /usr/local/bin/		#软链接
lrwxrwxrwx 1 root root 30 9月  29 13:23 /usr/local/bin/apachectl -> /usr/local/httpd/bin/apachectl
lrwxrwxrwx 1 root root 26 9月  29 13:23 /usr/local/bin/httpd -> /usr/local/httpd/bin/httpd
[root@2920 ~]# httpd -v		#查看程序版本
Server version: Apache/2.4.25 (Unix)
Server built:   Sep 28 2020 16:40:58
  1. 添加httpd系统服务
[root@2920 ~]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
[root@2920 ~]# vim /etc/init.d/httpd
#!/bin/sh
# chkconfig: 35 85 21		#在启动级别3和5中启动;启动和关闭顺序分别为85、21
[root@2920 ~]# chkconfig --add httpd		#将httpd服务添加为系统服务
[root@2920 ~]# chkconfig --level 35 httpd on		#设置httpd服务开机自启
[root@2920 ~]# systemctl is-enabled httpd.service		#查看httpd服务的自启状态
httpd.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig httpd --level=5
enabled

###httpd服务器的基本配置

  1. 确定网站名称、IP地址
    申请一个合法的互联网IP地址和完整的网站域名
    客户机所使用的DNS服务器可以解析该网站域名
    web服务器本机中/etc/hosts文件中添加相应的映射记录以提高本地解析速度
  2. 配置并启动httpd服务
    配置httpd服务
[root@2920 ~]# vim /usr/local/httpd/conf/httpd.conf
/ServerName
ServerName www.flag2920.com:80
[root@2920 ~]# apachectl -t		#检查语法错误
Syntax OK
[root@2920 ~]# httpd -t		#等同apachectl -t
Syntax OK

启动httpd服务

[root@2920 ~]# netstat -anptu | grep httpd
tcp6       0      0 :::80                   :::*                    LISTEN      6528/httpd

  1. 部署网页文档
[root@2920 ~]# cat /usr/local/httpd/htdocs/index.html 
<html><body><h1>It works!</h1></body></html>
  1. 在客户机中访问web站点
    在这里插入图片描述
  2. 查看web站点的访问情况
[root@2920 ~]# tail /usr/local/httpd/logs/access_log 
192.168.100.38 - - [30/Sep/2020:15:54:47 +0800] "GET / HTTP/1.1" 200 45
192.168.100.38 - - [30/Sep/2020:15:54:47 +0800] "GET /favicon.ico HTTP/1.1" 404 209

###httpd.conf配置文件

  1. 全局配置项
ServerRoot "/usr/local/httpd"		#服务器根目录即安装目录
Listen 80		#监听的端口号,默认为80
User daemon		#运行httpd进程时的用户身份,默认为daemon
Group daemon		#运行httpd进程是的组身份验证,默认为daemon
ServerAdmin you@example.com		#管理员E-mail地址,可通过此邮箱地址及时联系web站点管理员
ServerName www.flag2920.com:80		#web站点的完整主机名(主机名+域名)
DocumentRoot "/usr/local/httpd/htdocs"		#网站根目录,网页在系统中实际存放的路径

<IfModule dir_module>
DirectoryIndex index.html		#网站默认索引页(首页),多个首页文件用空额
</IfModule>
ErrorLog "logs/error_log"		#错误日志文件的路径,默认logs/error_log
LogLevel warn		#记录日志的级别,默认warn(警告)
    CustomLog "logs/access_log" common		#访问日志文件的路径、默认路径为logs/access_log、类型为common(通用格式)
#Include conf/extra/httpd-default.conf
PidFile:设置用于保存httpd进程号(PID)的文件,默认保存在地址为logs/httpd.pid,logs目录位于Apache的服务器根目录下。
AddDefaultCharset:设置站点中的网页默认使用的字符集编码,如utf-8,gb2312等
Include:包含另一个配置文件的内容,可以实现讲一些特殊功能的配置放到一个单独的文件中,在使用Include配置项将其包含到httpd。conf文件中,这样便于独立进行配置功能的维护而不影响主配置文件。
  1. 区域配置文件
<Directory />		#定义“/”目录区域的开始
	Options FollowSymLinks		#控制选项,允许使用符号链接
    AllowOverride none		#不允许隐含控制文件中的覆盖配置
    Require all denied		#禁止任何人访问此区域
</Directory>		#定义“/”目录区域的结束
在以上区域定义中,设置了一个根目录的区域配置,添加的访问控制相关配置只对根目录有效,不会作用于全局和其他目录区域。
注意:这里的根目录是指配置httpd服务器的根目录(ServerRoot所设置的值),不是CentO S系统的根目录。

###实验案例
环境:
Ultra公司根据其信息化建设要求,需要构建一台独立配置的网站服务器。考虑到站点的运行效率、稳定性及可扩展性等因素,要求在CentOS 7系统中构建 httpd 服务器,并使用httpd-2.4.25源代码方式进行安装。
需求描述:
编译安装httpd服务器,要求支持动态模块扩展、地址重写、多字符集。
网站名称设置为www.Ultra.com.默认首页设置为index.html和index.php。
将/usr/share/doc/HTML/zh-CN/目录下的index.html复制到网站根目录下并改名为redhat。
在浏览器中分别访问http://www.Ultra.com/redhat与http://www.Ultra.com/,查看不同的测试界面。
步骤:
Step1:编译安装httpd软件包。

Step2:配置并启动httpd服务器。

Step3:测试Web站点。

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值