V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
whistle
V2EX  ›  PHP

大家 php 上线都用什么系统啊

  •  
  •   whistle · 2015-06-04 13:25:39 +08:00 · 8683 次点击
    这是一个创建于 3488 天前的主题,其中的信息可能已经有所发展或是发生改变。

    纯git pull然后同步到其他机器吗 还是有别的工具

    40 条回复    2017-03-06 18:10:42 +08:00
    guoer
        1
    guoer  
       2015-06-04 13:33:06 +08:00
    ibiger
        2
    ibiger  
       2015-06-04 13:35:25 +08:00
    gDD
        3
    gDD  
       2015-06-04 13:39:16 +08:00
    Ansible + Ansible Docker module
    zjgsamuel
        5
    zjgsamuel  
       2015-06-04 14:00:25 +08:00
    @zjgsamuel 哎呀~~ 发窜了 LZ 自行忽略啊~
    zhaiduo
        6
    zhaiduo  
       2015-06-04 14:01:53 +08:00 via iPad   ❤️ 1
    Svn up :)
    shanxuefeng
        7
    shanxuefeng  
       2015-06-04 14:06:16 +08:00
    都没听过。。。只会用FTP是不是太低级了?
    LINAICAI
        8
    LINAICAI  
       2015-06-04 14:34:23 +08:00
    优先考虑svn,嫌麻烦FTP也挺好的
    Septembers
        9
    Septembers  
       2015-06-04 14:36:19 +08:00
    @LINAICAI FTP传输大量碎片文件的时候,传输速度感人
    gongpeione
        10
    gongpeione  
       2015-06-04 14:37:14 +08:00
    _(:з」∠)_都没听过。。默默回去用ftp/svn上传
    kevinroot
        11
    kevinroot  
       2015-06-04 14:37:32 +08:00
    jekins+shell
    xbonline
        12
    xbonline  
       2015-06-04 14:38:39 +08:00
    rsync
    Admstor
        13
    Admstor  
       2015-06-04 14:45:51 +08:00
    @Septembers 多线程搞起来...
    shiny
        14
    shiny  
       2015-06-04 14:47:31 +08:00
    一般个人项目直接 remote edit 了
    skyworker
        15
    skyworker  
       2015-06-04 14:48:19 +08:00
    @Septembers 压缩zip,然后再unzip不行吗?
    zhangqinmiao
        16
    zhangqinmiao  
       2015-06-04 16:04:53 +08:00
    @skyworker 我也是:)
    lyragosa
        17
    lyragosa  
       2015-06-04 16:25:41 +08:00
    我说我用FTP放学了会不会被打啊。
    66beta
        18
    66beta  
       2015-06-04 16:26:36 +08:00
    一个人的项目感觉zip上传更方便,然后单个替换,然后国外服务器偏向走github
    jsxqf
        19
    jsxqf  
       2015-06-04 16:53:38 +08:00 via iPhone
    ansible synchronize(还是基于 rsync
    Lucups
        20
    Lucups  
       2015-06-04 16:57:50 +08:00
    git hook
    killall
        21
    killall  
       2015-06-04 17:04:17 +08:00
    写的 fabric 脚本
    timsims
        22
    timsims  
       2015-06-04 17:48:03 +08:00
    Capistrano + 1

    个人项目没所谓,公司项目用ftp一旦出问题回滚不方便
    bingx86
        23
    bingx86  
       2015-06-04 19:04:09 +08:00
    用了 Ansible 的 template + synchronization (rsync)。。。。配置,同步 同时搞定
    littlehz
        24
    littlehz  
       2015-06-04 19:59:50 +08:00
    小项目直接用 git 控制版本,用Ansible synchronization传文件就好。

    严格一点服务器较多的项目自己写脚本(配合Ansible),大概步骤如下:
    1、打包tar gz压缩
    2、传输 tar.gz 到所有外网服务器
    3、解压 tar.gz
    4、删除模板文件缓存等本地缓存,设置某些目录的可写权限等
    5、清理opcache缓存(opcache设置为手动更新,不检查timestamp方式)
    严格项目要考虑到多台服务器文件不一致可能出现问题,尽量是同一时刻更新所有服务器。所以要传压缩包,一起解压的方式。
    也不能出现先上传A文件再上传B文件,要同时传所有文件,否则两个文件存在依赖关系,如果一个文件较晚更新,这时访问页面可能出现500服务器内部错误。所以要opcache手动更新。
    whistle
        25
    whistle  
    OP
       2015-06-04 20:01:53 +08:00
    我感觉上线前要和线上文件做比对,确认后再发布
    mytharcher
        26
    mytharcher  
       2015-06-04 20:05:53 +08:00
    即使我是一个人做再小的项目,也是用 git hook,本地一个 push 服务器就自动部署了。于是每次新建项目都要先配置好自动部署环境,所以写了这个工具,欢迎 star:

    https://github.com/mytharcher/hookagent
    falcon05
        27
    falcon05  
       2015-06-04 20:22:51 +08:00 via iPhone
    用git hook或svn hook是web hook吧,如果同时还用PHP执行git pull,就要求PHP对整站目录有写权限或者用root运行PHP吧,这样是不是有点不安全啊
    jakehu
        28
    jakehu  
       2015-06-04 20:50:45 +08:00
    哈哈 我也想知道
    ifconfig
        29
    ifconfig  
       2015-06-04 22:07:01 +08:00
    @falcon05 php写一个git pull的脚本 ,hook的地址指向这个脚本,你可以设置这个脚本权限为apache:root嘛
    endoffight
        30
    endoffight  
       2015-06-04 22:38:05 +08:00
    nigelvon
        31
    nigelvon  
       2015-06-04 23:04:56 +08:00
    git+shell
    lujiajing1126
        32
    lujiajing1126  
       2015-06-04 23:19:11 +08:00
    capistrano+rsync
    fontartist
        33
    fontartist  
       2015-06-05 09:37:55 +08:00 via iPhone
    centos、git、rsync
    erevus
        34
    erevus  
       2015-06-05 11:33:34 +08:00
    scp
    zluyuer
        35
    zluyuer  
       2015-06-05 12:40:40 +08:00
    [desktop]

    git commit, push


    [server]

    -- deploy.sh --
    #!/bin/bash

    echo -e "\033[31mPulling source...\033[0m"
    cd /env_name/src/app_name
    git pull

    echo -e "\033[31mBuilding...\033[0m"
    composer install

    echo -e "\033[31mDeploy complete.\033[0m"
    wayne712
        36
    wayne712  
       2015-06-05 13:53:34 +08:00
    请问大家一般怎么用rsync, deamon模式在什么情况下会用到呢
    biu1024
        37
    biu1024  
       2015-06-11 09:04:06 +08:00
    *.phar 怎么没人提到?
    jakehu
        38
    jakehu  
       2015-08-24 23:31:13 +08:00 via Android
    git pull
    wushuiyong
        39
    wushuiyong  
       2015-10-28 14:26:19 +08:00
    看来大家都还不知道 Walle-瓦力,一个 web 部署系统工具,可能也是个持续发布工具,配置简单、功能完善、界面流畅、开箱即用!

    支持 git 、 svn 版本管理,支持各种 web 代码发布,静态的 HTML ,动态 PHP ,需要编译的 JAVA 等。主要功能列表:

    1.用户分身份注册、登录
    2.开发者发起上线任务申请、部署
    3.管理者审核上线任务
    4.支持多项目部署
    5.支持多项目多任务并行
    6.快速回滚
    7.项目的用户权限管理
    8.部署前准备任务 pre-deploy (前置检查)
    9.代码检出后处理任务 post-deploy (如 vendor )
    10.同步后更新软链前置任务 pre-release
    11.发布完毕后收尾任务 post-release (如重启)
    12.执行 sql 构建(不要担心忘记测试环境 sql 同步)
    13.线上文件指纹确认
    14.支持 git 、 svn 版本管理

    详见 github 项目地址: https://github.com/meolu/walle-web ,官方主页介绍: http://www.huamanshu.com/walle.html
    mingyun
        40
    mingyun  
       2017-03-06 18:10:42 +08:00
    @wushuiyong 这个工具不错
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2853 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 07:11 · PVG 15:11 · LAX 23:11 · JFK 02:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.