1

这是我第一次将本地托管的 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 文件夹中有常量我错了吗?

4

1 回答 1

2

Don't use $_SERVER['DOCUMENT_ROOT'].

Instead you should define the root directory based by one file, for example in the config file.

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

or

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

The use the ROOT as the base to include other file.

于 2012-05-15T01:53:56.103 回答