阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 7 利用Apache搭建Web网站服务

462次阅读
没有评论

共计 6846 个字符,预计需要花费 18 分钟才能阅读完成。

在 Internet 网络环境中,Web 服务无疑是最为流行的应用系统。有了 Web 站点,企业可以充分的展示自己的产品,宣传企业形象。Web 站点还为企业提供了与客户交流,电子商务交易平台等丰富的网络应用,部署与维护 Web 服务是运维工程师必须掌握的一个技能。

Windows 搭建 Web 服务可以参考博文:Windows Server 2016 搭建 IIS(web)服务

如果想要在 CentOS 7 利用 Apache 搭建网站服务,必须要了解的知识点有:

Apache 的起源

1.Apache HTTP Server 是开源软件项目的杰出代表,基于标准的 HTTP 网络协议提供网页浏览服务,Apache 服务器可以运行在 Linux、UNIX、Windows 等多种操作系统中;

2.Apache 服务器是针对之前出现的若干个 Web 服务器程序进行整合,完善后形成的软件,其名称来源于“A Patchy Server”,意思就是“基于原有 Web 服务程序的代码进行修改(补丁)后形成的服务器程序”;

3. 目前 Apache 项目一直由 ASF 负责管理和维护。ASF 的官方网站是 http://www.apache.org

Apache 的主要特点:

  • 开放源代码;
  • 跨平台应用;
  • 支持各种 Web 编程语言;
  • 模块化设计;
  • 运行非常稳定;
  • 良好的安全性。

安装 httpd 服务器
在配置 Apache 网站服务之前,需要正确安装好 httpd 服务器软件。httpd 服务器的安装可以选用 RPM 安装、源码编译安装这两种方式。前者相对比较简单、快速,但是在功能上存在一定的局限性,在实际的生产环境中,使用源代码编译安装的方式的方式要更加普遍。

本次实验将以下载的源码包 httpd-2.4.25.tar.gz 为例,介绍安装过程。(源码包 httpd-2.4.25.tar.gz可以到 Linux 公社资源站下载:

—————————————— 分割线 ——————————————

免费下载地址在 http://linux.linuxidc.com/

用户名与密码都是www.linuxidc.com

具体下载目录在 /2019 年资料 / 8 月 /16 日 /CentOS 7 利用 Apache 搭建 Web 网站服务 /

下载方法见 http://www.linuxidc.com/Linux/2013-07/87684.htm

—————————————— 分割线 ——————————————

操作步骤:
CentOS 7 利用 Apache 搭建 Web 网站服务

具体实验步骤

一、准备工作

为了避免发生端口冲突、程序冲突等现象,建议卸载使用 RPM 方式安装的 httpd。

[root@localhost ~]# rpm -e httpd --nodeps
错误:未安装软件包 httpd

Apache 的配置及运行需要 apr、pcre 等软件包的支持,因此应从系统光盘镜像中预先安装这些软件及其开发包(devel),以便提供相应的支持,确保 Apache 的安装顺利完成。
需要的 rpm 软件包有:

[root@localhost Packages]# rpm -ivh apr-1.4.8-3.el7.x86_64.rpm
[root@localhost Packages]# rpm -ivh apr-devel-1.4.8-3.el7.x86_64.rpm 
[root@localhost Packages]# rpm -ivh cyrus-sasl-devel-2.1.26-20.el7_2.x86_64.rpm
[root@localhost Packages]# rpm -ivh expat-devel-2.1.0-8.el7.x86_64.rpm 
[root@localhost Packages]# rpm -ivh libdb-devel-5.3.21-19.el7.x86_64.rpm 
[root@localhost Packages]# rpm -ivh openldap-devel-2.4.40-13.el7.x86_64.rpm 
[root@localhost Packages]# rpm -ivh apr-util-1.5.2-6.el7.x86_64.rpm 
[root@localhost Packages]# rpm -ivh apr-util-devel-1.5.2-6.el7.x86_64.rpm 
[root@localhost Packages]# rpm -ivh pcre-devel-8.32-15.el7_2.1.x86_64.rpm 
[root@localhost Packages]# rpm -ivh pcre-8.32-15.el7_2.1.x86_64.rpm

按照顺利安装完成。

二、源码编译安装

将下载好的源代码 httpd-2.4.25.tar.gz 上传到服务器本地,接下来开始编译安装。

1. 解包

[root@localhost ~]# tar zxf httpd-2.4.25.tar.gz -C /usr/src
[root@localhost ~]# cd /usr/src/httpd-2.4.25/

2. 配置
根据服务器的实际应用需要,可以灵活设置不同的定制项,若要获知可用的各种配置选项及其含义,可以执行“./configure –help”命令,“/”表示当前目录,下面配置一些最常用的配置项:

[root@localhost httpd-2.4.25]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi

上述配置命令中,各选项的含义:
CentOS 7 利用 Apache 搭建 Web 网站服务
3. 编译及安装
完成配置后,执行“make”命令进行编译,将源代码转换为可执行的程序;然后执行“make install”命令完成最后的安装过程。

[root@localhost httpd-2.4.25]# make && make install

三、确认安装目录
由于指定的是安装目录为 /usr/local/httpd,因此 httpd 服务的各种程序、模块、帮助文件都将复制到此目录下。

[root@localhost httpd-2.4.25]# ls /usr/local/httpd
bin    cgi-bin  error   icons    logs  manual
build  conf     htdocs  include  man   modules

在安装后的 /usr/local/httpd 目录下,主要子目录的用途:
CentOS 7 利用 Apache 搭建 Web 网站服务

httpd 服务的目录结构:
主要的目录和文件
服务目录:/usr/local/httpd/
主配置文件:/usr/local/httpd/conf/httpd.conf
网页目录:/usr/local/httpd/htdocs/
服务脚本:/usr/local/httpd/bin/apachectl
执行程序:/usr/local/httpd/bin/httpd
访问日志:/usr/local/httpd/log/access_log
错误日志:/usr/local/httpd/log/error_log

四、优化执行路径
通过源码安装的 httpd 服务,程序路径并不在默认的搜索路径中,为了使该服务在使用时更加方便,可以为相关程序添加符号链接。

[root@localhost httpd-2.4.25]# ln -s /usr/local/httpd/bin/* /usr/local/bin
[root@localhost httpd-2.4.25]# ls -l /usr/local/bin/httpd /usr/local/bin/apachectl
lrwxrwxrwx. 1 root root 30 7 月  13 19:20 /usr/local/bin/apachectl -> /usr/local/httpd/bin/apachectl
lrwxrwxrwx. 1 root root 26 7 月  13 19:20 /usr/local/bin/httpd -> /usr/local/httpd/bin/httpd

这样在执行相关的命令就不需要输入冗长的路径了。比如:

[root@localhost httpd-2.4.25]# httpd -v                  // 查看程序版本
Server version: Apache/2.4.25 (Unix)
Server built:   Jul 13 2019 18:49:20

五、添加 httpd 系统服务
CentOS 7 系统下,将编译安装的程序添加为系统服务有两种方式:
①通过 chkconfig 命令添加为系统服务,然后由 systemctl 进行管理(注意,通过这种方式不能设置程序开机自启动);
②在 /lib/systemd/system/ 目录下,手动编写以.service 结尾的单元(unit)配置文件。

1)使用 chkconfig 添加系统服务
若希望将 httpd 添加为系统服务,以便通过 chkconfig 进行管理,需要建立可控的服务器脚本。

