IIS не всегда устанавливает $ _SERVER ['DOCUMENT_ROOT']
Как установить его в файле конфигурации, чтобы остальная часть вашего кода работала как на серверах Apache?
Выведите $ _SERVER, чтобы увидеть, что с учетом того, что вы можете использовать:
<code>echo "<br>_SERVER:<br><pre>";
print_r($_SERVER);
echo "
_ENV:
";
print_r($_ENV);
echo "
";
В этом случае SCRIPT_FILENAME и SCRIPT_NAME установлены.
Измените код ниже, чтобы использовать то, что дано для получения DOCUMENT_ROOT:
if (!isset($_SERVER['DOCUMENT_ROOT']) || $_SERVER['DOCUMENT_ROOT'] === '') {
$_SERVER['DOCUMENT_ROOT'] = substr($_SERVER['SCRIPT_FILENAME'], 0, -strlen($_SERVER['SCRIPT_NAME']));
putenv('DOCUMENT_ROOT='.$_SERVER['DOCUMENT_ROOT']);
}
Теперь вы можете использовать $ _SERVER ['DOCUMENT_ROOT '] обычно:
$docroot = getenv("DOCUMENT_ROOT");
include_once "$docroot/folder/yourfile.php";