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 noneRequire all denied
</Directory>
DocumentRoot "/var/www/html"
<Directory "/var/www">AllowOverride NoneRequire all granted
</Directory>
<Directory "/var/www/html">Options Indexes FollowSymLinksAllowOverride NoneRequire 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\"" combinedLogFormat "%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 NoneOptions NoneRequire all granted
</Directory>
<IfModule mime_module>TypesConfig /etc/mime.typesAddType application/x-compress .ZAddType application/x-gzip .gz .tgzAddType text/html .shtmlAddOutputFilter 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.comServerAlias 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 FollowSymLinksAllowOverride NoneRequire 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后再次启动。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VSCODE连接远程服务器

安装ssh插件 根据你的操作系统选择对应的版本进行下载和安装。 安装完成之后&#xff0c;启动vscode&#xff0c;选择左侧Extensions 选项卡&#xff0c;在输入框搜索 remote &#xff0c;选择安装Remote-SSH插件。 安装完成之后会在左侧新增一个选项卡Remote Explorer&#xf…

肥猫游戏报价器|计价器|王者荣耀代练陪练等游戏报价器软件介绍说明

目录 1. 前言2. 软件著作权3. 软件使用说明3.1 进入软件3.2 用户登录3.3 首页3.4 报价器3.4.1 总体介绍3.4.2 王者报价器3.4.3 LOL手游报价器3.4.4 英雄联盟报价器3.4.5 云顶之弈报价器3.4.7 王者水晶报价器3.4.8 和平精英报价器3.4.9 蛋仔派对报价器3.4.10 穿越火线报价器3.4.…

kafka学习笔记--broker工作流程、重要参数

本文内容来自尚硅谷B站公开教学视频&#xff0c;仅做个人总结、学习、复习使用&#xff0c;任何对此文章的引用&#xff0c;应当说明源出处为尚硅谷&#xff0c;不得用于商业用途。 如有侵权、联系速删 视频教程链接&#xff1a;【尚硅谷】Kafka3.x教程&#xff08;从入门到调优…

TypeScript 常用高级类型

目录 前言&#xff1a; TypeScript 常用高级类型 基本概念 高级类型 1. 交叉类型&#xff08;Intersection Types&#xff09; 2. 联合类型&#xff08;Union Types&#xff09; 3. 映射类型&#xff08;Mapped Types&#xff09; 4. 条件类型&#xff08;Conditional…

Pytorch-Transformer轴承故障一维信号分类(三)

目录 前言 1 数据集制作与加载 1.1 导入数据 第一步&#xff0c;导入十分类数据 第二步&#xff0c;读取MAT文件驱动端数据 第三步&#xff0c;制作数据集 第四步&#xff0c;制作训练集和标签 1.2 数据加载&#xff0c;训练数据、测试数据分组&#xff0c;数据分batch…

据房间Id是否存在,判断当前房间是否到期且实时更改颜色

重点代码展示&#xff1a; <template><el-col style"width: 100%;height: 100%;"><el-col :span"20"><el-card class"room_info"><avue-data-icons :option"option"></avue-data-icons></el-…

RT-DETR算法优化改进:轻量化自研设计双卷积重新设计backbone和neck,完成涨点且计算量和参数量显著下降

💡💡💡本文自研创新改进:双卷积由组卷积和异构卷积组成,执行 33 和 11 卷积运算代替其他卷积核仅执行 11 卷积,YOLOv8 Conv,从而轻量化RT-DETR,性能如下表,GFLOPs 8.1降低至7.6,参数量6.3MB降低至5.8MB RT-DETR魔术师专栏介绍: https://blog.csdn.net/m0_637742…

ubuntu-c++-可执行模块-动态链接库-链接库搜索-基础知识

文章目录 1.动态链接库简介2.动态库搜索路径3.运行时链接及搜索顺序4.查看可运行模块的链接库5.总结 1.动态链接库简介 动态库又叫动态链接库&#xff0c;是程序运行的时候加载的库&#xff0c;当动态链接库正确安装后&#xff0c;所有的程序都可以使用动态库来运行程序。动态…

Android帝国之日志系统--logd、logcat

本文概要 这是Android系统进程系列的第四篇文章&#xff0c;本文以自述的方式来介绍logd进程&#xff0c;通过本文您将了解到logd进程存在的意义&#xff0c;以及日志系统的实现原理。&#xff08;文中的代码是基于android13&#xff09; Android系统进程系列的前三篇文章如下…

