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 test-1.com www.test-1.com
127.0.0.1 test-2.com www.test-2.com

这样我们就虚拟了两个域名,ninghao-test-drupal-1.com 和 ninghao-test-drupal-2.com。

你可以在这里输入任何你想要虚拟的域名,任何域名都可以。但要记住,你打开这些域名的时候,实际会被带回你自己的电脑上。

配置nginx的虚拟主机

   server {
        listen       80;
        server_name  test-1.com www.test-1.com;
        location / {
            root   E:\phpfind\WWW\drupal;
            index  index.html index.htm index.php;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        location ~ \.php$ {
            root          E:\phpfind\WWW\drupal;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
    }
   
    server {
        listen       80;
        server_name  test-2.com www.test-2.com;
        location / {
            root   E:\phpfind\WWW\drupal;
            index  index.html index.htm index.php;
            autoindex on;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        location ~ \.php$ {
            root          E:\phpfind\WWW\drupal;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
    }

准备Drupal

下载Drupal 7 ,解压以后把Drupal的代码放在drupal-7这个目录下(drupal-7可以是任何你想要的名称),然后在sites目录下,分别创建与域名同名的文件夹:

test-1.com
test-2.com

这个例子就是在C:\wamp\www\drupal-7\sites目录下,创建两个新的文件夹test-1.com 和test-2.com 。

Drupal会自动把不同网站的配置文件分别放在这两个目录下。

安装Drupal

为Drupal网站创建数据库,你可以为不同的网站创建不同的数据库,也可以创建一个数据库,存放不同网站的数据表。如果你只想使用同一数据库,你需要在安装的时候,为不同的Drupal网站指定不同的数据表前缀。

创建好数据库以后就可以去安装Drupal了。

在浏览器里输入地址:http://test-1.com ,这会打开一般的 Drupal 安装向导。根据提示,一步一步进行安装。

安装好以后,打开另外一个网站的地址:http://test-2.com ,同样的方法,再安装一次Drupal。

完成以后你会发现 test-1.com 与 test-2.com目录下会多出一个settings.php的配置文件。

你可以为不同的网站安装不同的主题与模块。如果你打算让这些网站共享一些模块,就把模块放在sites/all/modules的目录下面,如果你想单独为某个网站安装模块,把模块放在sites/想要安装的网站的目录/modules 的目录下面。

总结

这个方法使用一套Drupal代码,多个数据库,来实现Drupal多网站。网站之间不共享内容与用户。

如果你打算在网站之间共享用户与内容,可以试试Domain Access这个模块,使用这个模块同样可以实现多网站,网站之间会共享内容与用户。

继续

omain access模块在drupal多站点应用算是广泛适用的了。

它的优点是公用一套文件系统和一个数据库,这样在更新升级时就只更新一套drupal文件就可以了。

可以说这篇记录算是domain access模块的最初级最简单的教程了,因为本人不会php代码什么的,所有都是傻瓜操作。

模块下载地址http://drupal.org/project/domain

和其他模块安装一样,将文件解压到sites/all/modules/domain,启用前需注意的就是要在settings.php文件加入一句:

/**

* Add the domain module setup routine.

*/

include DRUPAL_ROOT . ‘/sites/all/modules/domain/settings.inc’;

这一句在readme.txt文件里,install.txt文件也有。根据介绍,通常这一句加在settings.php文件最后就可以了。然后到module里启用。

如果希望drupal多站点同步登陆的话,还需要改setting.php文件里的cookie domain,如下

# $cookie_domain = ‘example.com’;

将注释#删掉,把example.com改成自己域名就可以了

猜你喜欢

转载自hao3721.iteye.com/blog/1915389
今日推荐