Относително включване на 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 и ще я изпробвам междувременно, но по същество изглежда, че това би било твърдо кодиране на моите пътища на директория - досадно за преместване на код от dev към prod среди.


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