一键升级多个网站
当网站数量有N个的时候,而且用的是自己写的程序,升级将会是一件麻烦事.
现在说说我的解决方案.
Andy 原创,转载请注明出处
比如,有a.com b.com c.com用的是同一个程序
1. 首先,在源站 21andy.com/cms/这里放一个tree.php,内容是递归显示当前目录下的文件(包含相对路径)
2. 21andy.com/cms/放最新的程序文件,以文本输出,不管是PHP还是TXT,都以TXT输出,即访问21andy.com/cms/index.php的时候,显示的是index.php的源代码,为了防止代码泻露,用.htaccess密码保护,限制访问权限
3. 在a.com b.com c.com的根目录,有一个update.php,这个被触发时,自动获取21andy.com/cms/tree.php,然后挨个下载,并替换当前相应的文件,为了保证文件的完整性,在21andy.com/cms/下的源程序,每个文件结尾加一行自定义注释,用来判断下载的文件是否完整,不完整时不替换,也可以用文件长度和MD5值来判断,还有,获取的方法当然要加上用户名和密码,不然可取不到
4. 21andy.com/cms/all_update.php 这个文件用来一键更新所有网站的源程序,里面有这样一个数组 array('a.com','b.com','c.com/cms'); 访问all_update.php的时候,自动挨个触发 相应网站上的update.php
流程很简单, 访问all_update.php 然后它自动访问
a.com/update.php
b.com/update.php
....
而这些update.php,又会自动从21andy.com下载最新的程序并替换自身
如果程序不是经常改动,可以把整个最新程序打包放在
21andy.com/cms/lastest.zip
然后让update.php来下载它,并解压替换自身,然后删除,当然,也要加上文件长度和md5验证一下.
Andy 原创,转载请注明出处
我不用压缩包的原因就是我经常开着ssh上去改动,不需要一直去打包
你是怎么做的?那些站点?
用svn + crontab 不是更容易
Andy 于 2008-03-04 19:15:55 回复:
svn...wordpress的插件系统就是用的svn,我装了客户端,不会使.我的办法虽然很土,但是管用,而且自己能100%了解了控制
感觉有点像[email protected] 网吧游戏更新的 增量更新包 的方式[email protected] 呵呵[email protected]