Linux之Apache服务器安装及配置

一、Apache服务器简介

  Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用。Apache曾经是世界使用排名第一的Web服务器软件(2019年4月后nginx第一)。它可以运行在几乎所有广泛使用的计算机平台上。Apache 源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。当前最新稳定版是2.4.52,博文实验环境:

  • 操作系统:centos7.6
  • Apache版本:2.4.6

二、YUM安装Apache

  在另外一篇博文Linux之WEB服务器Apache httpd源码编译安装中介绍了如何源码编译安装Apache服务,如果对于版本没有特别要求,centos环境下最简单快捷的安装方式还是yum安装,centos7环境下yum安装版本为2.4.6。

1、YUM安装Apache

[root@s152 ~]# yum install -y httpd

2、查看版本

[root@s152 ~]# httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built: May 30 2023 14:01:11

3、服务管理

#启动服务
[root@s152 /]# systemctl start httpd
#停止服务
[root@s152 /]# systemctl stop httpd
#服务开机自启动
[root@s152 /]# systemctl enable httpd
#查看服务状态
[root@s152 /]# systemctl status httpd
#检查配置文件
[root@s152 /]# httpd -t
Syntax OK
#重载配置文件,不重启服务,如下三种方式都可以
[root@s152 /]# httpd -k graceful
[root@s152 /]# apachectl graceful
[root@s152 /]# systemctl reload httpd

三、常见配置参数说明

  如下是Apache服务器安装完成后的默认配置文件,这里我们只针对其中常用的配置参数进行释义说明。

1、默认httpd.conf配置

