🦄 2024 独立开发者训练营,一起创业!(早鸟优惠在6天后结束)查看介绍 / 立即报名 →

Drupal 7 多网站的设置

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

评论

视频不错,可惜包年太贵。
要是能按看的视频数量收费就好了。

与学到的知识相比,我认为还是很超值的,现在599能买几本书呀?

顶,这个价格非常超值的!最好的投资方式,就是投资自己的大脑!
无论如何,还是要顶一下宁皓网的。

同时,估计小雪在宁皓的背后,付出了巨大的心血!羡慕:)

讲解简明易了,值!

皓哥 按照上面的说明我尝试成功了 嘿嘿

这个只限于新建drupal网站吗?我正在运行的网站能不能这样做呢?

您从本地环境上试一下。

新安装的drupal 会生产新的setting.php 可正在运行的网站的已经有setting.php 怎么办?

那这两个网站的主题在这两个网站目录下面,还是在原来的地方,sites/themes/这里呢?

这个到是顺心一次就成功了!

同内核不同数据库的两个网站已经弄好了,可两个网站用drush 怎么管理呢?网上找半天没有相关的教程

浩哥,在drupal中用过jasmine吗?

没有啊 :)

微信好友

用微信扫描二维码,
加我好友。

微信公众号

用微信扫描二维码,
订阅宁皓网公众号。

240746680

用 QQ 扫描二维码,
加入宁皓网 QQ 群。

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点