在CentOS 7和Ubuntu 16.04上添加Apache虚拟主机

2020年12月30日11:25:19 发表评论 62 次浏览

了解如何将虚拟主机添加到Apache Web服务器。虚拟主机允许你在同一服务器上托管多个单独的网站, 每个网站具有一组单独的目录。

Apache是​​适用于Linux平台的流行且功能强大的Web服务器, 默认情况下已在运行CentOS 7和Ubuntu 14.04的云服务器上安装并运行Apache。你可以根据该服务器托管的所有网站的访问量, 向服务器添加尽可能多的虚拟主机。

注意:对于任何带有Plesk的Cloud Server, 应始终通过Plesk界面添加和管理虚拟主机。看我们的文章在Plesk服务器上添加和管理虚拟主机有关分步说明。

要求

  • 运行CentOS 7或Ubuntu 16.04的云服务器。
  • Apache Web服务器已安装并正在运行。

要检查服务器上Apache的状态, 请使用以下命令:

  • CentOS 7:sudo systemctl状态httpd
  • Ubuntu 16.04:sudo systemctl状态apache2

如果Apache已安装并正在运行, 你将看到类似以下的输出:

user@localhost:~# systemctl status apache2
● apache2.service - LSB: Apache2 web server
  Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           └─apache2-systemd.conf
   Active: active (running) since Mon 2016-11-28 22:18:46 UTC; 1 weeks 1 days ago
     Docs: man:systemd-sysv-generator(8)
  Process: 2893 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
  Process: 50598 ExecReload=/etc/init.d/apache2 reload (code=exited, status=0/SUCCESS)
  Process: 2916 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/apache2.service
       ├─ 2934 /usr/sbin/apache2 -k start
       ├─50628 /usr/sbin/apache2 -k start
       ├─50629 /usr/sbin/apache2 -k start
       ├─50630 /usr/sbin/apache2 -k start

Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.

请注意以下行:

Active: active (running) since Mon 2016-11-28 22:18:46 UTC; 1 weeks 1 days ago

这意味着服务器已安装并正在运行。

重新启动Apache

每当对Apache配置文件进行更改时, 都必须重新启动Apache才能使更改生效:

  • CentOS 7:sudo systemctl重新启动httpd
  • Ubuntu 16.04:sudo systemctl重新启动apache2

每个Apache Web服务器都有一个默认站点。除非你已将文件添加到默认站点, 否则这将是标准的" Apache默认页面"。

Apache问题的最常见症状之一是服务器上的所有URL都指向该默认站点。如果配置中有错误, 或者仅需要重新启动Apache, 则可能发生这种情况。

创建目录结构

首先创建目录很重要。如果Apache需要目录并且找不到目录, 则可能导致Apache Web服务器中断, 如上节所述。

尽管你可以在任何地方创建目录, 但按照惯例, 每个站点的目录都位于/ var / www目录, 并以以网站URL命名的目录开始。

为创建目录example.com命令是:

sudo mkdir /var/www/example.com
sudo mkdir /var/www/example.com/html

注意:目录/var/www/example.com/html是你网站的网页放置位置。此目录称为"文档根目录"。

接下来, 将这些目录的所有权更改为Apache用户。

  • CentOS 7:须藤chown -R apache:apache /var/www/example.com
  • Ubuntu 16.04:须藤chown -R www-data:www-data /var/www/example.com

为了通过FTP上传网站文件, html该目录必须由FTP用户拥有。

例如, 如果你的用户使用用户名通过FTP登录do将所有者更改为的命令do是:

  • CentOS 7:须藤chown jdoe:jdoe /var/www/example.com/html
  • Ubuntu 16.04:须藤chown jdoe:jdoe /var/www/example.com/html

添加索引文件

创建一个名称为测试文件index.html在网站的文档根目录中:

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

将以下内容放入此文件:

<html>

  <head>
    <title>Welcome to your new website!</title>
  </head>

  <body>
    <p>Hello, your virtual host is set up correctly.</p>
  </body>

</html>

保存并退出文件。

创建Apache配置文件

Apache配置文件将包含你的虚拟主机的所有指令。根据你的特定需求, 可以将许多配置放入此文件中。首先, 让我们创建一个仅包含基本配置的简单文件:

  • CentOS 7:须藤nano /etc/httpd/conf.d/example.com.conf
  • Ubuntu 16.04:须藤纳米/etc/apache2/sites-available/example.com.conf

将以下内容放入此文件:

<VirtualHost *:80>
 ServerName example.com
 ServerAlias www.example.com
 DocumentRoot /var/www/example.com/html
</VirtualHost>

保存并退出文件。

仅适用于Ubuntu 16.04:使用以下命令创建与此文件的符号链接须藤ln -s /etc/apache2/sites-available/example.com.conf /etc/apache2/sites-enabled/example.com.conf

重新启动Apache以使更改生效:

  • CentOS 7:sudo systemctl重新启动httpd
  • Ubuntu 16.04:sudo systemctl重新启动apache2

Apache完成重新启动后, 请在浏览器中访问该网站。你将看到样本索引页面。

一盏木

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: