Apache部署与虚拟主机

Apache部署与虚拟主机

  • 资源列表
  • 基础环境
  • 一、安装依赖
  • 二、源码编译及安装
    • 1、解包
    • 2、配置编译安装
    • 3、优化执行路径
    • 4、添加为系统服务
  • 三、虚拟主机
    • 1、基于域名的虚拟主机
    • 2、添加虚拟主机配置
    • 3、基于 IP 地址、基于端口的虚拟主机

资源列表

操作系统配置主机IP
CentOS7.3.16112C4Gapache192.168.72.154

基础环境

  • 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
  • 关闭内核安全机制
setenforce 0
sed -i "s/^SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config
  • 修改主机名
hostnamectl set-hostname apache

一、安装依赖

yum -y install gcc gcc-* make
yum -y install apr-util-devel pcre-devel zlib-devel

二、源码编译及安装

1、解包

tar zxf httpd-2.4.25.tar.gz -C /usr/src
cd /usr/src/httpd-2.4.25/

2、配置编译安装

./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi
# --prefix:指定将 httpd 服务程序安装到哪个目录下,如/usr/local/httpd
# --enable-so:启用动态加载模块支持,使 httpd 具备进一步扩展功能的能力。
# --enable-rewrite:启用网页地址重写功能,用于网站优化及目录迁移维护。
# --enable-charset-lite:启用字符集支持,以便支持使用各种字符集编码的网页。
# --enable-cgi:启用 CGI 脚本程序支持,便于扩展网站的应用访问能力。make && make install

3、优化执行路径

  • 通过源码编译安装的 httpd 服务,程序路径并不在系统默认的搜索路径中,为了使 该服务在使用时更加方便,可以为相关程序添加符号链接
