В чем разница на Wamp или веб-сервере для определения $ _SERVER ['DOCUMENT_ROOT'] и где оно определяется для обоих? - PullRequest
1 голос
/ 04 апреля 2011

Какая разница на Wamp или веб-сервере для определения $_SERVER['DOCUMENT_ROOT'] и где оно определяется на обоих?

И вот почему я спрашиваю, у меня есть несколько живых веб-сайтов, которые используют определение $_SERVER['DOCUMENT_ROOT'].

На живых сайтах $_SERVER['DOCUMENT_ROOT'] отлично работает.

На локальном сервере wamp он показывает $_SERVER['DOCUMENT_ROOT'] как C: / wamp / www , даже если у меня настроены виртуальные хосты. Все на wamp работает, кроме объявления $_SERVER['DOCUMENT_ROOT'].

Я использовал php-скрипт, предложенный в качестве исправления. Сценарий prepend_script, установленный в файле auto_prepend_file в php.ini:, выглядит следующим образом:

auto_prepend_file = c:/wamp/www/prepend_script.php

$basePath = dirname(__FILE__); // assuming this script is in c:/wamp/www
$projectPath = preg_replace('#('.$basePath.'/[^/]+)/.*#i', '\\1', $_SERVER['PHP_SELF']);
$_SERVER['DOCUMENT_ROOT'] = $projectPath;

Что изменило $_SERVER['DOCUMENT_ROOT'] с C: / wamp / www на / itsaboutwirelessnetworks / index.php

Если в действительности для правильной работы он должен быть C: / wamp / www / itsaboutwirelessnetworks , а не / itsaboutwirelessnetworks / index.php , как это делал сценарий prepend.

Поэтому, чтобы я и другие поняли, как это может повлиять на них, я был бы признателен за объяснение того, почему это работает на моем работающем сервере, а не на сервере wamp.

Отсюда и оригинальный вопрос:

Какая разница для Wamp или Live Web Server для определения $_SERVER['DOCUMENT_ROOT'] и где оно определяется для обоих?

Ответы [ 2 ]

1 голос
/ 04 апреля 2011

Документация говорит о DOCUMENT_ROOT: (emph mine)

Корневой каталог документа, в котором выполняется текущий скрипт, , как определено в файле конфигурации сервера.

Так что вы должны взглянуть на свой конфигурационный файл и проверить, есть ли там что-то странное, я бы сказал.

(Я думаю, что если вы его не изменили, C: / wamp / www звучит как допустимое значение для присвоения корневому каталогу документа. Если это должно быть что-то еще, это должно быть определено в конфигурации виртуального хоста)

0 голосов
/ 04 апреля 2011

Это похоже на ошибку в Apache, как это определено в файле Apache httpd.conf.

http://www.devcha.com/2010/02/solved-incorrect-value-for.html

https://issues.apache.org/bugzilla/show_bug.cgi?id=26052

Веб-сайты Apache / php / mysql чаще всего работают на серверах Linux, а вы разрабатываете для Windows, большие различия между ними могут объяснять различное поведение ошибок.

...