你好,游客 登录 注册 搜索
背景:
阅读新闻

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

[日期:2016-12-29] 来源:Linux社区  作者:panzer9 [字体: ]

前言

本文主要讲述在一个基于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 admin@project.com
  ServerName project1.com
  ServerAlias www.project1.com
  DocumentRoot /var/www/project1/
</VirtualHost>

在project2中写入

<VirtualHost *:80>
  ServerAdmin admin@project.com
  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

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

关于配置命令

a2enmod rewrite   启用rewrite模块
a2dismod rewrite   停用rewrite模块
a2ensite siteConfName  启用站点siteConfName
a2dissite siteConfName  停用站点siteConfName

Ubuntu Server 14.04 安装Web服务器(Linux+Apache+MySQL+PHP)  http://www.linuxidc.com/Linux/2015-06/119061.htm

Linux下安装配置PHP环境(Apache2)  http://www.linuxidc.com/Linux/2015-05/118062.htm

Linux下 Apache服务器配置  http://www.linuxidc.com/Linux/2016-06/132025.htm

Ubuntu 13.04 安装 LAMP\Vsftpd\Webmin\phpMyAdmin 服务及设置 http://www.linuxidc.com/Linux/2013-06/86250.htm

CentOS 5.9下编译安装LAMP(Apache 2.2.44+MySQL 5.6.10+PHP 5.4.12) http://www.linuxidc.com/Linux/2013-03/80333p3.htm

Linux下Apache服务器配置 http://www.linuxidc.com/Linux/2016-10/136517.htm

Linux下Apache虚拟主机的配置  http://www.linuxidc.com/Linux/2016-04/130381.htm

Ubuntu下Apache的安装与配置 http://www.linuxidc.com/Linux/2016-11/136841.htm

CentOS 6.5安装Apache-2.4.10及安全配置  http://www.linuxidc.com/Linux/2016-12/137985.htm

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

本文永久更新链接地址http://www.linuxidc.com/Linux/2016-12/138943.htm

linux
本文评论   查看全部评论 (1)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
第 1 楼
* 匿名 发表于 2017/9/19 3:33:07
$a2ensite project1 这一行显示 未找到命令,是不是哪儿写错了,到处的教程都是互相*,没一个能真的照着做成功的