ln -s /usr/local/httpd/bin/* /usr/local/bin
ls -l /usr/local/bin/httpd /usr/local/bin/apachectl

4、添加为系统服务

  • 在/lib/systemd/system/目录下,建立一个以.service 结尾的单元(unit)配置文件, 用于控制由 Systemd 管理或监控的 httpd 服务
cat > /lib/systemd/system/httpd.service << 'EOF'
[Unit]
Description=The Apache HTTP Server
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/httpd/logs/httpd.pid
ExecStart= /usr/local/bin/apachectl $OPTIONS
ExecrReload= /bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
EOFsystemctl start httod.service
systemctl enable httpd.service
systemctl is-enabled httpd.service

三、虚拟主机

1、基于域名的虚拟主机

# 为虚拟主机准备网页文档
mkdir -p /var/www/html/kgccom
mkdir -p /var/www/html/kccecom
echo "<h1>www.kgc.com</h1>"> /var/www/html/kgccom/index.html
echo "<h1>www.kcce.com</h1>"> /var/www/html/kccecom/index.html

2、添加虚拟主机配置

vi /usr/local/httpd/conf/extra/httpd-vhosts.conf//创建独立的配置文件
<VirtualHost *:80>DocumentRoot "/var/www/html/kgccom"ServerName www.kgc.comErrorLog "logs/www.kgc.com.error_log"CustomLog "logs/www.kgc.com.access_log" common
<Directory "/var/www/html">Require all granted
</Directory>
</VirtualHost><VirtualHost *:80>DocumentRoot "/var/www/html/kccecom"ServerName www.kcce.comErrorLog "logs/www.kcce.com.error_log"CustomLog "logs/www.kcce.com.access_log" common
<Directory "/var/www/html">Require all granted
</Directory>
</VirtualHost>//加载独立的配置文件
vi /usr/local/httpd/conf/httpd.conf
Include conf/extra/httpd-vhosts.conf# 重启服务
systemctl restart httpd

3、基于 IP 地址、基于端口的虚拟主机

  • 基于 IP 地址的虚拟主机
vi /usr/local/httpd/conf/extra/httpd-vhosts.conf//创建独立的配置文件
<VirtualHost 192.168.72.154:80>DocumentRoot "/var/www/html/kgccom"ServerName www.kgc.comErrorLog "logs/www.kgc.com.error_log"CustomLog "logs/www.kgc.com.access_log" common
<Directory "/var/www/html">Require all granted
</Directory>
</VirtualHost><VirtualHost 192.168.72.154:80>DocumentRoot "/var/www/html/kccecom"ServerName www.kcce.comErrorLog "logs/www.kcce.com.error_log"CustomLog "logs/www.kcce.com.access_log" common
<Directory "/var/www/html">Require all granted
</Directory>
</VirtualHost> 
  • 基于端口的虚拟主机
vi /usr/local/httpd/conf/extra/httpd-vhosts.conf//创建独立的配置文件
<VirtualHost 192.168.72.154:81>DocumentRoot "/var/www/html/kgccom"ServerName www.kgc.comErrorLog "logs/www.kgc.com.error_log"CustomLog "logs/www.kgc.com.access_log" common
<Directory "/var/www/html">Require all granted
</Directory>
</VirtualHost><VirtualHost 192.168.72.154:82>DocumentRoot "/var/www/html/kccecom"ServerName www.kcce.comErrorLog "logs/www.kcce.com.error_log"CustomLog "logs/www.kcce.com.access_log" common
<Directory "/var/www/html">Require all granted
</Directory>
</VirtualHost># 还需要再主配置文件添加 Listen 进行监听端口

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

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

相关文章

python破解密码·筛查和选择

破解密码时可能遇到的几种情况 ① 已知密码字符&#xff0c;破排序 ② 已知密码位数&#xff0c;破字符 ③ 已知密码类型&#xff0c;破字位 ④ 已知部分密码&#xff0c;破未知 ⑤ 啥都不知道&#xff0c;盲破&#xff0c;玩完 ⑥ 已知位数、字符、类型、部分密码中的几个&am…

技术速递|VS Code Java 6月更新 - 项目设置功能增强!大量 Spring 新特性

作者&#xff1a;Nick Zhu 排版&#xff1a;Alan Wang 大家好&#xff0c;欢迎阅读 Visual Studio Code for Java 的六月更新&#xff01;在这篇博客中&#xff0c;我们将分享项目设置项目的重要更新以及一系列 Spring 的功能改进&#xff0c;让我们开始吧&#xff01; 项目设…

如何魔改vnstat-docker项目使其支持每1分钟采样?

文章目录 一、概述二、官网参考1. 官网地址2. 查看打包过程3.打包命令 三、修改过的文件四、部署运行1. 编排文件2. 运行效果 一、概述 接前文 网络流量监控神器vnStat初探 我们已经了解了vnStat的作用、使用和docker部署。 同时也了解到官方版本支持的采样统计间隔最小为5分…

使用tkinter拖入excel文件并显示

使用tkinter拖入excel文件并显示 效果代码 效果 代码 import tkinter as tk from tkinter import ttk from tkinterdnd2 import TkinterDnD, DND_FILES import pandas as pdclass ExcelViewerApp(TkinterDnD.Tk):def __init__(self):super().__init__()self.title("Excel…

java自定义注解和使用

Java 注解(Annotations)是元数据形式的标记,可以添加到 Java 代码中,用于提供额外的信息。在编译时、运行时或通过工具使用这些注解,来影响程序的行为或生成文档。注解可以用于类、方法、字段、参数、局部变量、包等。 定义注解 要定义一个注解,可以使用 @interface 关…

【力扣 - 每日一题】3101. 交替子数组计数 | 朴素枚举 + 递推思想 + 优化空间 | Go

Problem: 3101. 交替子数组计数 题意 给你一个二进制数组nums 。如果一个子数组中 不存在 两个 相邻 元素的值 相同 的情况&#xff0c;我们称这样的子数组为 交替子数组 。 返回数组 nums 中交替子数组的数量。 示例 1&#xff1a; 输入&#xff1a; nums [0,1,1,1] 输出&…

C# Bitmap类型与Byte[]类型相互转化详解与示例

文章目录 一、Bitmap类型转Byte[]类型使用Bitmap类的Save方法使用Bitmap类的GetBytes方法 二、Byte[]类型转Bitmap类型使用MemoryStream将Byte[]数组转换为Bitmap对象使用System.Drawing.Imaging.BitmapImage类 总结 在C#编程中&#xff0c;Bitmap类型和Byte[]类型之间的相互转…

326. 3 的幂

哈喽&#xff01;大家好&#xff0c;我是奇哥&#xff0c;一位专门给面试官添堵的职业面试员 文章持续更新&#xff0c;可以微信搜索【小奇JAVA面试】第一时间阅读&#xff0c;回复【资料】更有我为大家准备的福利哟&#xff01; 文章目录 一、题目二、答案三、总结 一、题目 …

Symfony事件调度系统:掌控应用生命周期的利器

Symfony是一个高度灵活的PHP框架&#xff0c;用于创建高质量的 web 应用程序。它提供了一个强大的事件调度系统&#xff0c;允许开发者在应用程序的不同阶段触发和监听事件。这种机制使得代码解耦和重用变得更加容易&#xff0c;同时也提高了应用程序的可扩展性。本文将详细介绍…

Linux:进程间通信(二.共享内存详细讲解以及小项目使用和相关指令、消息队列、信号量)

Linux&#xff1a;进程间通信&#xff08;二.共享内存详细讲解以及小项目使用和相关指令、消息队列、信号量&#xff09; 上次结束了进程间通信一&#xff1a;Linux&#xff1a;进程间通信&#xff08;一.初识进程间通信、匿名管道与命名管道、共享内存&#xff09; 文章目录 …

vivado DIRECT_ENABLE、DIRECT_RESET

直接启用&#xff08;_E&#xff09; 在输入端口或其他信号上应用DIRECT_ENABLE&#xff0c;使其直接进入启用 当有多个可能的启用时&#xff0c;或者当您想强制 合成工具来使用触发器的使能线。 体系结构支持 所有架构。 适用对象 DIRECT_ENABLE属性可以放置在任何端口或信号上…

C++进阶:继承和多态

文章目录 ❤️继承&#x1fa77;继承与友元&#x1f9e1;继承和静态成员&#x1f49b;菱形继承及菱形虚拟继承&#x1f49a;继承和组合 ❤️多态&#x1fa77;什么是多态&#xff1f;&#x1f9e1;多态的定义以及实现&#x1f49b;虚函数&#x1f49a;虚函数的重写&#x1f499…

吴恩达机器学习作业ex8:K 异常检测和推荐系统(Python实现)详细注释

文章目录 1 异常检测1.1 高斯分布1.2 估计高斯参数1.3 选择阈值 ε1.4 高维数据集 2 推荐系统2.1 电影评分数据集2.2 协作过滤学习算法2.2.1 协同过滤成本函数2.2.2 梯度协同过滤2.2.3 Regularized cost function2.2.4 正则梯度 2.3 学习电影推荐2.3.1 推荐 后记 1 异常检测 在…

c++入门基础篇(上)

前言&#xff1a; 我们在之前学完了c语言的大部分语法知识&#xff0c;是不是意味着我们可以马上从事开发呢&#xff1f;其实行业中的绝大部分岗位都用不到c语言&#xff0c;那我们为什么要学c语言呢。c语言虽然和我们日常开发没有很大的关系&#xff0c;但是学习c语言可以为我…

PLSQL Day6

declare type i_type is table of varchar2(50) index by varchar2(50); tab i_type; idx varchar2(50); begin tab(A):东邪; tab(a):西毒; tab(g):南帝; tab(d):北丐; tab(p):中神通; idx : tab.first; loop dbms_output.put_line(tab(idx)); exi…

14.x86游戏实战-汇编指令cmp test

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 本次游戏没法给 内容参考于&#xff1a;微尘网络安全 工具下载&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd6tw3 提…

LLm与微调

推荐尝试的微调模型 internlm2-20b-chat&#xff0c;internlm2-7b-chat&#xff0c; Qwen2-7B-Instruct, Qwen2-1.5B-Instruct, Qwen1.5-32B-Chat (Qwen2-0.5B、Qwen2-1.5B, qwen1.5的4B&#xff0c;7B&#xff0c;14B&#xff0c;32B) glm-4-9b-chat, glm-4-9b-chat-1m, gl…

Redis教程(二十三):Redis的底层数据结构

Redis的数据类型 Redis是一种高性能的key-value数据库,广泛用于缓存、消息队列、应用程序会话管理等领域。它之所以能提供高效的数据操作性能,很大程度上归功于其底层使用了多种优化过的数据结构来存储数据。以下是Redis用来存储不同类型键值对的一些核心数据结构: 1. 字符串…

SLAM相关知识

目前在SLAM上的传感器主要分为两大类&#xff1a;激光雷达和摄像头 激光雷达&#xff1a;单线、多线 摄像头&#xff1a;单目相机&#xff08;普通USB相机&#xff09;、双目相机&#xff08;2个普通的USB相机&#xff09;、单目结构光&#xff08;深度相机&#xff09;、双目…

【二】Ubuntu24虚拟机在Mac OS的VMware Fusion下无法联网问题

文章目录 1.环境背景2. 需求背景3. 解决方法3.1 在mac的终端查看虚拟机NAT网络3.2 查看unbuntu节点2的网络配置3.3 问题定位与解决3.3.1 检查是否有冲突3.3.2 冲突解决方法 4. 总结4.1 NAT 网关的原理4.2 VMware Fusion 的 NAT 模式4.3 为什么网关冲突会引起问题4.4 理解配置冲…