Apache, как и любое приложение, будет считать, что файл находится в том же каталоге, что и путь к текущему каталогу (см. http://en.wikipedia.org/wiki/Working_directory)., если его там нет. Текущий рабочий каталог, как правило, тот же, что и httpd.exe (основной исполняемый файл), но на самом деле он может отличаться, если вы делаете что-то вроде
C: \ Apache2> Bin \ httpd.exe
В этом случае текущим рабочим каталогом является C: \ Apache2, а не C: \ Apache2 \ bin.
Если файл там не найден, приложение естественным образом обходит переменную среды PATH. Переменная окружения PATH - это список путей (точка с запятой или запятая) для поиска файла.
Пуск -> Выполнить -> Введите «cmd.exe», а затем в командной строке введите «echo% PATH%», чтобы увидеть текущий путь, который у вас есть.
Наконец, если файл не найден, он просто выдаст ошибку.
В качестве подсказки вы можете отслеживать, какие файлы пытается загрузить приложение и откуда они их загружают, используя Process Monitor. http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx
Я использовал этот инструмент для решения проблем загрузки DLL в Apache и других приложениях. Просто добавьте фильтр для приложения, которое вы работаете, и пусть он только обнаруживает чтение файла.