[root@s152 ~]# cat /etc/httpd/conf/httpd.conf |grep -Ev "^$|#"
ServerRoot "/etc/httpd"
Listen 80
Include conf.modules.d/*.conf
User apache
Group apache
ServerAdmin root@localhost
<Directory />
    AllowOverride none
    Require all denied
</Directory>
DocumentRoot "/var/www/html"
<Directory "/var/www">
    AllowOverride None
    Require all granted
</Directory>
<Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>
<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>
<Files ".ht*">
    Require all denied
</Files>
ErrorLog "logs/error_log"
LogLevel warn
<IfModule log_config_module>
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common
    <IfModule logio_module>
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>
    CustomLog "logs/access_log" combined
</IfModule>
<IfModule alias_module>
    ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
</IfModule>
<Directory "/var/www/cgi-bin">
    AllowOverride None
    Options None
    Require all granted
</Directory>
<IfModule mime_module>
    TypesConfig /etc/mime.types
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml
</IfModule>
AddDefaultCharset UTF-8
<IfModule mime_magic_module>
    MIMEMagicFile conf/magic
</IfModule>
EnableSendfile on
IncludeOptional conf.d/*.conf

2、常用参数释义

参数参数说明配置示例
ServerRootApache服务器的根目录ServerRoot “/etc/httpd”
Listen指定Apache监听的IP地址和端口Listen 80
DocumentRoot指定Web服务器的文档根目录,即网站文件存放的位置DocumentRoot “/var/www/html”
Directory配置目录的权限和特性<Directory “/var/www/html”>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
DirectoryIndex指定当访问一个目录时默认显示的文件DirectoryIndex index.html、
AllowOverride指定是否允许使用.htaccess文件覆盖目录配置AllowOverride All
LogLevel设置日志级别,用于记录错误和警告信息LogLevel warn
ErrorLog指定错误日志文件的路径ErrorLog “/var/log/httpd/error_log”
CustomLog指定访问日志文件的路径和格式CustomLog “/var/log/httpd/access_log” combined
ServerSignature控制服务器生成的错误页面中是否包含服务器的签名信息ServerSignature Off
KeepAlive启用或禁用Keep-Alive功能,决定是否保持持久连接KeepAlive On
Timeout设置服务器等待客户端请求的超时时间Timeout 300
MaxClients限制同时连接到服务器的最大客户端数MaxClients 150
IncludeOptionalApache主配置文件中引入其他配置文件IncludeOptional conf.d/*.conf
Userhttpd服务运行用户User apache
Grouphttpd服务所属群组Group apache
ServerName虚拟服务器主机名和端口,主机名可以是IP地址也可以是域名ServerName 192.168.0.152:80

四、服务配置举例

  这里我们以部署猜拳游戏为例,介绍如何在Apache服务上部署服务。

1、创建一个虚拟主机配置文件

  进入/etc/httpd/conf.d/目录下创建一个虚拟主机配置文件,主机名为mytest.com,对应监听的80端口,如果需要更换其他端口需要在主文件中listen添加或者修改,这是与nginx不同的地方。

[root@s152 mytest]# cd /etc/httpd/conf.d/
[root@s152 conf.d]# cat test.conf 
<VirtualHost *:80>
    # 设置虚拟主机的域名
    ServerName mytest.com
    ServerAlias www.mytest.com

    # 设置文档根目录
    DocumentRoot "/var/www/mytest"

    # 日志文件
    ErrorLog "/var/log/httpd/mytest_error_log"
    CustomLog "/var/log/httpd/mytest_access_log" combined

    # 目录权限
    <Directory "/var/www/mytest">
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>

    # 可以添加其他定制的配置项,如重定向、代理等

</VirtualHost>

2、将猜拳服务代码打包上传到Directory

  配置文件中虚拟服务目录位于/var/www/mytest目录下,我们创建该目录后将软件包上传到该目录下。

[root@s152 www]# mkdir mytest
[root@s152 www]# cd mytest/
[root@s152 mytest]# ll
总用量 40
drwxr-xr-x. 2 root root 100 11月 1 2022 caiquan
-rw-r–r–. 1 root root 38541 11月 29 15:33 caiquan.zip

3、重启httpd服务

  使用httpd -t检查配置文件,检查无误后我们重启服务或者重新加载配置文件。

[root@s152 conf.d]# httpd -t
Syntax OK
[root@s152 conf.d]# systemctl restart httpd

4、修改hosts文件

  这里实验用的域名非正式域名,我们需要在hosts文件添加自定义解析。
在这里插入图片描述

5、访问验证

  打开浏览器,通过域名和路径就可以访问我们的猜拳游戏内容啦!
在这里插入图片描述

五、QA

1、启动报错httpd: Could not reliably determine the server’s fully qualified domain name

  • 报错信息:httpd: Could not reliably determine the server’s fully qualified domain name
  • 报错原因:httpd.conf配置文件中未配置ServerName
  • 解决方案:修改httpd.conf配置文件,添加ServerName = domain.com:80 参数配置

2、启动报错httpd (pid xxxxx) already running导致无法启动

  • 报错信息:httpd (pid xxxxx) already running 和 httpd.service: control process exited, code=exited status=1
  • 报错原因:httpd服务未正常退出导致无法启动
  • 解决方案:执行pgrep -f httpd |xargs kill后再次启动。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/237850.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

strict-origin-when-cross-origin

严格限制同源策略 &#xff08;1&#xff09;允许服务器的同源IP地址访问 &#xff08;2&#xff09;允许Referer --- 后端服务器要配置

两线制 4-20mA 隔离变送器(输出回路供电)

两线制 4-20mA 隔离变送器(输出回路供电) 特征&#xff1a; ◆低成本&#xff0c;小体积&#xff0c;符合 UL94-V0 阻燃标准 ◆安装方式采用国际标准 DIN35mm 导轨安装方式 ◆双隔离(信号输入、信号输出相互之间 3000VDC 隔离) ◆4-20mA 电流输入与输出&#xff0c;精度高(失真…

ansible部署安装Tomcat

我们需要用到的文件jdk以及tomcat安装包 下载链接:https://pan.baidu.com/s/1sjG8Yl8k-SUbOv7KwKXZMA 提取码&#xff1a;t71z 准备n台机器&#xff08;我这里就简单部署三台机器&#xff09; ansible的安装部署以及配置可以看博主之前的文章自动化运维工具-ansible部署 ansib…

zookeeper高级应用原理

文章目录 分布式锁分布式锁-读写锁分布式锁-Curator实现ZK集群管理 zookeeper 集群zookeeper 集群节点个数配置zookeeper 选举ZAB协议zookeeper 选举zookeeper 集群数据读写 分布式锁 分布式锁&#xff1a;在分布式环境下&#xff0c;保护跨进程、跨主机、跨网络的共享资源&am…

Day57力扣打卡

打卡记录 最小体力消耗路径 链接 Dijkstra 将Dijkstra算法从计算最短路径转化为计算路径最大差值。 class Solution:def minimumEffortPath(self, heights: List[List[int]]) -> int:n, m len(heights), len(heights[0])dist [0] [0x3f3f3f3f] * (n * m - 1)vis set…

iPhone 数据恢复:iMyFone D-Back iOS

iMyFone D-Back iOS 最佳 iPhone 数据恢复&#xff0c;最好的 iPhone 数据恢复软件&#xff0c;恢复成功率最高。 直接从iOS设备、iTunes/iCloud/第三方程序备份快速恢复数据。 有选择地恢复已删除的照片、WhatsApp、消息和 18 多种其他数据类型。 仅通过 iCloud 帐户访问即可从…

【组合数学】递推关系

目录 1. 递推关系建立2. 常系数齐次递推关系的求解3. 常系数非齐次递推关系的求解4. 迭代法 1. 递推关系建立 给定一个数的序列 f ( 0 ) , f ( 1 ) , . . . , f ( n ) , . . . , f (0), f(1), ..., f(n ),... , f(0),f(1),...,f(n),..., 若存在整数 n 0 n_0 n0​ &#xff…

启动jar包命令

一、Windows环境 找到jar包的位置&#xff1b; 按shift键&#xff0c;点击鼠标右键&#xff0c;选中在此处打开PowerShell窗口&#xff1b; 此时进入命令行工具 输入java -jar .\java_web-0.0.1-SNAPSHOT.jar&#xff08;注意空格&#xff09;。 二、Linux环境 2.1 方式一 …

【二者区别】cuda和cudatoolkit

Pytorch 使用不同版本的 cuda 由于课题的原因&#xff0c;笔者主要通过 Pytorch 框架进行深度学习相关的学习和实验。在运行和学习网络上的 Pytorch 应用代码的过程中&#xff0c;不少项目会标注作者在运行和实验时所使用的 Pytorch 和 cuda 版本信息。由于 Pytorch 和 cuda 版…

【JVM从入门到实战】(二)字节码文件的组成

一、Java虚拟机的组成 二、字节码文件的组成 字节码文件的组成 – 应用场景 字节码文件的组成部分-Magic魔数 什么是魔数&#xff1f; Java字节码文件中的魔数 文件是无法通过文件扩展名来确定文件类型的&#xff0c;文件扩展名可以随意修改&#xff0c;不影响文件的内容。…

用23种设计模式打造一个cocos creator的游戏框架----(十三)模板方法模式

1、模式标准 模式名称&#xff1a;模板方法模式 模式分类&#xff1a;行为型 模式意图&#xff1a;定义一个操作中的算法骨架&#xff0c;而将一些步骤延迟到子类中。Template Method 使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 结构图&#xff1a…

【ArcGIS Pro微课1000例】0053:基于SQL Server创建与启用地理数据库

之前的文章有讲述基于SQL Server创建企业级地理数据库,本文讲述在SQL Server中创建常规的关心数据库,然后在ArcGIS Pro中将其启用,转换为企业级地理数据库。 1. 在SQL Server中创建数据库** 打开SQL Server 2019,连接到数据库服务器。 展开数据库连接,在数据库上右键→新…

使用Android Studio的Gradle Tasks对源码生成jar包

一. 前言 As工具可以用来编译第三方源码&#xff08;比如okhttp &#xff0c;retrofit源码&#xff09;&#xff0c; 用于打jar包或aar包&#xff0c;使用工具自带的Tasks工具可以帮忙我们完成这些事情。 二. 遇到问题 Android Studio Gradle打包Tasks不显示&#xff0c;如图…

销售技巧培训之如何提升房地产销售技巧

在房地产销售这个竞争激烈的行业中&#xff0c;要想获得成功&#xff0c;不仅需要熟练掌握销售技巧&#xff0c;还需要不断地提升自己的能力。下面&#xff0c;我们将从以下几个方面探讨如何提升房地产销售技巧。 一、了解客户需求 倾听客户&#xff1a;在与客户沟通时&#x…

正运动ZDevelop软件使用流程

ZDevelop是正运动技术ZMoiton系列运动控制器的PC端程序开发调试与诊断软件&#xff0c;通过它用户能够很容易的对控制器进行程序编辑与配置&#xff0c;快速开发应用程序、实时诊断系统运行参数以及对运动控制器正在运行的程序进行实时调试&#xff0c;支持中英双语环境。 BAS…

Vue自定义指令插槽作用域插槽具名插槽

Vue自定义指令&插槽&作用域插槽&具名插槽 一、学习目标 1.自定义指令 基本语法&#xff08;全局、局部注册&#xff09;指令的值v-loading的指令封装 2.插槽 默认插槽具名插槽作用域插槽 3.综合案例&#xff1a;商品列表 MyTag组件封装MyTable组件封装 4.路…

Linux高级管理-基于域名的虚拟Web主机搭建

客服机限制地址 通过 Require 配置项&#xff0c;可以根据主机的主机名或P地址来决定是否允许客户端访问。在httpd服 务器的主配置文件的<Location>&#xff0c;<Directory>、<Files>、<Limit>配置段中均可以使用Require 配置 项来控制客户端的访问。使…

HyperGCN笔记

1 Title HyperGCN: A New Method of Training Graph Convolutional Networks on Hypergraphs&#xff08;Naganand Yadati、Prateek Yadav、Anand Louis、Madhav Nimishakavi、Vikram Nitin、Partha Talukdar&#xff09;【NeurIPS 2019】 2 Conclision This paper proposes H…

【TCP/IP协议】LDAP,轻型目录访问协议(Lightweight Directory Access Protocol)

文章目录 LDAP名词解释LDAP protocolLDAP协议的特点LDAP的主要功能和用途LDAP工作原理LDAP的工作步骤LDAP查询范例 LDAP数据组件LDAP操作类型LDAP认证类型LDAP可能的风险如何保护LDAP推荐阅读 LDAP名词解释 LDAP&#xff0c;全称轻型目录访问协议&#xff08;Lightweight Dire…

JVM面试连环炮:你准备好迎接挑战了吗?

在Java开发领域&#xff0c;JVM面试一直是一个热门话题。作为一名优秀的开发者&#xff0c;你是否已经准备好迎接这场挑战了呢&#xff1f;今天&#xff0c;我们就来深度解析一下JVM面试的热点问题&#xff0c;帮助你更好地应对面试&#xff0c;一举拿下offer&#xff01; 1、…