одновременно обновлять сотни сайтов на одном сервере - PullRequest
1 голос
/ 02 декабря 2010

Я работаю на выделенном сервере Hostgator, где есть сотни сайтов, имеющих сходство в файловой структуре и файлах .php, общих для каждого сайта.

Я хотел бы иметь возможность работать только с одним сайтом («модельным» сайтом), а затем синхронизировать эти изменения со всеми остальными сайтами. Я открыт для того, чтобы это происходило автоматически или полу-вручную (запуск сценария или команды.) Одно требование состоит в том, что, поскольку несколько сайтов отличаются, их необходимо исключить из этой синхронизации. методы достижения этого? Вот то, о чем я думал до сих пор ...

  • RSync: способен ли rsync на это? я никогда не использовал его, но слышал, что это отлично подходит для копирования файлов с одного сервера на другое.

  • SSH: мне не очень удобно работать с командами оболочки, но я могу представьте, что это определенно «правильное» место, чтобы сделать это виды изменений. (не уверен, как цикл и внести изменения, хотя все каталоги за исключением немногих, которые отличаются)

  • PHP: Если возможно, я бы хотел быть в состоянии сделать это с помощью PHP, за исключением того, что мой сервер использует SuPHP для безопасности, и я не могу обойти необходимые разрешения. Я могу быть в состоянии переключиться на fcgi, хотя ... (открыть для предложений также)

Моя файловая структура выглядит следующим образом:

    /home/model/
    /home/site1/
    /home/site2/
    /home/site3/
    /home/exception/
    /home/site5/
    /home/site6/
    /home/exception/

1 Ответ

3 голосов
/ 02 декабря 2010

Команды Bash являются более подходящими и имеют тенденцию быть проще,
такое объединение rysnc плюс символические ссылки ln

В двух словах,

ln -s /home/model/ /home/site1 
ln -s /home/model/ /home/site2
ln -s /home/model/ /home/site3

так, это будет soft-link site1, site2, site3 к модели

что такое символическая ссылка?
http://en.wikipedia.org/wiki/Symbolic_link

После этого вам просто нужно rsync внести изменения в модель каталога,
и изменения будут немедленно применены к сайту1, сайту2, сайту3
(потому что все каталоги являются символической ссылкой на модель)

как для site5, site6, так как разница, scp лучше подходят для обуви.

...