将网站移动到 doteasy - 放置数据库常量的最佳位置


moving website to doteasy - best place to put database constants?

这是我第一次将本地托管的PHP站点移动到托管服务。我的网站是使用 web 根目录之外的 inc 文件夹(包括数据库常量)构建的,因此在我的本地计算机上它位于

XAMPP/xamppfiles/htdocs/inc/

其余文件(包括 common/目录)位于

XAMPP/xamppfiles/htdocs/mydomain/

大多数页面调用

include_once "common/base.php";

住在里面

htdocs/mydomain/common/

并通过调用包含数据库常量

include_once $_SERVER['DOCUMENT_ROOT'] . "/inc/constants.inc.php";

在我的本地网站上,$_SERVER['DOCUMENT_ROOT'] 输出"Applications/XAMPP/xamppfiles/htdocs/",并找到 inc 文件。

不幸的是,在DotEasy网站上,找不到这些文件。如果我回显 $_SERVER['DOCUMENT_ROOT'],输出是"/home/myusername/public_html"。

我可以通过这个进入 inc/目录:

$temp_path = $_SERVER['DOCUMENT_ROOT'];
$temp_path = str_replace('public_html', '', $temp_path);
include_once $temp_path . "/inc/constants.inc.php";

但这是个好主意吗?我担心public_html文件夹中的常量有错吗?

不要使用 $_SERVER['DOCUMENT_ROOT'] .

相反,您应该定义基于一个文件的根目录,例如在配置文件中。

define('ROOT', __DIR__); //php >= 5.3

define('ROOT', dirname(__FILE__)); // php < 5.3

使用ROOT作为包含其他文件的基础。