Apache配置虚拟主机


这几天不是搞了一个超小鸡嘛用阿帕奇还得配置一下虚拟机以前都是用的宝塔这个还真不是很会

一个虚拟主机,是一个 Apache 配置指令,它允许你在一个服务器上运行多个网站。典型的例子,一个虚拟主机描述了一个网站。
Apache 默认启动了一个虚拟主机。所有域名都指向服务器 IP 地址,匹配了默认的虚拟主机。如果你只托管一个简单的网站,你需要将网站内容上传到/var/www/html,并且编辑虚拟主机配置,/etc/apache2/sites-enabled/000-default.conf文件。
如果你想托管更多网站,你需要为每一个网站创建一个虚拟主机配置。在这一节,我们将会为一个域名"http://example.com"设置网站。你可能需要将"http://example.com"替换成你自己的域名。

第一步就是创建根目录文件夹,域名的网站文件将会被存放在这里并且响应用户请求。运行下面的命令,创建这个文件夹:

mkdir -p /var/www/example.com

为了测试目的,在域名根文件夹下创建一个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 用户(www-data):

chown -R www-data: /var/www/example.com

下一步就是为域名“example.com”创建一个虚拟主机配置。最佳实践就是将每一个虚拟主机配置存储成一个独立的文件。
Apache虚拟主机配置文件存储在/etc/apache2/sites-available目录。标准命名是使用域名来命名配置文件。
打开你的文本编辑器,并且创建下面的文件/etc/apache2/sites-available/example.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 ${APACHE_LOG_DIR}/example.com-error.log
    CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined
</VirtualHost>

Apache 不会读取/etc/apache2/sites-available文件夹下的配置文件,除非它们被链接到/etc/apache2/sites-enabled文件夹。
想要激活虚拟主机配置,使用a2ensite创建一个链接:

a2ensite example.com

测试配置文件,是否有任何语法错误:

apachectl configtest

如果没有任何错误,你将会看到下面的输出:

Syntax OK

重启 Apache 服务,使修改生效:

systemctl restart apache2

最终,想要验证一切都按照预期工作,在你的浏览器中打开http://example.com,你将会看到Success! example.com home page!

声明:小小博客|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - Apache配置虚拟主机


Carpe Diem and Do what I like