php - 同时更新同一台服务器上的数百个站点

我正在使用 Hostgator 专用服务器,其中有数百个站点具有相似的文件结构和每个站点共有的 .php 文件。

我希望能够只在一个站点(“模型”站点)上工作,然后在所有其他站点上同步这些更改。我愿意自动或半手动(运行脚本或命令)发生这种情况。一个要求是,由于一些站点不同,因此需要将它们排除在此同步之外。有哪些技术可以实现这一目标?这是我到目前为止所想到的......

  • RSync : rsync 能做到这一点吗?一世
    没用过但听说是
    非常适合将文件从一个服务器位置复制到另一个位置。
  • SSH : 我不是很舒服
    使用 shell 命令,但我可以
    想象这绝对是
    制作这些的“适当”地方
    种变化。 (不知道如何
    循环并进行更改
    除了少数不同的目录)
  • PHP : 如果可能的话我很想成为
    能够用 PHP 做到这一点,除了我的服务器使用 SuPHP 来保证安全性,我无法真正绕过它所需的权限。不过,我也许可以切换到 fcgi...(也对此提出建议)

  • 我的文件结构如下:

    /家/模型/
    /home/site1/
    /home/site2/
    /home/site3/
    /主页/异常/
    /home/site5/
    /home/site6/
    /主页/异常/

    最佳答案

    Bash 命令更合适,也更容易,
    这样的结合rysnc加上符号链接(symbolic link)ln
    简而言之,

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

    所以,它会将site1,site2,site3软链接(soft link)到模型

    什么是符号链接(symbolic link)?
    http://en.wikipedia.org/wiki/Symbolic_link

    之后,您只需要 rsync 您对目录模型的更改,
    并且更改将立即应用于站点 1、站点 2、站点 3
    (因为所有目录都是模型的符号链接(symbolic link))

    至于site5,site6,因为是不同的,scp更适合鞋子。

    https://stackoverflow.com/questions/4333796/

    相关文章:

    ssh - Amazon EC2 ssh 登录失败

    grails - grails 域类中何时以及为什么应该为空或/和空白约束?

    json - Grails JSON Marshaller 显示的日期值与原始日期不同

    grails - 大括号与方括号

    session - 如何存储操作的参数以供以后再次使用

    php - 在 PHP 中通过 SSH 与多个服务器交互

    grails - 创建后获取域对象的ID

    django - django 启动时使用 paramiko 来隧道化 MySql 端口

    svn - 尝试结帐SVN时为什么会收到 “/RCS/trunk,v: No such file o

    spring-mvc - 用于 'dashboard'风格UI(涉及多个域)的 Controller