$_SERVER["DOCUMENT_ROOT"] is blank


$_SERVER["DOCUMENT_ROOT"] is blank

刚刚发现document_root为空。有其他办法或想法如何解决它?

echo <?php $HTTP_SERVER_VARS["PATH_TRANSLATED"]  ?>
<?php
require_once($_SERVER["DOCUMENT_ROOT"] . "/inc/config.php");
include(ROOT_PATH . "/inc/header.php");
?>

你有一个语法错误,你的echo应该在php标签内,并添加一个分列;

<?php echo $HTTP_SERVER_VARS["PATH_TRANSLATED"];  ?>
    //^echo should be inside php tags          ^semicolumn was missed here

$_SERVER['DocumentRoot']全局取决于您正在使用的服务器,而不是PHP本身。如果你使用的是Apache,那么只需在Apache配置文件中添加一个DocumentRoot条目:

DocumentRoot /absolute/path/to/website/

将PHP修改为当前目录的相对路径可能会更容易。用途:

require_once __DIR__ . '/inc/config.php';

或其他形式的正确相对路径,从你正在编辑的PHP脚本的文件夹到config.php文件,例如:

require_once __DIR__ . '/../inc/config.php';

我更喜欢用:define('FOO_ROOT', dirname($_SERVER['SCRIPT_FILENAME']))

这在这样的情况下很有用,也许你在根目录中有index.php,然后你可能有代码以这种方式在/inc/init.php中设置根路径。

我不认为这种技术有任何缺点,当你有像cron.php(通过cron作业运行的东西)这样的东西也需要访问init.php中的东西时,它是有用的。这里,这两个文件都需要inc/init。php。我觉得它更干。