Linux如何安装Apache服务器_Linux下Httpd服务部署与虚拟主机设置【指南】

发布时间 - 2025-12-27 00:00:00    点击率:
Apache是Linux搭建Web服务器最常用选择,需按发行版安装(如yum/dnf/apt)、启动并设开机自启、开放防火墙80/443端口、配置虚拟主机及本地hosts解析。

如果您希望在Linux系统中搭建Web服务器,Apache(httpd)是最常用的选择之一。以下是针对主流Linux发行版安装Apache、启动服务并配置虚拟主机的详细操作步骤:

一、安装Apache服务

Apache在不同发行版中包名略有差异,需根据系统类型选择对应安装命令。安装过程会自动部署基础配置文件与默认站点目录。

1、在CentOS/RHEL 7/8/9系统中执行:
yum install httpd -y

2、在CentOS/RHEL 9或AlmaLinux/Rocky Linux 9中若使用dnf:
dnf install httpd -y

3、在Ubuntu/Debian系统中执行:
apt update && apt install apache2 -y

4、安装完成后,确认httpd或apache2服务已正确安装且无依赖报错

二、启动并启用开机自启

安装完毕后需手动启动服务,并设置为系统启动时自动运行,确保Web服务持续可用。

1、在RHEL/CentOS/AlmaLinux系统中执行:
systemctl start httpd && systemctl enable httpd

2、在Ubuntu/Debian系统中执行:
systemctl start apache2 && systemctl enable apache2

3、验证服务状态:
systemctl status httpd(或apache2)

4、若状态显示“active (running)”,表示服务已正常启动

三、开放防火墙端口

默认情况下,firewalld或ufw可能阻止外部对HTTP(端口80)和HTTPS(端口443)的访问,需显式放行。

1、在启用firewalld的系统中执行:
firewall-cmd --permanent --add-service=http && firewall-cmd --permanent --add-service=https && firewall-cmd --reload

2、在Ubuntu/Debian启用ufw时执行:
ufw allow 'Apache Full'

3、执行后需确认端口80在netstat或ss输出中处于LISTEN状态

四、配置基于域名的虚拟主机

虚拟主机允许单台服务器托管多个网站,通过ServerName区分请求目标。需在主配置中启用vhost支持并创建独立配置文件。

1、在CentOS/RHEL系统中,编辑/etc/httpd/conf/httpd.conf,确保包含:
Include conf.modules.d/*.conf 和 Include conf.d/*.conf

2、在/etc/httpd/conf.d/目录下新建文件site1.conf:

  ServerName example1.local
  DocumentRoot /var/www/site1
  ErrorLog /var/log/httpd/site1_error.log

3、在Ubuntu/Debian系统中,使用a2ensite启用站点:
echo " ServerName example2.local DocumentRoot /var/www/site2 " > /etc/apache2/sites-available/example2.conf && a2ensite example2.conf

4、每次修改虚拟主机配置后必须执行systemctl reload httpd(或apache2)生效

五、设置本地DNS解析以测试虚拟主机

在未配置公网DNS的情况下,可通过修改本机hosts文件将自定义域名映射至本地IP,实现浏览器直接访问。

1、编辑/etc/hosts文件:
sudo nano /etc/hosts

2、在文件末尾添加两行:
127.0.0.1 example1.local
127.0.0.1 example2.local

3、为每个虚拟主机创建对应根目录并放置测试页:
mkdir -p /var/www/site1 && echo "

Site 1

" > /var/www/site1/index.html

4、保存后,在浏览器中分别访问http://example1.local和http://example2.local,应显示不同内容


# linux  # centos  # html  # apache  # 防火墙  # 浏览器  # 端口  # ubuntu  # ai  # dns  # dnf  # 配置文件  # echo  # include  # var  # http  # https  # debian  # 虚拟主机  # 最常用  # 情况下  # 发行版  # 如果您  # 多个  # 自定义  # 报错  # 可通过 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Java遍历集合的三种方式  Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置  Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用  如何快速生成橙子建站落地页链接?  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  如何用虚拟主机快速搭建网站?详细步骤解析  网站图片在线制作软件,怎么在图片上做链接?  Laravel怎么连接多个数据库_Laravel多数据库连接配置  HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】  怎么用AI帮你设计一套个性化的手机App图标?  怎样使用JSON进行数据交换_它有什么限制  如何用狗爹虚拟主机快速搭建网站?  js代码实现下拉菜单【推荐】  Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言  如何快速搭建高效简练网站?  如何在IIS中新建站点并配置端口与物理路径?  Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践  Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  jQuery中的100个技巧汇总  Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】  如何注册花生壳免费域名并搭建个人网站?  重庆市网站制作公司,重庆招聘网站哪个好?  JavaScript中的标签模板是什么_它如何扩展字符串功能  详解jQuery中基本的动画方法  做企业网站制作流程,企业网站制作基本流程有哪些?  Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作  CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】  详解vue.js组件化开发实践  如何在IIS中新建站点并解决端口绑定冲突?  Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录  Laravel如何实现一对一模型关联?(Eloquent示例)  Linux后台任务运行方法_nohup与&使用技巧【技巧】  网站制作免费,什么网站能看正片电影?  开心动漫网站制作软件下载,十分开心动画为何停播?  Laravel如何实现密码重置功能_Laravel密码找回与重置流程  Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】  Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程  佛山网站制作系统,佛山企业变更地址网上办理步骤?  香港服务器部署网站为何提示未备案?  Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  如何快速辨别茅台真假?关键步骤解析  javascript日期怎么处理_如何格式化输出  html5如何实现懒加载图片_ intersectionobserver api用法【教程】  Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】  浅谈Javascript中的Label语句  如何快速生成高效建站系统源代码?  uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址  JS去除重复并统计数量的实现方法  Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】