基于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 的下载地址:请点这里