Я вызываю свой PHP файл из глубоко вложенной папки, потому что мой код структурирован в модулях.
Я попробовал это:
define('__ROOT__', dirname(__FILE__).'../../../');
echo __ROOT__;
Это дает мне:
/var/www/virtual/myvirtualservername/mywebsite.com/modules/Dialog/Feedback../../
Я не могу просто использовать:
$_SERVER['DOCUMENT_ROOT']
Это дает мне:
/var/www/virtual/myvirtualservername/html
который также является неправильной папкой.
К сожалению, это не работает, и у меня нет журнала ошибок на моем сервере, поэтому я не могу отладить внутреннюю ошибку сервера. Запрошено, что теперь у моего провайдера.
В заключение, мой вопрос заключается в том, как добраться до папки, которую я хочу, /var/www/virtual/myvirtualservername/mywebsite.com/
?
Я думаю, ваша проблема в том, что вы не добавляете косой черты в начале ваших путей. Значения каталога возвращаются без привязки косых черт, например /var/www
Изменение вашей первой строки на этом должно работать:
define('__ROOT__', __DIR__.'/../../../mywebsite.com');
echo __ROOT__;
Я заменил dirname(__FILE__)
- __DIR__
dirname(__FILE__)
с __DIR__
, как указано в комментариях. Также обратите внимание, что __ROOT__
не имеет завершающей косой черты, поэтому вы должны добавить это, когда вы вставляете свой файл, например
include __ROOT__ . '/file.php';
Я не совсем уверен, что сделка с вашим корнем документа, хотя. Похоже, что открытая часть сайта находится в html
но код PHP находится в каталоге mywebsite.com
вместе с этим.
Я не знаю... возможно, вы можете сделать "замену строки", если хотите, чтобы это было точно, что-то вроде следующего:
define('__ROOT__',str_replace("/modules/Dialog/Feedback","",dirname(__FILE__)));
Что-то вроде этого должно дать результат, который вы хотите.