[root@localhost ~]# cp /usr/local/httpd//bin/apachectl /etc/init.d/httpd
[root@localhost ~]# vim /etc/init.d/httpd             // 添加如下内容
#!/bin/bash
# chkconfig: 35 85 21       
\\ 服务识别参数,在级别 3、5 中启动;启动和关闭的顺序分别为 85、21
#description: Startup script for the Apache HTTP Server
\\ 服务描述信息,可以忽略
                                                        …………                // 忽略部分内容
[root@localhost httpd-2.4.25]# chkconfig --add httpd
\\ 添加 httpd 为系统服务
[root@localhost httpd-2.4.25]# systemctl start httpd
// 启动 httpd 服务
[root@localhost httpd-2.4.25]# chkconfig --level 35 httpd on
// 设置 httpd 服务为开机自启动
[root@localhost httpd-2.4.25]# systemctl is-enabled httpd
httpd.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig httpd --level=5
enabled
// 查看 httpd 服务是否为开机自启动,enabled 为开机自启动

2)建立 [service].service 配置文件
在 /lib/systemd/system/ 目录下,建立一个以.service 结尾的单元(unit)配置文件,用于控制 httpd 服务。配置内容分为三部分:
①控制单元(unit)的定义;
②服务 [service] 的定义;
③安装部分 [install]。
具体内容,如下:

[root@localhost ~]# vim /lib/systemd/system/httpd.service
// 填写如下内容
[Unit]
Description=The Apache HTTP Server
After=network.target

[Service]
Type=forking
PIDFile=/usr/local/httpd/logs/httpd.pid
ExecStart=/usr/local/httpd/bin/apachectl $OPTIONS
ExecReload=/bin/kill  -HUP  $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=graphical.target

配置文件的个配置项的作用,如图所示:
CentOS 7 利用 Apache 搭建 Web 网站服务
httpd.service 文件编写完成后,就可以设置开机自启动了

[root@localhost ~]# systemctl enable httpd                           // 设置开机自启动
Created symlink from /etc/systemd/system/graphical.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
[root@localhost ~]# systemctl is-enabled httpd                 // 查看自启动服务状态
enabled

通过 Apache 搭建的 httpd 服务已经完成!客户端就已经可以访问了,但是我们来认识一些基本的配置:

