Непоследовательная запаздывающая наклонная черта в переменной DOCUMENT_ROOT в PHP при использовании Apache

Я использую Zabbix. Можно определить шаблоны для типа аппаратных средств или видов использования. Можно отправить отчеты, предупреждения, differents medias как почта, бессмысленные данные или SMS (если у Вас есть GSM или модем CDMA). Данные собраны SNMP или его собственным zabbix-агентом.

9
задан 24 August 2010 в 20:09
6 ответов

Я понятия не имею, почему наклонная черта изменяется между Вашими виртуальными хостами. Между прочим, действительно ли это важно? Просто добавьте, новая наклонная черта к Вашим программам (удалите, если двойная наклонная черта присутствует), и проблема решена.

Я использую

$realpath = realpath ($_SERVER['DOCUMENT_ROOT']."/");
$realpath = str_replace ("//", "/", $realpath);
6
ответ дан 2 December 2019 в 22:26

Предлагаемое решение:

$realpath = realpath ($_SERVER['DOCUMENT_ROOT']."/");
$realpath = str_replace ("//", "/", $realpath);

не работает во всех установках.

Например, в моем случае:

$_SERVER['DOCUMENT_ROOT']  = "/www/site/"
$_SERVER['DOCUMENT_ROOT']."/" = "/www/site//"
realpath("/www/site//") = "/www/site"
str_replace("//", "/", "/www/site") = "/www/site"

Та же проблема как прежде.

Можете быть Вы, должен изменить первую инструкцию в:

$realpath = realpath ($_SERVER['DOCUMENT_ROOT'])."/";

чертополох

2
ответ дан 2 December 2019 в 22:26

Document root in an Apache environment can be defined in more than one place.

Yes, httpd.conf contains these settings, but they can be overwritten as this file is used for the default configuration.

I'd suggest you go check the vhost configuration under vhosts.d and sites-available directories.

3
ответ дан 2 December 2019 в 22:26

http://httpd.apache.org/docs/2.0/mod/core.html говорит: DocumentRoot следует указывать без косой черты в конце.

3
ответ дан 2 December 2019 в 22:26

Ответ Dom - это решение этой проблемы, однако заявление Стефанвески является причиной того, почему в различных средах вы сталкиваетесь с двойным "//". На вашем локальном компьютере в вашем .conf файле, где вы настраиваете свой виртуальный хост, вы, скорее всего, добавили / в конце определенного корня документа, в то время как человек, который настраивал вашу другую среду, не сделал, или наоборот.

В любом случае, при использовании php $ _SERVER ['DOCUMENT_ROOT'] вы получите значение среды apache, которое является результатом конфигурации. Это причина появления символа «/» в одной среде и символа «//» в другой.

2
ответ дан 2 December 2019 в 22:26

Я бы сказал, предполагается, что DOCUMENT_ROOT не имеет завершающей косой черты.

Это значение передается из конфигурации веб-сервера

apache

DocumentRoot / var / www / html

Это означает, что мы должны добавить косую черту к пути, который мы добавляем к нему.

Зная, что двойная косая черта '//' в любом месте пути не имеет никакого значения (когда речь идет о файловой системе ... могут быть случаи, когда есть какие-то сбои)

$ cat / etc // проблема Debian GNU / Linux 9 \ n \ l

Когда после DOCUMENT_ROOT стоит косая черта, мы можем обвинить системного администратора в том, что не имеет последствий :)

И безопасно игнорировать это?

1
ответ дан 2 December 2019 в 22:26

Теги

Похожие вопросы