Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Особенности ссылок (symlinks) в семействе Unix и родственных
Форумы портала PHP.SU » Серверное администрирование » Администрирование *nix » Особенности ссылок (symlinks) в семействе Unix и родственных

Страниц (1): [1]
 

1. wwworm - 25 Октября, 2012 - 13:57:10 - перейти к сообщению
Здравствуйте, хочу посоветоваться с уважаемым сообществом по поводу эксплуатации механизма ссылок в Юниксах/Линуксах.

Для начала опишу ситуацию: есть веб-сервер, на котором будет крутиться десяток однотипных новостных сайтов. Наполнение будет разным, а "движок" - один.
Соответственно возникла мысль, чтобы не плодить кучу одинаковых папок в разных доменах и чтобы проще обновлять и модифицировать движок сразу на ВСЕХ сайтах - воспользоваться ссылками на папки. Таким образом, если в папке оригинале добавляются/меняются файлы - они сразу добавляются/меняются во других ссылочных папках разных сайтов.

Идея была удачно обкатана на локальном апаче (так уж получилось, что он крутился не под линуксом, а под виндой) - все работает прекрасно. Когда слили на головной сервак - обнаружилась интересная особенность 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 я слышал, но насколько удалось разобраться, она не подходит в данном случае, так как только позволяет или запрещает сам переход по ссылкам, а мне надо не только переходить, но и контролировать текущий путь.

 

Powered by ExBB FM 1.0 RC1