Drupal 允许你让多个网站使用同一套 Drupal 的代码,这样你可以节省维护网站的时间,你只需要升级一个 Drupal ,为一个 Drupal 打补丁。
Drupal 实现多网站有很多方法,这篇文章介绍一个,使用一套 Drupal 代码,多个数据库,网站之间不共享内容与用户。
应用情境:
情境一:你是一个自由职业者,为很多客户使用Drupal构建网站,你可以用Drupal多网站的方法减轻维护网站的工作量。因为你只需要维护一套Drupal代码。
情境二:你购买了一个虚拟主机,主机只允许你绑定一个子目录,但允许你在同一目录下绑定多个域名,这样,你可以使用Drupal多网站的方法,在这个虚拟主机上创建多个不同的网站,可以节省你的成本。
文章简介:
这篇文章介绍了在Windows系统的本地电脑上测试Drupal多网站的技巧,同样适用于真正在互联网上的环境。
- 修改Windows系统的Host文件,虚拟两个域名指向本地电脑。
- 下载并安装WAMP
- 配置WAMP虚拟主机
- 下载并安装Drupal 7
让虚拟的域名指向你的电脑
为了实验多网站的技巧,我们需要至少两个不同的域名,但是由于我们在本地电脑上测试,一般来说本地电脑并没有一个固定的IP地址,所以,让真正的域名指向你的电脑上的IP会有些困难。
解决的办法是修改电脑的HOST文件,添加两个虚拟的域名,让他指向你的本地电脑,这样会骗过浏览器。也就是在浏览器里输入你虚拟的域名的时候,打开的是你自己电脑上的网站。
具体的方法
使用记事本或其它文本编辑软件,打开
C:\Windows\System32\drivers\etc\hosts
添加
127.0.0.1 ninghao-test-drupal-1.com www.ninghao-test-drupal-1.com 127.0.0.1 ninghao-test-drupal-2.com www.ninghao-test-drupal-2.com
这样我们就虚拟了两个域名,ninghao-test-drupal-1.com 和 ninghao-test-drupal-2.com。
你可以在这里输入任何你想要虚拟的域名,任何域名都可以。但要记住,你打开这些域名的时候,实际会被带回你自己的电脑上。
配置WAMP的虚拟主机
启用WAMP以后,点击桌面右下角WAMP的小图标,选择Apache -> httpd.conf,这会打开Apache的配置文件。
然后找到:
#Include conf/extra/httpd-vhosts.conf
去掉#号,像这样:
Include conf/extra/httpd-vhosts.conf
保存修改之后的httpd.conf文件。
然后打开httpd-vhosts.conf文件,位置在:
C:\wamp\bin\apache\Apache2.2.21\conf\extra\httpd-vhosts.conf
(我的wamp安装在了C盘,你的httpd-vhosts.conf文件的位置可能会不同,找不到的话可以搜索一下文件名称)
清空里面的内容,复制下面的代码到这个文件里:
NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin webmaster@ninghao-test-drupal-1.com DocumentRoot "C:/wamp/www" ServerName localhost ErrorLog "c:/wamp/logs/error.log" CustomLog "c:/wamp/logs/access.log" common </VirtualHost> <VirtualHost *:80> ServerAdmin webmaster@ninghao-test-drupal-1.com DocumentRoot "C:/wamp/www/drupal-7" ServerName ninghao-test-drupal-1.com ServerAlias www.ninghao-test-drupal-1.com ErrorLog "c:/wamp/logs/ninghao-test-drupal-1.com-error.log" CustomLog "c:/wamp/logs/ninghao-test-drupal-1.com-access.log" common </VirtualHost> <VirtualHost *:80> ServerAdmin webmaster@ninghao-test-drupal-2.com DocumentRoot "C:/wamp/www/drupal-7" ServerName ninghao-test-drupal-2.com ServerAlias www.ninghao-test-drupal-2.com ErrorLog "c:/wamp/logs/ninghao-test-drupal-2.com-error.log" CustomLog "c:/wamp/logs/ninghao-test-drupal-2.com-access.log" common </VirtualHost>
解释:
上面这些代码的意思就是为Apache添加了三个虚拟主机,localhost指向C:/wamp/www的目录下,ninghao-test-drupal-1.com 与 ninghao-test-drupal-2.com指向C:/wamp/www/drupal-7这个目录下。
因为我们的多网站使用同一套Drupal代码,所以多个域名需要绑定到同一个目录下,也就是Drupal所在的目录。
Drupal会根据说过来的地址,自动分配应该显示哪一个网站的内容。
重启WAMP服务
配置好以后,重新启动WAMP服务。这样WAMP会重新加载新的配置文件。
准备Drupal
下载Drupal 7 ,解压以后把Drupal的代码放在drupal-7这个目录下(drupal-7可以是任何你想要的名称),然后在sites目录下,分别创建与域名同名的文件夹:
ninghao-test-drupal-1.com ninghao-test-drupal-2.com
这个例子就是在C:\wamp\www\drupal-7\sites目录下,创建两个新的文件夹ninghao-test-drupal-1.com 和ninghao-test-drupal-2.com 。
Drupal会自动把不同网站的配置文件分别放在这两个目录下。
安装Drupal
为Drupal网站创建数据库,你可以为不同的网站创建不同的数据库,也可以创建一个数据库,存放不同网站的数据表。如果你只想使用同一数据库,你需要在安装的时候,为不同的Drupal网站指定不同的数据表前缀。
创建好数据库以后就可以去安装Drupal了。
在浏览器里输入地址:http://ninghao-test-drupal-1.com ,这会打开一般的 Drupal 安装向导。根据提示,一步一步进行安装。
安装好以后,打开另外一个网站的地址:http://ninghao-test-drupal-2.com ,同样的方法,再安装一次Drupal。
完成以后你会发现 ninghao-test-drupal-1.com 与 ninghao-test-drupal-2.com目录下会多出一个settings.php的配置文件。
你可以为不同的网站安装不同的主题与模块。如果你打算让这些网站共享一些模块,就把模块放在sites/all/modules的目录下面,如果你想单独为某个网站安装模块,把模块放在sites/想要安装的网站的目录/modules 的目录下面。
总结
这个方法使用一套Drupal代码,多个数据库,来实现Drupal多网站。网站之间不共享内容与用户。
如果你打算在网站之间共享用户与内容,可以试试Domain Access这个模块,使用这个模块同样可以实现多网站,网站之间会共享内容与用户。
Drupal
评论
视频不错,可惜包年太贵。
要是能按看的视频数量收费就好了。
12 年 5 个月 以前
与学到的知识相比,我认为还是很超值的,现在599能买几本书呀?
12 年 4 个月 以前
顶,这个价格非常超值的!最好的投资方式,就是投资自己的大脑!
无论如何,还是要顶一下宁皓网的。
同时,估计小雪在宁皓的背后,付出了巨大的心血!羡慕:)
12 年 2 周 以前
讲解简明易了,值!
11 年 10 个月 以前
皓哥 按照上面的说明我尝试成功了 嘿嘿
11 年 1个月 以前
这个只限于新建drupal网站吗?我正在运行的网站能不能这样做呢?
8 年 8 个月 以前
您从本地环境上试一下。
8 年 8 个月 以前
新安装的drupal 会生产新的setting.php 可正在运行的网站的已经有setting.php 怎么办?
8 年 8 个月 以前
那这两个网站的主题在这两个网站目录下面,还是在原来的地方,sites/themes/这里呢?
8 年 8 个月 以前
这个到是顺心一次就成功了!
8 年 8 个月 以前
同内核不同数据库的两个网站已经弄好了,可两个网站用drush 怎么管理呢?网上找半天没有相关的教程
8 年 8 个月 以前
浩哥,在drupal中用过jasmine吗?
7 年 2 个月 以前
没有啊 :)
7 年 2 个月 以前