Linux Apache教程哪里学?Apache配置虚拟主机详解

这是一份为您准备的 Linux 下 Apache Web 服务器完整教程,本教程涵盖了从安装、基础配置、虚拟主机设置到安全优化的全过程。

前置假设:您使用的是常见的 Linux 发行版(如 Ubuntu/Debian 或 CentOS/RHEL)。
权限要求:大部分操作需要 root 权限或使用 sudo

Linux实验10 Apache服务器配置
加载中
Linux实验10 Apache服务器配置

第一步:安装 Apache

Ubuntu / Debian 系统

打开终端,执行以下命令:

# 更新软件包列表
sudo apt update
# 安装 Apache2
sudo apt install apache2
# 启动 Apache 并设置开机自启
sudo systemctl start apache2
sudo systemctl enable apache2

CentOS / RHEL / Fedora 系统

# 安装 httpd (CentOS 7+ 使用 httpd)
sudo yum install httpd   # 或 sudo dnf install httpd
# 启动 Apache 并设置开机自启
sudo systemctl start httpd
sudo systemctl enable httpd

第二步:验证安装

安装完成后,您可以通过浏览器访问服务器的 IP 地址来验证:

http://你的服务器IP地址

如果看到 “It works!”“Apache Test Page”,说明安装成功。

注意:如果无法访问,请检查防火墙设置(见第四步)。


第三步:基本目录结构

了解 Apache 的文件位置至关重要:

系统类型 网站根目录 主配置文件 模块配置目录 日志文件
Ubuntu/Debian /var/www/html /etc/apache2/apache2.conf /etc/apache2/sites-available/ /var/log/apache2/

Linux Apache教程哪里学?Apache配置虚拟主机详解

CentOS/RHEL

/var/www/html/etc/httpd/conf/httpd.conf/etc/httpd/conf.d//var/log/httpd/

第四步:防火墙配置

Apache 使用 80 (HTTP)443 (HTTPS) 端口。

Ubuntu (使用 ufw)

sudo ufw allow 'Apache Full'
sudo ufw reload

CentOS (使用 firewalld)

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

第五步:配置虚拟主机 (Virtual Hosts)

这是最实用的功能,允许在一台服务器上托管多个网站。

以 Ubuntu 为例:

  1. 创建网站目录

    sudo mkdir -p /var/www/example.com/html
    sudo chown -R $USER:$USER /var/www/example.com/html
    sudo chmod -R 755 /var/www/example.com
  2. 创建测试页面

    sudo nano /var/www/example.com/html/index.html
    <html>
      <head><title>Welcome to Example.com!</title></head>
      <body><h1>Success! The example.com virtual host is working!</h1></body>
    </html>
  3. 创建虚拟主机配置文件

    sudo nano /etc/apache2/sites-available/example.com.conf
    <VirtualHost :80>
        ServerAdmin webmaster@example.com
        ServerName example.com
        ServerAlias www.example.com
        DocumentRoot /var/www/example.com/html
        <Directory /var/www/example.com/html>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
        </Directory>
        ErrorLog ${APACHE_LOG_DIR}/example.com-error.log
        CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined
    </VirtualHost>

    Linux Apache教程哪里学?Apache配置虚拟主机详解

  4. 启用站点并禁用默认站点

    sudo a2ensite example.com.conf
    sudo a2dissite 000-default.conf
  5. 测试配置并重载 Apache

    sudo apache2ctl configtest
    # 如果输出 Syntax OK,则执行:
    sudo systemctl reload apache2

CentOS 用户:在 /etc/httpd/conf.d/ 下创建 .conf 文件,内容类似,无需 a2ensite 命令,直接重启 httpd 即可。


第六步:常用管理命令

# 启动 Apache
sudo systemctl start apache2   # Ubuntu
sudo systemctl start httpd     # CentOS
# 停止 Apache
sudo systemctl stop apache2
# 重启 Apache (应用配置更改)
sudo systemctl restart apache2
# 重载 Apache (不中断现有连接)
sudo systemctl reload apache2
# 检查 Apache 状态
sudo systemctl status apache2
# 测试配置文件语法
sudo apache2ctl configtest     # Ubuntu
sudo httpd -t                  # CentOS

第七步:安装 PHP 支持 (LAMP 栈)

Apache 本身只处理静态 HTML,要运行 PHP 应用(如 WordPress),需安装 PHP 模块。

Ubuntu:

sudo apt install php libapache2-mod-php php-mysql
sudo systemctl restart apache2

CentOS:

sudo yum install php php-mysqlnd
sudo systemctl restart httpd

测试 PHP:
/var/www/html/ 下创建 info.php

<?php phpinfo(); ?>

访问 http://你的IP/info.php 查看 PHP 信息,测试后建议删除该文件以确保安全。


第八步:安全优化建议

  1. 隐藏版本信息
    编辑主配置文件,添加:

    ServerTokens Prod
    ServerSignature Off
  2. 禁止目录浏览
    确保 Options 中没有 Indexes,或显式关闭:

    Linux Apache教程哪里学?Apache配置虚拟主机详解

    Options -Indexes
  3. 使用 HTTPS (SSL/TLS)
    强烈建议安装 SSL 证书,推荐使用 Let’s Encrypt 免费证书:

    # 安装 certbot
    sudo apt install certbot python3-certbot-apache  # Ubuntu
    sudo yum install certbot python3-certbot-apache  # CentOS
    # 自动配置 SSL
    sudo certbot --apache -d example.com -d www.example.com
  4. 限制访问
    通过 .htaccess 或配置文件限制特定 IP 或路径的访问。


常见问题排查