一、配置并启动服务

1. 配置 httpd 服务
编辑 httpd 服务的主配置文件 httpd.conf,查找到配置项“ServerName”去除前面“#”号即可!(如果有合法的域名,建议修改成合法的域名,将来通过域名访问)

[root@localhost ~]# vim /usr/local/httpd/conf/httpd.conf
                       …………             // 省略部分内容
ServerName www.example.com:80
                       …………             // 省略部分内容

修改完成后,建议使用带“-t”选项的 apachectl 命令对配置文件进行语法检查!

[root@localhost ~]# apachectl -t
Syntax OK

2. 启动 httpd 服务

[root@localhost ~]# systemctl start httpd         // 启动 httpd 服务
[root@localhost ~]# netstat -anpt | grep httpd           // 查看监听端口
tcp6       0      0 :::80                   :::*                    LISTEN      59183/httpd

二、部署网页文档

httpd 服务器已提供了一个名为 index.html 的测试网页,做为访问网站的默认首页(可以自行编辑)!

[root@localhost ~]# cat /usr/local/httpd/htdocs/index.html 
<html><body><h1>It works!</h1></body></html>

三、客户机访问
客户机通过 IP 访问
CentOS 7 利用 Apache 搭建 Web 网站服务

如果需要使用 https 的方式访问,则需要:

[root@localhost yum.repos.d]# yum -y install mod_ssl
\\ 安装所选的 ssl 模块
[root@localhost yum.repos.d]# systemctl restart httpd
\\ 重新启动 httpd 服务

客户机访问测试:
CentOS 7 利用 Apache 搭建 Web 网站服务
使用 https 访问,默认的首页时,将显示 APache 官网首页!

如果需要域名访问,需要搭建 DNS 服务,搭建 DNS 服务可以参考博文 CentOS 7 搭建 DNS 服务

四、查看 Web 站点的访问情况
httpd 服务器使用两种类型的日志:访问日志和错误日志。
通过查看访问日志文件 access_log,可以及时了解 Web 站点的访问情况。
访问日志中每行对应一条访问记录,记录了客户机的 IP 地址、访问服务器的日期和时间、请求的网页对象等信息。

[root@localhost ~]# tail /usr/local/httpd/logs/access_log 
192.168.1.100 - - [13/Jul/2019:20:29:40 +0800] "GET / HTTP/1.1" 200 45

通过查看错误日志 err_log,可以为排查服务器运行故障提供参考依据。
错误日志文件中每行对应一条错误记录,记录了发生错误的日期和时间、错误事件类型、错误时间的内容描述等。

上述过程是使用 Apache 搭建 Web 服务器的基本步骤,其中涉及 httpd.conf 配置文件的改动量非常少,要搭建一台简单的 Web 服务器还是非常简单的。

我们来认识 httpd 服务的主要配置文件及各项的含义:

[root@localhost ~]# vim /usr/local/httpd/conf/httpd.conf
ServerRoot "/usr/local/httpd"
Listen 80
User daemon
Group daemon
ServerAdmin you@example.com
ServerName www.example.com:80
DocumentRoot "/usr/local/httpd/htdocs"
DirectoryIndex index.html
ErrorLog "logs/error_log"
LogLevel warn
CustomLog "logs/access_log" common
PidFile "logs/httpd.pid"
AddDefaultCharset UTF-8
Include conf/extra/httpd-default.conf

上述设置行中,各全局配置项的含义,如图:
CentOS 7 利用 Apache 搭建 Web 网站服务
以上配置项是 Httpd.conf 文件中主要的全局配置项,还有很多其他的配置项,在此就不一一介绍了,如果有需要可以查看 Apache 服务器中的相关帮助手册。

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计6846字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7986834
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛 NAS-12:开源笔记的进化之路,效率玩家的新选择 前言 如何高效管理知识与笔记,已经成为技术...
星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛 NAS 硬件 02:某鱼 6 张左右就可拿下 5 盘位的飞牛圣体 NAS 前言 大家好,我是星...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare 也瘫了连监控都挂,根因藏在哪? 最近两天的互联网堪称“故障...
飞牛NAS玩转Frpc并且配置,随时随地直连你的私有云

飞牛NAS玩转Frpc并且配置,随时随地直连你的私有云

飞牛 NAS 玩转 Frpc 并且配置,随时随地直连你的私有云 大家好,我是星哥,最近在玩飞牛 NAS。 在数...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...
星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

  星哥带你玩飞牛 NAS-16:不再错过公众号更新,飞牛 NAS 搭建 RSS 对于经常关注多个微...
4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

  4 盘位、4K 输出、J3455、遥控,NAS 硬件入门性价比之王 开篇 在 NAS 市场中,威...
星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的 NAS 中! 大家对「数据安全感」的需求越来越高 ...
三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

  三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Andr...