Linux VPS下的Apache的站点绑定
RasHost VPS允许客户在一个VPS上绑定无限个站点。本文讲述在Ubuntu和Debian这两种Linux操作系统下,如果给Apache绑定站点。
Debian/Ubuntu下Apache的配置文件知识
Debian/Ubuntu的apache的配置文件的管理方式是一样的,Ubuntu本身就是基于Debian的,所以很多配置和Debian几乎一模一样。Debian/Ubuntu的apache配置文件都在/etc/apache2目录下。/etc/apache2下面有几个配置文件,还有几个子目录。/etc/apache2下面的配置文件逐个解释如下:
- /etc/apache2/apache2.conf
- 主配置文件,不精通apache不要修改此文件
- /etc/apache2/httpd.conf
- 这个文件的存在是为了保持兼容性,即使你精通apache,我也建议不要修改此文件
- /etc/apache2/ports.conf
- 这个文件用来配置apache的监听的端口,不精通者请不要修改
/etc/apache2下面的几个目录解释如下:
- /etc/apache2/conf.d
- apache会读取这个目录下的任何文件,这些文件的内容都是配置文件的一部分,不建议修改此目录下的任何内容
- /etc/apache2/mods-available
- 这个目录下是一些零碎的配置文件,不建议修改,apache不会读取此目录下的文件。该目录下的文件一般都是某个apache模块的配置文件
- /etc/apache2/mods-enabled
- apache会读取这个目录下的任何文件,这些文件的内容都是配置文件的一部分,不建议修改此目录下的任何内容。该目录下的文件一般都是某个apache模块的配置文件
- /etc/apache2/sites-available
- 这个目录下是一些零碎的配置文件,不建议修改,apache不会读取此目录下的文件,该目录下的文件一般都是某个站点的配置文件
- /etc/apache2/sites-enabled
- apache会读取这个目录下的任何文件,这些文件的内容都是配置文件的一部分,不建议修改此目录下的任何内容,该目录下的文件一般都是某个站点的配置文件
从上面的列表可以看出,mods-available和mods-enabled这两个目录的区别是apache是否去读取这个目录。有个疑问:如果apache从来不读取mods-available目录,那要它何用?答案是mods-available下存放所有apache模块的配置文件,但这些模块不一定是激活的,激活的模块的配置文件链接到mods-enabled下面,如果没有链接到mods-enabled下面,那肯定是一些没有激活的模块。a2enmod命令可以列出mods-available下面的所有模块,管理员可以选择激活哪个模块,激活之后的模块就会在mods-enabled下面添加一个链接。
同理,sites-available和sites-enabled这两个目录也是这样的原理,a2ensite命令可以列出sites-available下存在的站点文件,可以创建站点文件的链接到sites-enabled目录下。
a2enmod == Apache2 ENable MODule
a2ensite == Apache2 ENable SITE
缺省情况下,sites-available下只有一个文件default,sites-available/default链接到sites-enabled目录下的链接名为000-default。apache的习惯是一个站点一个配置文件,但我们为了方便管理,把所有的站点的配置都保存到default这个文件里面。
怎样创建新站点
- 确定新站点的域名和别名,域名是必须的,别名可以没有,别名也是域名,只不过不是主域名而已。比如我的站点域名是rashost.com,别名有两个,分别是rashost.com和home.rashost.com。
- 更改域名和别名的DNS,解析到VPS的IP地址。比如到rashost.com的域名注册商的控制面板里面修改上面三个DNS记录,都指向我的VPS的IP地址。
- 等待域名更改生效,这个过程通常是0到48小时。运行ping命令可以查看域名指向是否更改过来,比如:ping rashost.com,如果显示的IP是VPS的IP,则表明生效了
- 用root用户SSH登录到VPS,运行命令创建新用户: adduser rashost.com ,更改密码: passwd rashost.com。修改/etc/apache2/sites-available/default文件,在文件的末尾加入下面这段配置后运行/etc/init.d/apache2 force-reload重新启动apache
- 用新用户rashost.com登录到VPS,运行命令 mkdir public_html 创建public_html目录
- 通过FTP,把网页文件传送到public_html目录下
- 然后就可以通过浏览器访问新站点了
ServerName rashost.com
ServerAlias rashost.com home.rashost.com
DocumentRoot /home/rashost.com/public_html/
Comments
nevermind (not verified)
Tue, 2008-07-08 01:25
Permalink
谢谢你提供的资料 还有一个不知道的,
谢谢你提供的资料
还有一个不知道的,
就是如何更改已绑定的域名
JHO (not verified)
Tue, 2008-07-08 02:03
Permalink
我想问一下,我要把域名绑定到另一个目录应该怎样修改呢?例如
我想问一下,我要把域名绑定到另一个目录应该怎样修改呢?例如:domain.com 和 www.domain.com 都绑定在/home/www.domain.com/public_html/ 下,但我安装了phpmyadmin 我新在/home/www.domain.com/下创建一个目录:phpmyadmin 把:http://db.domain.com 绑定到:/home/www.domain.com/phpmyadmin/下,怎么操作呢?
admin (not verified)
Tue, 2008-07-08 08:32
Permalink
在一个已经存在的站点添加一个新的域名,只需要在配置文件的S
在一个已经存在的站点添加一个新的域名,只需要在配置文件的ServerAlias这一行后面加上新的域名即可。像你说的db.domain.name帮定到/home/www.domain.com/phpmyadmin,需要重新配置一个新站点。这种情况建议把phpmyadmin下面的文件(不是phpmyadmin目录)单独放到比如:/home/db.domain.com/public_html下面
admin (not verified)
Tue, 2008-07-08 08:33
Permalink
对于更改已经帮定的域名,需要修改配置文件中的ServerN
对于更改已经帮定的域名,需要修改配置文件中的ServerName或者ServerAlias开头的行,修改该行中的域名即可
JHO (not verified)
Tue, 2008-07-08 12:06
Permalink
能举个例子吗?例如: 像你所说的,www.domain.c
能举个例子吗?例如:
像你所说的,www.domain.com 和 domain.com 都绑定在/home/www.domain.com/public_html/上,设置像你的:
ServerName www.domain.com
ServerAlias domain.com www.domain.com
DocumentRoot /home/www.domain.com/public_html/
那我要在配置文件中再设置一个:db.domain.com 域名绑定在:/home/db.domain.com/public_html下,像你所说的只要在ServerAlias行后面加上域名,这样不对啊,因为加了域名还要添加目录,系怎么去公辩那个域名绑定在那一个目录上呢,能举个例子说明一下吗?
nevermind (not verified)
Tue, 2008-07-08 12:19
Permalink
如何修改配置文件?
如何修改配置文件?
JHO (not verified)
Tue, 2008-07-08 12:27
Permalink
用vim命令,不过我也不知道怎样去修改指定目录的某个文件,
用vim命令,不过我也不知道怎样去修改指定目录的某个文件,噢噢,还望可以再指导一下!
admin (not verified)
Tue, 2008-07-08 12:53
Permalink
不会vim没关系,用winscp来修改Linux
不会vim没关系,用winscp来修改Linux VPS下的配置文件: http://rashost.com/blog/linux-winscp/
admin (not verified)
Tue, 2008-07-08 12:57
Permalink
JHO你好,可以这样配置: ServerName
JHO你好,可以这样配置:
ServerName db.my.com
DocumentRoot /home/db.my.com/public_html/
ServerAlias可以为不要的
jho (not verified)
Tue, 2008-07-08 14:03
Permalink
我还是不明白,原来本来就有绑定域名的置配文件怎么添加,你现
我还是不明白,原来本来就有绑定域名的置配文件怎么添加,你现在的是单独的一个域名绑定在一个目录上,我想要你举例的是两个不同的域名绑定在两个不同的目录上是怎么编写~~