问题 可能原因 解决方案
403 Forbidden 权限错误 检查文件所有者和权限 (chown, chmod)
404 Not Found 路径错误 检查 DocumentRoot 和文件是否存在
500 Internal Server Error 配置错误/PHP 错误 查看错误日志 (/var/log/apache2/error.log)
无法访问网站 防火墙/SELinux 检查防火墙规则或 SELinux 状态 (setenforce 0 测试)

下一步学习建议

  1. 学习 Nginx:对比 Apache 和 Nginx 的优缺点。
  2. 配置反向代理:使用 Apache 作为前端,后端连接 Node.js 或 Python 应用。
  3. 自动化部署:结合 Git 和 CI/CD 工具实现自动部署。

如果您有具体的配置需求(如配置 HTTPS、反向代理、负载均衡等),欢迎继续提问!

首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/484339.html

(0)
Python国家是什么?Python国家有哪些
上一篇 2026年7月12日 01:48
python -u参数作用是什么,python运行参数-u详解
下一篇 2026年7月12日 01:50

相关推荐

  • linux find参数怎么用?linux find命令查找文件长尾词

    Linux find 命令是系统管理员定位文件的终极利器,掌握其参数组合能解决99%的文件查找与批量处理需求,在 Linux 的日常运维和开发工作中,面对成千上万个目录和文件,手动搜索无异于大海捞针,find 命令之所以成为行业标准,是因为它不仅能搜索文件名,还能基于文件属性、权限、时间甚至内容进行搜索,对于初……

    2026年7月4日
    15410
  • linux git github怎么配置?git连接github教程

    Linux环境下使用Git管理代码并同步至GitHub,核心在于配置SSH密钥、初始化仓库、编写.gitignore文件以及通过命令行完成提交与推送的全流程操作,在2026年的开发环境中,Linux依然是服务器端和开发者工作站的绝对主力,Git作为分布式版本控制系统的基石,与GitHub这一全球最大代码托管平台……

    2026年7月6日
    16710
  • SUSE Linux如何安装Oracle?SUSE Linux安装Oracle数据库详细教程

    在SUSE Linux环境下部署Oracle数据库,核心在于利用SUSE的HA高可用特性与Oracle RAC集群技术深度整合,并通过严格的内核参数调优与补丁管理,实现金融级的高可用性与性能稳定性,许多企业在构建核心业务系统时,常面临操作系统与数据库软件兼容性的焦虑,SUSE Linux Enterprise……

    2026年7月5日
    7210
  • Linux如何处理多个信号?Linux信号处理机制详解

    Linux系统中信号是进程间通信的轻量级机制,通过kill命令或系统调用发送,默认终止进程,但可通过信号处理函数自定义行为,理解信号掩码和默认动作是掌握其核心逻辑的关键,在Linux的进程管理世界里,信号(Signal)就像是一个个急促的敲门声,它不需要复杂的握手协议,也不占用大量内存带宽,却能瞬间改变一个进程……

    2026年7月8日
    17800
  • Linux系统如何支持GBK编码?Linux中GBK转UTF8方法

    是的,Linux 完全支持 GBK 编码,虽然 Linux 系统(尤其是现代发行版如 Ubuntu、CentOS、Debian 等)的默认系统语言环境通常是 UTF-8,但通过安装相应的字符集包和配置 locale,可以完美支持 GBK(以及其子集 GB2312、GB18030),以下是详细说明和配置方法:为什……

    2026年7月10日
    5200
  • Linux串口名怎么看?Linux串口命名规则详解

    Linux系统中的串口设备名并非固定不变,通常遵循/dev/ttyS(传统UART)或/dev/ttyUSB(USB转串口)的命名规律,具体名称需通过ls命令或dmesg日志实时确认,在嵌入式开发和物联网运维中,串口通信是最基础也最关键的调试手段,很多初学者面对终端里跳出来的设备节点感到困惑,明明插入了设备,却……

    2026年7月9日
    16400
  • linux根路径在哪里?linux根目录详解

    Linux根路径即“/”,它是整个文件系统的唯一入口和最高层级目录,所有文件、设备、进程配置均挂载于此,它是Linux系统的绝对起点,想象一下,如果把Linux操作系统比作一座庞大的摩天大楼,那么根路径“/”就是这座大楼的地基和总入口,无论你身处哪一层楼(哪个子目录),最终都要追溯到这个唯一的起点,对于刚接触L……

    2026年7月6日
    17400
  • linux部署oa教程难吗?linux部署oa系统详细步骤

    在Linux环境下部署OA系统,首选Nginx+Tomcat/Java后端+MySQL架构,配合Docker容器化部署可显著提升稳定性与运维效率,整体实施周期通常控制在1-2周内,许多企业在数字化转型初期,往往纠结于选择Windows Server还是Linux作为OA系统的运行底座,业内专家指出,Linux凭……

    2026年7月7日
    9310
  • linux下rar和zip怎么解压?linux解压rar和zip文件命令

    在Linux环境下,RAR格式因专利限制需安装专用工具,而ZIP作为开源标准无需额外软件即可原生支持,日常归档优先推荐ZIP,解压RAR文件则需配置第三方库,Linux下压缩格式的核心差异与选择逻辑在Linux服务器运维和日常文件管理中,压缩工具的选择往往决定了效率的上限,许多新手用户常陷入“RAR比ZIP压缩……

    2026年7月5日
    4600
  • Linux Mint乱码怎么解决?Linux Mint中文显示乱码怎么办

    Linux Mint 出现乱码的核心原因通常是系统缺失中文字体或语言包未正确配置,通过安装中文字体包并重启会话即可彻底解决,在 Linux 生态中,Linux Mint 凭借其对新手友好的界面和基于 Ubuntu 的稳定内核,成为了许多用户从 Windows 过渡的首选,初次接触 Linux 的用户往往会在安装……

    2026年7月7日
    19300

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注