我想要可靠地升级网站,有没有标准的流程?或者需要注意的地方? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
shendaowu
V2EX    站长

我想要可靠地升级网站,有没有标准的流程?或者需要注意的地方?

  •  
  •   shendaowu 201 天前 2472 次点击
    这是一个创建于 201 天前的主题,其中的信息可能已经有所发展或是发生改变。

    网上搜不到,不知道是不是我用的关键词不对。我用“网站升级 流程”和“update website”在谷歌搜的。我还找了一本运维的书,结果扫了一眼目录和可能贴边的地方也没有。

    目前我能想到的容易踩坑的地方有不关闭服务直接换网站代码可能会出导致数据不一致。不知道没有什么使用中的文件无法删除的防呆机制。我目前计划用 PHP 。但是我只能想到这一个坑,总感觉可能会有其他的坑。

    21 条回复    2025-03-24 18:54:12 +08:00
    defunct9
        1
    defunct9  
       201 天前   3
    多了去了。开 ssh ,让我上去看看
    davidyin
        2
    davidyin  
       201 天前 via Android   1
    不同程序不同的流程。
    比如 phobb ,可以考 https://www.phpbb.com/downloads/3.3/update
    pendulum
        3
    pendulum  
       201 天前   1
    你可能想找:持续部署
    FlashEcho
        4
    FlashEcho  
       201 天前   1
    你的问题过于宽泛了吧,是微服务项目还是耦合很高的单体项目?要升级什么,依赖版本、后端架构、数据库选型、cicd 流程还是别的?
    ZeawinL
        5
    ZeawinL  
       201 天前 via iPhone   1
    外行人视角
    ano
        6
    ano  
       201 天前
    做好备份能回滚就行
    shendaowu
        7
    shendaowu  
    OP
       201 天前
    @chesha1 主要就是网站修了漏洞或者添加功能后的升级。我不用框架。依赖版本的升级也有坑吗?我刚才在 Composer 官网搜 update 好像没什么需要特别注意的。
    adgfr32
        8
    adgfr32  
       201 天前   1
    一个是版本依赖层面的, 代码和数据库之间版本是否兼容
    一个是服务可用性层面的, 是否需要不停机更新
    zoharSoul
        9
    zoharSoul  
       201 天前
    描述的太模糊了
    ETiV
        10
    ETiV  
       201 天前 via iPhone   1
    各种不同的语言框架都不一样,但可以标准化成容器化部署,前面用 nginx 反代:

    1. 新的容器起来后监听新的端口,测试 OK 没问题之后 2. 改 nginx 配置、并 nginx -s reload
    2. 旧的容器退出,就完成了一次更新。

    然后下次更新的时候,监听这个旧的端口号
    shendaowu
        11
    shendaowu  
    OP
       201 天前
    @zoharSoul 能说一下需要提供什么信息吗?我感觉也许有用的信息:语言:php 。目前不打算用框架,可能会用 Composer 。能接受停机维护。
    expy
        12
    expy  
       201 天前   1
    计划用 PHP ?意思东西都还没写出来?那考虑什么升级,一天没几个人的网站你直接关掉旧程序再启动新程序都没影响的。
    zoharSoul
        13
    zoharSoul  
       201 天前   1
    @shendaowu #11
    1. 当前的技术栈
    2. 部署的架构
    FlashEcho
        14
    FlashEcho  
       201 天前
    @shendaowu #7 我不懂 php ,不过一般来说语言本身的升级不会带来能影响到普通开发的破坏性改变,留好回到上个版本的方法就行了
    shendaowu
        15
    shendaowu  
    OP
       201 天前
    @zoharSoul
    1. php + Javascript + MariaDB 。
    2. 这个我之前不了解,我网上搜了一下,我感觉这个主要是偏物理和基础设施上的东西?目前我打算用阿里云香港的 ECS 套上 CloudFlare ,并且用 CloudFlare Tunnel 。Linux 发行版用 Debian 。ECS 目前打算用比价便宜的。如果最便宜的没什么问题我肯定会用最便宜的,如果真有人用的话再升级服务器。所有东西都运行在一个 ECS 上,不会买其他的服务。
    shendaowu
        16
    shendaowu  
    OP
       201 天前
    @expy 我对可靠性有强迫症。如果我升级的时候某个用户正好在访问网站,我猜可能会导致问题。比如程序执行到一半服务被强制关闭了。当然特殊的地方我会用事务的,但是这东西也不能保证一定不出问题吧?不过一个 BUG 造成的问题可能远大于上面那种问题,如果真有那种问题的话。我写 BUG 的能力还是挺强的。
    zoharSoul
        17
    zoharSoul  
       201 天前   1
    @shendaowu #15
    问题 2 的意思是你是怎么部署的
    docker?k8s? 还是什么
    zoharSoul
        18
    zoharSoul  
       201 天前   1
    @shendaowu #15 其实 4 楼就问的挺清楚了, 没有升级网站这个说法? 你是要升级什么东西?
    我猜你问的是 php 后端如何滚动部署?
    shendaowu
        19
    shendaowu  
    OP
       200 天前
    @zoharSoul 我预计我更新的频率会比较低,不想学 docker 那些东西。我想直接替换我写的 php 文件、CSS 文件和 js 文件等文件。但是不知道除了替换的时候关闭服务还需要干什么。另外我也不知道是否需要关服务。
    zoharSoul
        20
    zoharSoul  
       200 天前   1
    @shendaowu #19 看你 php 的部署模式
    分别搜 cli 或者 fpm 对应的优雅/平滑 部署就行
    shendaowu
        21
    shendaowu  
    OP
       200 天前
    @zoharSoul 大佬是不是记错了?是平滑重启( Graceful Restart )吧?我用大佬给的关键词没搜到什么东西。刚才在问 DeepSeek 的时候它提到了这个词。我的担忧如果用了平滑重启应该就不存在了?另外求大佬鉴定一下这个回答: https://segmentfault.com/q/1010000046362677/a-1020000046362824
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     875 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 20:37 PVG 04:37 LAX 13:37 JFK 16:37
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86