这是我第一次将本地托管的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文件夹中使用常量是错误的吗?
答案 0 :(得分:2)
请勿使用$_SERVER['DOCUMENT_ROOT']
。
相反,您应该根据一个文件定义根目录,例如在配置文件中。
define('ROOT', __DIR__); //php >= 5.3
或
define('ROOT', dirname(__FILE__)); // php < 5.3
使用ROOT
作为基础来包含其他文件。