如何在Ubuntu 13.10上设置Apache虚拟主机

介绍

虚拟主机

虚拟主机是从单个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文件。
&lthtml>
  &lthead>
    &lttitle>www.example.com&lt/title>
  &lt/head>
  &ltbody>
    &lth1>Success: You Have Set Up a Virtual Host&lt/h1>
  &lt/body>
&lt/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
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