如何在OpenWRT软路由系统部署uhttpd搭建web服务器实现远程访问——“cpolar内网穿透”

文章目录 前言1. 检查uhttpd安装2. 部署web站点3. 安装cpolar内网穿透4. 配置远程访问地址5. 配置固定远程地址 前言 uhttpd 是 OpenWrt/LuCI 开发者从零开始编写的 Web 服务器&#xff0c;目的是成为优秀稳定的、适合嵌入式设备的轻量级任务的 HTTP 服务器&#xff0c;并且和…

docker-compose的介绍与使用

一、docker-compose 常用命令和指令 1. 概要 默认的模板文件是 docker-compose.yml&#xff0c;其中定义的每个服务可以通过 image 指令指定镜像或 build 指令&#xff08;需要 Dockerfile&#xff09;来自动构建。 注意如果使用 build 指令&#xff0c;在 Dockerfile 中设置…

RHEL网络服务器

目录 1.时间同步的重要性 2.配置时间服务器 &#xff08;1&#xff09;指定所使用的上层时间服务器。 (2&#xff09;指定允许访问的客户端 (3&#xff09;把local stratum 前的注释符#去掉。 3.配置chrony客户端 &#xff08;1&#xff09;修改pool那行,指定要从哪台时间…

Python常见面试知识总结(一):迭代器、拷贝、线程及底层结构

前言&#xff1a; Hello大家好&#xff0c;我是Dream。 今天来总结一下Python和C语言中常见的面试知识&#xff0c;欢迎大家一起前来探讨学习~ 【一】Python中迭代器的概念&#xff1f; 可迭代对象是迭代器、生成器和装饰器的基础。简单来说&#xff0c;可以使用for来循环遍历…

[古剑山2023] pwn

最近这个打stdout的题真多。这个比赛没打。拿到附件作了一天。 choice 32位&#xff0c;libc-2.23-i386&#xff0c;nbytes初始值为0x14,读入0x804A04C 0x14字节后会覆盖到nbytes 1个字节。当再次向v1读入nbytes字节时会造成溢出。 先写0x14p8(0xff)覆盖到nbytes然后溢出写传…

记录一次postgresql临时表丢失问题

项目相关技术栈 springboot hikari连接池pgbouncerpostgresql数据库 背景 为了优化一个任务执行的速度&#xff0c;我将任务的sql中部分语句抽出生成临时表&#xff08;create temp table tempqw as xxxxxxxxx&#xff09;&#xff0c;再和其他表关联&#xff0c;提高查询速…

三翼鸟2023辉煌收官, 定盘2024高质量棋局

最近在不同平台上接连看到这样的热搜话题&#xff1a;用时间胶囊记录2023的自己、2023年度问答、2023十大网络流行语公布… 显然&#xff0c; 2023年进入最后一个月&#xff0c;时间匆匆&#xff0c;这也意味着又到了总结过去和规划未来的时候。拿到结果、取得成绩当然是对202…

短视频引流获客系统:引领未来营销的新潮流

在这个信息爆炸的时代&#xff0c;短视频已经成为了人们获取信息的主要渠道之一。而随着短视频的火爆&#xff0c;引流获客系统也逐渐成为了营销领域的新宠。本文将详细介绍短视频引流获客系统的开发流程以及涉及到的技术&#xff0c;让我们一起来看看这个引领未来营销的新潮流…

华清远见作业第二十四天

使用消息队列完成两个进程之间相互通信 代码 #include<stdio.h> #include<string.h> #include<stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <sys/ipc.h> #include <sys/msg.h> #in…

k8s一键部署uniswap

1、拉取uniswap源码 github地址 2、编写Dockerfile并打镜像 # Set the base image FROM node:18.10.0# WORKDIR /usr/src/app/ WORKDIR /home/gateway# Copy files COPY ./ /home/gateway/# Dockerfile author / maintainer LABEL maintainer"Michael Feng <mikehummi…

Java最全面试题专题---2、Java集合容器(2)

Map接口 说一下 HashMap 的实现原理&#xff1f; HashMap概述&#xff1a; HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作&#xff0c;并允许使用null值和null键。此类不保证映射的顺序&#xff0c;特别是它不保证该顺序恒久不变。 HashMap的数据…