介绍
虚拟主机
虚拟主机是从单个IP地址/服务器托管多个域的一种方式。这对于希望从单个Droplet中托管多于一个网站的人是有用的。网站的访问者将根据他们访问的域显示正确的信息,而在没有正确设置虚拟主机的情况下,所有域将显示相同的信息。给定足够的计算和存储容量,可以添加到服务器的虚拟主机(例如域)的数量没有限制。先决条件
为了运行本教程中的命令,用户必须具有root权限。如果您使用root用户帐户登录到您的Droplet,您不必担心这一点。如果不这样做,你可以看到如何设置了在文章 初始服务器设置 。 此外,您需要在云服务器上安装并运行Apache。如果您尚未安装,可以使用以下命令安装它:sudo apt-get install apache2如果你要托管依赖PHP或MySQL的网站(例如Wordpress),设置LAMP(Linux,Apache,MySQL,PHP)的最简单的方法是运行这个命令:
sudo tasksel install lamp-server
什么是红色表示
一个用户需要输入或自定义的线条将在 红色 troughout本教程! 其余的是复制粘贴。第一步 - 创建新文件夹/目录
第一步是创建一个目录,我们将存储您的新域的文件(和文件夹)。通常,此新目录的名称应该对应于您尝试设置的域的名称,但这不是一个规则。你可以为新目录命名任何你想要的,只要你记得它的名字,因为我们将需要目录路径虚拟主机配置文件。sudo mkdir -p /var/www/example.com
-p标志确保此目录的所有父目录存在,如果它们不存在,它将生成它们。
example.com
是一个占位符地址-您的正确的域名替换它。
第二步 - 授予权限
首先,我们需要将目录的所有权授予Apache正在运行的用户。sudo chown -R www-data:www-data /var/www/example.com接下来,我们需要为目录设置正确的权限,以便所有人都可以访问这些文件。
sudo chmod -R 755 /var/www这是为这一步。
第三步 - 创建页面
我们现在将创建一个示例index.html文件,以便我们可以测试我们的虚拟主机是否正常工作。 对于此步骤,您需要确保安装了nano文本编辑器。sudo apt-get install nano接下来,创建index.html文件。
sudo nano /var/www/example.com/index.html您可以将下面的代码复制并粘贴到新创建的index.html文件。
<html>
<head>
<title>www.example.com</title>
</head>
<body>
<h1>Success: You Have Set Up a Virtual Host</h1>
</body>
</html>
使用Ctrl + O保存并退出,然后按Enter,然后按Ctrl + X。
第四步 - 创建新的虚拟主机配置文件
现在我们将设置虚拟主机配置文件。幸运的是,Ubuntu附带了一个这个配置文件的模板。我们只需要使用下面的命令为我们使用该文件的副本。sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.com.conf
请注意,添加
.conf
到底需要为Ubuntu的13.10,这与以前的版本有所不同的。
第五步 - 修改配置文件
接下来,我们需要修改虚拟主机配置文件以匹配我们的域设置。打开新的配置文件。sudo nano /etc/apache2/sites-available/example.com.conf
当您打开此文件时,您应该收到类似这样的消息。
< VirtualHost *:80> # The ServerName directive sets the request scheme, hostname and port that # the server uses to identify itself. This is used when creating # redirection URLs. In the context of virtual hosts, the ServerName # specifies what hostname must appear in the request's Host: header to # match this virtual host. For the default virtual host (this file) this # value is not decisive as it is used as a last resort host regardless. # However, you must set it for any further virtual host explicitly. #ServerName www.example.com ServerAdmin webmaster@localhost DocumentRoot /var/www # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, # error, crit, alert, emerg. # It is also possible to configure the loglevel for particular # modules, e.g. #LogLevel info ssl:warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined # For most configuration files from conf-available/, which are # enabled or disabled at a global level, it is possible to # include a line for only one particular virtual host. For example the # following line enables the CGI configuration for this host only # after it has been globally disabled with "a2disconf". #Include conf-available/serve-cgi-bin.conf < /VirtualHost>修改此文件以匹配我们的域名的配置很容易。首先,去掉
#
从服务器名称前面的象征,在它前面加上您的域名。这样做应该使线看起来像这样。
ServerName example.com
如果您希望您的网站被访问从多个名称,用
www
在名称,例如,你会希望服务器名行后添加ServerAlias线。
ServerAlias www.example.com
完成上述步骤后,您还需要修改DocumentRoot行以匹配为您的域名创建的目录。
DocumentRoot /var/www/example.com
在您正确执行所有这些步骤后,您的文件应类似于此。
ServerAdmin webmaster@example.com ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/example.com这些都是您需要对此文件进行的所有更改。现在保存并退出。 要激活主机,请使用此命令。
sudo a2ensite example.com
现在重新启动Apache,让您的更改生效。
sudo service apache2 restart
:提交
阿萨德Dhamani