如何在发布之前在本地服务器或测试服务器上开发drupal站点

时间:2009-05-31 16:38:04

标签: database svn version-control drupal

(实际站点名称已更改)

我在elephantboarding.com上安装了drupal,它受版本控制。

在svn在megafishoil.com上提交安装后,我在landonwinters.com/elephantboarding中更新了。

但是landonwinters.com/elephantboarding看起来很奇怪,就像它没有正确设置默认主题一样,它是无主题的。它确实有一个登录的地方,它顶部是www.elephantboarding.com。

我认为它与数据库有关...但如果我的landonwinters.com/elephantboarding是megafishoil.com的镜像,如果我可以对landonwinters.com/进行更改,那肯定会很酷。在我更新之前,没有在elephantboarding.com上看到这些变化的大象版。

对于newbness感到抱歉,并提前感谢您的帮助!

哦,我确实有一台本地服务器,虽然我不知道如何将svn checkout到我自己的电脑上......

2 个答案:

答案 0 :(得分:1)

是的,有可能 - 我在http://www.blah.net运行drupal站点,在http://dev.blah.net运行开发/测试站点。它们都使用相同的代码,从共享的svn存储库中检出,并且它们都使用相同的数据库。

根据以下条件,这对我来说很好:

定义$ base_url的settings.php行需要注释掉。

定义$ cookie_domain的行需要替换为服务器名称的条件,以防止登录变得疯狂。:

if(preg_match('/dev/i', $_SERVER['SERVER_NAME'])) {
    $cookie_domain = 'dev.blah.net';
} else {
    $cookie_domain = 'www.blah.net';
}

虽然这对我来说很好,但这是因为我的路径映射方式完全相同(drupal应用程序都位于域的根目录下)。我最初有www.blah.net/dev,但是因为路径不再起作用而破裂了。

Soo,解决方案是确保路径映射。您是否有足够的权限在要测试的站点上实现Apache VirtualHost?如果是,那么您可以添加如下虚拟主机条目:

<VirtualHost dev.blah.net:80>
        ServerName dev.blah.net
        ServerAlias blah.net

        DirectoryIndex index.php

        #change this to the path to the drupal install
        DocumentRoot /www/htdocs/ 

        <Directory "/www/htdocs">
                ## Allow CGI and Symbolic Links
                Options +FollowSymLinks +ExecCGI

                # NOTE - The FileInfo override allows rewrites to work in htaccess files
                AllowOverride All

                Order allow,deny
                Allow from all
        </Directory>

</VirtualHost>

另一个注意事项是,虽然您可以毫无问题地维护单独的模板和physicall文件,但如果通过管理面板更改配置,这些设置将存储在数据库中,因此将对共享数据库的所有安装生效。块是此问题的典型示例,因为它们存储在数据库中。

基本上你不能为drupal提供两组不同的路径映射(授予,你可能能够做一些疯狂的apache重写,但那会非常混乱)。虚拟主机答案可能是最难以解决的问题,只要您有足够的访问权限。

答案 1 :(得分:0)

复制Drupal安装后,我遇到了类似的问题,包括数据库。

就主题而言,如果您使用了颜色模块,则需要在新安装中重新创建该文件。

只需转到主题配置页面,确保颜色符合您的要求,点击保存配置,Drupal将为颜色制作正确的文件,主题将从完全缺失到完美无缺。