centos

CentOS Apache虚拟主机怎么搭建

小樊
38
2025-03-09 13:44:52
栏目: 云计算

在CentOS上搭建Apache虚拟主机的步骤如下:

前期准备工作

  1. 使用远程连接工具登录服务器,或者使用本地虚拟机或云服务器。
  2. 确认系统版本:
    cat /etc/redhat-release
    
    看到"CentOS Linux release 7.x"即为正确版本。
  3. 更新系统组件,避免软件冲突:
    sudo yum update -y && sudo yum upgrade -y
    

安装Apache服务

  1. 安装Apache:
    sudo yum install httpd -y
    
    其中 yum 是 CentOS 的软件包管理器,自动解决依赖关系。

配置Apache服务

  1. Apache的主配置文件路径为 /etc/httpd/conf/httpd.conf
  2. 使用 vim 进行编辑:
    sudo vim /etc/httpd/conf/httpd.conf
    
  3. 修改配置项,例如:
    Listen 80
    ServerName your_domain:80
    DirectoryIndex index.html
    
  4. 保存退出:按 ESC 后输入 :wq

启动Apache服务

  1. 修改完配置文件后,启动并设置开机自启:
    sudo systemctl start httpd
    sudo systemctl enable httpd
    
  2. 检查Apache运行状态:
    systemctl status httpd
    
    看到 “active (running)” 标识表示 httpd 运行成功。

配置防火墙

  1. 放行HTTP/HTTPS服务:
    sudo firewall-cmd --permanent --add-service=http
    sudo firewall-cmd --permanent --add-service=https
    sudo firewall-cmd --reload
    
  2. 验证防火墙规则:
    firewall-cmd --list-all
    

测试页面访问

  1. 在终端,通过命令行快速测试页面:
    curl 127.0.0.1
    
  2. 使用浏览器访问,输入服务器IP地址,看到"Testing 123…"页面即成功!

网站文件管理

  1. Apache的默认网站根目录 /var/www/html/
  2. 编写页面内容,创建测试页面,访问内容是 “Hello World!”:
    echo "<h1>Hello World!</h1>" | sudo tee /var/www/html/index.html
    

虚拟主机配置(重点!)

  1. 什么是虚拟主机?简单来说就是让一个Apache服务器同时托管多个网站,通过不同域名区分访问。
  2. 配置流程(以两个网站为例):
    • 场景说明
      • 网站1:www.company.com → 文件存储在 /var/www/company
      • 网站2:blog.company.com → 文件存储在 /var/www/blog
    • 步骤
      1. 创建网站目录:
        sudo mkdir -p /var/www/{company,blog}
        sudo chown -R apache:apache /var/www/
        
      2. 新建配置文件:
        sudo vim /etc/httpd/conf.d/vhost.conf
        
        输入以下内容:
        <VirtualHost *:80>
            ServerName www.company.com
            DocumentRoot "/var/www/company"
            ErrorLog "/var/log/httpd/company_error.log"
            CustomLog "/var/log/httpd/company_access.log" combined
            <Directory "/var/www/company">
                AllowOverride All
                Require all granted
            </Directory>
        </VirtualHost>
        
        <VirtualHost *:80>
            ServerName blog.company.com
            DocumentRoot "/var/www/blog"
            ErrorLog "/var/log/httpd/blog_error.log"
            CustomLog "/var/log/httpd/blog_access.log" combined
            <Directory "/var/www/blog">
                AllowOverride All
                Require all granted
            </Directory>
        </VirtualHost>
        
      3. 重启Apache服务使配置生效:
        sudo systemctl restart httpd
        

常见问题排查

0
看了该问题的人还看了