2012-01-10 70 views
0

我不知道我该如何做到这一点。但一般的想法是,当有人访问我们的脚本: - http://livescript.phpiscool.com或任何子文件夹如何根据文件位置使用不同的数据库

数据库应该是正常的“活”数据库。

但是,当有人试图进入/导航: - http://livescript.phpiscool.com/beta1 或 - http://livescript.phpiscool.com/beta2

脚本应该使用不同的数据库( “测试版” 的数据库)...

我们在DATABSE配置config.php文件,它看起来像:

<?php 
$db_host = "localhost"; 
$db_username = "tureh_user"; 
$db_password = "crazypssrd"; 
$db_name = "database_test"; 
?> 
+0

必须更多地了解您的构建过程。 – dqhendricks 2012-01-10 00:38:23

回答

0

$ _ SERVER [“REQUEST_URI”]将包含域Ø后一切从第一个斜杠nwards,所以检查它起始于位置0与“/β”应该做的工作

if(strpos(strtolower($_SERVER['REQUEST_URI']),'/beta') === 0) 
{ 
    $db_host = "beta"; 
} 
else 
{ 
    $db_host = "localhost"; 
} 

明确比较(===)指0 INT,而不是(==),其可以给出错误的积极的“假”,如果它不能找到匹配

0

大多数时候,那种问题是由配置阵列处理:

$db['live'] = array(); // Your live configuration 
$db['beta'] = array(); // Your beta configuration 

$mode = process_url_to_get_mode(); 

然后,利用$db[$mode]实例的连接。 这实际上是CodeIgniter的does it

当然,你可以依靠像Scuzzy的功能让你得到$mode

0

更简洁的解决方案是维护代码库的两个副本,一个用于测试版,另一个用于实时版本。如果你使用的是诸如subversion之类的源代码控制,它使用类似于名为“branches”的文件夹(维基百科关于Subversion的文章:http://en.wikipedia.org/wiki/Subversion),这很简单。为您的测试版和现场版提供两份代码的好处是;

  • 如果您在开发过程中对网站的BETA版进行了更改,意外中断了网站,则活动网站不会受到影响。
  • 随着您的网站的发展,您可以将BETA或开发副本移动到不同的机器上,或在本地机器上进行开发。
  • 您不会乱糟糟地检查代码,看看您是否正在运行开发/实时版。

如果您使用的是Apache Web服务器,您可以使用Apache VHosts(假设您自己控制服务器)同时托管这两个单独的站点以同时运行; http://httpd.apache.org/docs/2.0/vhosts/examples.html

从长远来看,这是更好的解决方案。

相关问题