Здравствуйте, хочу посоветоваться с уважаемым сообществом по поводу эксплуатации механизма ссылок в Юниксах/Линуксах.
Для начала опишу ситуацию: есть веб-сервер, на котором будет крутиться десяток однотипных новостных сайтов. Наполнение будет разным, а "движок" - один.
Соответственно возникла мысль, чтобы не плодить кучу одинаковых папок в разных доменах и чтобы проще обновлять и модифицировать движок сразу на ВСЕХ сайтах - воспользоваться ссылками на папки. Таким образом, если в папке оригинале добавляются/меняются файлы - они сразу добавляются/меняются во других ссылочных папках разных сайтов.
Идея была удачно обкатана на локальном апаче (так уж получилось, что он крутился не под линуксом, а под виндой) - все работает прекрасно. Когда слили на головной сервак - обнаружилась интересная особенность symlinks (в Линуксе) - если скрипт "переходит по ссылке" (меняется текущая рабочая папка), то он автоматически переходит и на другой сайт.
Продемонстрирую на примере. Есть два сайта: "demo1" и "demo2". В корне "demo1" лежит папка "engine", ссылка на которую помещается и в "demo2". Скрипт index.php выводит сначала имя текущей рабочей директории, потом меняет её на папку "engine" и повторно выводит имя текущей рабочей директории
Код index.php:
<?
echo 'starting cwd is "'.getcwd().'"<hr><br>';
chdir('engine');
echo ' NOW cwd is "'.getcwd();
-------------------------------- --------------
Результат вывода в Винде:
_______________________
starting cwd is "q:\home\demo2\www"
NOW cwd is "q:\home\demo2\www\engine
-------------------------------- --------------
Результат вывода в Юниксе:
_______________________
starting cwd is "/home/vps/data/www/demo2"
NOW cwd is "/home/vps/data/www/demo1/engine"
-------------------------------- --------------
Соответственно прошу помощи: как заставить Линукс переходя о ссылке не терять изначального домена, потому что скрипт то отработает нормально, но когда он захочет загрузить картинку или темплейт, то загрузка произойдет с другого сайта, что конечно недопустимо.
P.S. про директиву апача FollowSymLinks я слышал, но насколько удалось разобраться, она не подходит в данном случае, так как только позволяет или запрещает сам переход по ссылкам, а мне надо не только переходить, но и контролировать текущий путь.
1. wwworm - 25 Октября, 2012 - 13:57:10 - перейти к сообщению