Относительное включение PHP с виртуальным каталогом в IIS7

У меня есть виртуальный каталог корневой конфигурации (с именем «config», указывающим на каталог внутри /wwwroot/), указанный в IIS7. Я хочу получить доступ к этому виртуальному каталогу программно с помощью функции «включить», например:

include '/config/main.php';

Я получаю Warning: require(config/main.php) [function.require]: failed to open stream ошибки. Я пробовал следующее:

/config/, \config\, ./config/, config/, ~/config/, $SERVER_['DOCUMENT_ROOT']/config/

Но безрезультатно. Почему PHP должен быть таким придурком в отношении относительных ссылок сайта!? Не хочу пускать пыль в глаза, но ASP может легко обрабатывать относительные ссылки на сайты (или относительные ссылки на документы с помощью ../blah.php)!

Любые идеи? Я просмотрел функцию set_include_path и тем временем собираюсь попробовать ее, но в основном кажется, что это будет жестко кодировать мои пути к каталогам - раздражает перемещение кода из среды разработки в рабочую среду.


person MikeMurko    schedule 18.05.2011    source источник


Ответы (2)


Попробуй:

dirname(__FILE__).'\\config\\main.php';
person Danzan    schedule 18.05.2011
comment
Нет, это не сработало. Если бы он был в том же каталоге, возможно... но это виртуальный каталог за пределами основного сайта. - person MikeMurko; 18.05.2011

Проблема как бы закрыта, потому что я не смог найти удовлетворительного ответа, я просто переделал свою проблему, чтобы не было виртуальных каталогов. К черту PHP и относительные пути! Кажется, это проблема именно с IIS.

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

person MikeMurko    schedule 16.11.2011