如何配置Apache虚拟主机在CentOS 8
Apache虚拟主机可让您在一台计算机上运行多个网站。使用虚拟主机,您可以指定站点文档的根目录,即包含网站文件的目录,为每个站点创建单独的安全策略,使用不同的SSL证书等等。
本教程说明如何配置Apache虚拟主机在CentOS 8。包括创建Apache的文档根目录,创建Apache虚拟主机,说明Apache虚拟主机常见指令如DocumentRoot,ServerName,Directory。自定义Apache日志格式与存储目录。使用apachectl
命令验证配置文件语法。
先决条件
在继续学习本教程之前,请确保您满足这些要求,一个域名指向您的服务器IP。已经在CentOS系统上安装的Apache。您以root或具有sudo权限的用户登录。
创建目录结构
文档根目录DocumentRoot
是一个目录,用于存储指向该域名的网站文件,以响应请求。你可以将文档根目录设置为所需的任何位置,但apache
用户必须具有读取权限。
我们将使用以下目录结构作为示例,具体目录结构请参数自己需求而定:
/var/www/├── example.com
│ └── public_html
├── example2.com
│ └── public_html
├── example3.com
│ └── public_html
对于将在服务器上托管的每个域,我们将在/var/www
中创建一个单独的目录。在域目录中,我们将创建public_html
目录,该目录将成为指向该域名的文档根目录并存储该网站的文件。
我们将使用域名example.com
作为示例创建一个Apache主机,首先从为域名example.com
使用mkdir命令创建文档根目录。你将运行以下命令:
sudo mkdir -p /var/www/example.com/public_html
出于测试目的,使用你喜欢的编辑器,在域的文档根目录/var/www/example.com/public_html
中创建一个index.html
文件,在本教程我们将使用vim编辑器创建文件index.html
:
sudo vim /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>
该index.html
文件非常简单,在浏览器打开仅显示Success! example.com home page!
。修改完成后,保存并退出vim编辑器。
为避免权限错误的问题,请使用chown命令将文档根目录的所有文件更改为apache
用户所有,如果文件存在权限问题,Apache服务器将会返回HTTP状态码为500内部服务器错误。
以下chown命令将递归修改目录/var/www/example.com
目录下的所有文件,并归apache
用户所拥有:
sudo chown -R apache: /var/www/example.com
创建虚拟主机
有几种方法可以设置虚拟主机。第一种是将所有虚拟主机指令添加到一个文件中,第二种是为每个虚拟主机指令创建一个新的配置文件。通常,您应该选择第二种方法,因为这种方法更易于维护。
默认情况下,Apache会加载/etc/httpd/conf.d/
目录中所有以.conf
结尾的配置文件。要为指定的网站创建Apache虚拟主机,你可以在改目录添加以.conf
结尾的文件。
例如我们将为example.com
创建虚拟主机配置文件,请使用你喜欢的编辑器创建虚拟主机配置之/etc/httpd/conf.d/example.com.conf
。在本教程我们将继续使用vim编辑器创建文件/etc/httpd/conf.d/example.com.conf
。
请使用root或者sudo用户运行以下vim
命令创建文件example.com.conf
。
sudo vim /etc/httpd/conf.d/example.com.conf
复制并粘帖以下内容到/etc/httpd/conf.d/example.com.conf
虚拟主机配置文件中:
<VirtualHost *:80> ServerName example.com
ServerAlias www.example.com
ServerAdmin [email protected]
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
指令是Apache虚拟主机所使用的域名。ServerAlias
指令允许你为Apache虚拟主机指定多个域名或者子域。例如www
子域。
DocumentRoot
指令设置Apache虚拟主机文档根目录,当在浏览器打开你的域名时,将此目录检索文件。
Options
指令控制Apache虚拟主机每个目录的能力,例如目录是否可索引。是否跟随软连接,包含其它Apache模块,是否允许执行CGI脚本等。
-Indexes
表示防止列出目录。FollowSymLinks
此选项告诉Web服务器遵循符号链接。AllowOverride
指定.htaccess
文件中声明的指令可以覆盖配置指令。
最后两行指定日志文件的存储位置,这里分别定义错误日志文件和自定义文件的位置。ErrorLog
错误日志文件保存在/var/log/httpd/example.com-error.log
。CustomLog
还允许你指定日志格式,这里使用Apache预设日志格式combined
。
现在你已经了解每一个选项含义,当修改完成后,保存并退出vim编辑器。对于配置最后需要值得参考的是。您可以根据需要命名配置文件。最佳做法是将域名用作虚拟主机配置文件的名称。
当完成对Apache配置文件修改后,第一件事是首先测试所有Apache配置文件是否正确,不是重启Apache以验证配置是否可用。
Apache提供apachectl
命令可用于对配置文件语法的验证,使用以下apachectl
命令测试配置文件的语法:
sudo apachectl configtest
如果没有错误,则输出应如下所示:
Syntax OK
要激活新创建的虚拟主机,请使用以下systemctl
命令重新启动Apache服务:
sudo systemctl restart httpd
在浏览器打开http://example.com
,你将会看到Success! example.com home page!
。
结论
在本教程中,我们向您展示了如何在CentOS 8上创建Apache虚拟主机配置文件。您可以重复上述步骤,并为所有域名创建其它虚拟主机。如有任何疑问,请随时发表评论。
以上是 如何配置Apache虚拟主机在CentOS 8 的全部内容, 来源链接: utcz.com/z/507597.html