基于Debian系统的Apache服务器多站点配置

前言

本文主要讲述在一个基于Debian操作系统和apache服务器的主机上配置多站点的方式
最近搭建的多个站点都是基于debian操作系统, 都是在阿里云上搭建Lamp环境 . 自己在本地也使用Vagrant装载一个debian的box用来作为开发环境中的本地服务器. 本文记录了基于多站点配置是如何做到的

我在阿里云以及Vagrant虚机中都是使用 apt-get install apache2 的方式直接安装的apache服务器.

debian下Apache的配置文件位置

在debian或基于debian的Linux发行版中apache安装后的默认配置文件所在目录都是在/etc/apache2/ 目录下.
在这个目录下有如下目录

mods-available 包含可以使用的模块
mods-enabled  包含已经启用的模块
sites-available  包含可以使用的站点配置
sites-enabled   包含已经启用的站点配置
...

另外:

apache2.conf 是主配置文件
httpd.conf 用户配置文件
...

进行配置

多站点的配置主要在 /etc/apache2/sites-available目录下进行
假如我们需要建立两个名字分别为project1和project2的站点, 那我们可以在sites-available目录下先建立这两个文件(本文中的$号表示shell指示符, 不是输入的部分)

$touch /etc/apache2/sites-available/project1
$touch /etc/apache2/sites-available/project2

然后在project1中写入如下格式内容

<VirtualHost *:80>
  ServerAdmin [email protected]
  ServerName project1.com
  ServerAlias www.project1.com
  DocumentRoot /var/www/project1/
</VirtualHost>

在project2中写入

<VirtualHost *:80>
  ServerAdmin [email protected]
  ServerName project2.com
  ServerAlias www.project2.com
  DocumentRoot /var/www/project2/
</VirtualHost>

这里主要的信息在于ServerName和DocumentRoot . ServerName后面需要填写的站点绑定的域名. DocumentRoot后面填写站点根目录 .
这里的ServerAlias是指站点的别名, ServerAdmin是站点管理员的信息

我们在刚才在sites-available目录下建立的project1和project2文件中分别写上了这两个站点的根目录地址, 那么我们就要创建这两个目录

$cd /var/www
$mkdir project1
$mkdir project2

然后我们就可以将project1.com和project2.com这两个域名都解析到我们的主机IP (这里project1.com 和 project2.com 当然是虚拟的, 自己配置的时候根据实际情况来就可以) .
域名解析配置完成后, 我们需要使用以下指令启用站点

$a2ensite project1
$a2ensite project2

当我们执行了这两个命令之后会发现在 /etc/apache2/sites-enable/ 目录下出现了 project1 和 project2 两个link文件. 前面说过sites-enable是包含已经启用的站点配置的文件夹, 这就代表着. 我们通过a2ensite命令启用sites-available目录中的站点配置后, apache就会在sites-enable中创建一个对应的配置连接 . 那这样的话, 配置模块的 mods-available和mods-enable 目录是否也有同样的特点呢 ???

问题大家自己思考, 我们接下来重启apache服务器

service apache2 restart

然后分别上传文件到这两个站点的根目录下, 就可以通过域名进行访问了. 这样就实现了在一个主机上配置多个站点

关于配置命令

Apache 的详细介绍:请点这里
Apache 的下载地址:请点这里

相关推荐