如何设置在 CentOS 8 上的 Apache 虚拟主机

pache 虚拟主机允许您在一台计算机上运行多个网站。使用虚拟主机,您可以指定站点文档根目录(包含网站文件的目录)、为每个站点创建单独的安全策略、使用不同的 SSL 证书等等。

先决条件

在继续本教程之前,请确保您已满足以下要求:

  • 指向公共服务器 IP 的域名。
  • 在 CentOS 系统上安装的 Apache
  • 您以 root 或用户状态登录,具有 sudo 权限。

创建目录结构

文档根目录是存储和提供域名网站文件以响应请求的目录。文档根可以设置为任何要的位置。

我们将使用以下目录结构:

/var/www/
├── example.com
│   └── public_html
├── example2.com
│   └── public_html
├── example3.com
│   └── public_html

对于将托管在服务器上的每个域,我们将在 中创建一个单独的目录。在域目录中,我们将创建一个目录,该目录将成为域文档根目录,并将存储域网站文件。/var/wwwpublic_html

让我们从为域创建根目录开始:example.com

sudo mkdir -p /var/www/example.com/public_html

出于测试目的,在域的文档根目录中创建一个文件:index.html

sudo nano /var/www/example.com/public_html/index.html

复制并粘贴以下代码到文件中:

/var/www/example.com/public_html/index.html

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Welcome to example.com</title>
  </head>
  <body>
    <h1>Success! example.com home page!</h1>
  </body>
</html>

为了避免任何权限问题,请将域文档根目录的所有权更改为用户:apache

sudo chown -R apache: /var/www/example.com

创建虚拟主机文件

有几种方法可以设置虚拟主机。您可以在单个文件中添加所有虚拟主机指令,也可以为每个虚拟主机指令创建新的配置文件。通常,您应该更喜欢第二种方法,这种方法更可维护。

默认情况下,Apache 配置为从目录加载以结尾的所有配置文件。.conf/etc/httpd/conf.d/

要为特定网站创建虚拟主机,请打开您选择的编辑器并创建以下基本虚拟主机配置文件:

/etc/httpd/conf.d/示例.com.conf

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    ServerAdmin webmaster@example.com
    DocumentRoot /var/www/example.com/public_html

    <Directory /var/www/example.com/public_html>
        Options -Indexes +FollowSymLinks
        AllowOverride All
    </Directory>

    ErrorLog /var/log/httpd/example.com-error.log
    CustomLog /var/log/httpd/example.com-access.log combined
</VirtualHost>
  • ServerName:将为此使用虚拟主机配置的域的名称。这是您的域名。
  • ServerAlias:还将使用虚拟主机配置的所有其他域,如子域。www
  • DocumentRoot:Apache 从该目录为域文件服务。
  • Options:此指令控制每个目录服务器功能。-Indexes:防止目录列表。FollowSymLinks:此选项告诉 Web 服务器跟随符号链接。
  • AllowOverride:指定文件中声明的指令可以覆盖配置指令。.htaccess
  • ErrorLog,:位置 od 日志文件。CustomLog

根据您的需要编辑文件并保存它。

配置文件名必须以 结束。您可以设置配置文件的名称。最佳做法是使用域名作为虚拟主机配置文件的名称。.conf

使用以下方法测试配置文件语法:

sudo apachectl configtest

 

如果没有错误,输出应看起来像:

Syntax OK

要激活新创建的虚拟主机,请使用以下方法重新启动 Apache 服务:

sudo systemctl restart httpd

打开以验证一切是否正常。http://example.com

get-185

 

原创文章,作者:校长,如若转载,请注明出处:https://www.yundongfang.com/Yun35888.html

(0)
打赏 微信扫一扫不于多少! 微信扫一扫不于多少! 支付宝扫一扫礼轻情意重 支付宝扫一扫礼轻情意重
上一篇 2021年2月4日
下一篇 2021年2月4日

相关推荐