plqws
V2EX  ›  问与答

大家是怎么利用 Windows 写代码,并快速部署到 Linux 服务器上进行调试的?

  •  
  •   plqws · Jul 24, 2015 · 16103 views
    This topic created in 4121 days ago, the information mentioned may be changed or developed.
    我在 Windows 上写一个 Node 程序,但是调试的时候依赖一个 Linux 服务器上的 nginx,所以每次都要把编辑过的文件通过 FTP 上传到服务器上,感觉效率极低。

    想过 Git,但是 Git 提交的流程太繁琐。
    想过 SVN,但是 SVN 服务端需要安装 httpd,太鸡肋。
    想过 rSync,但是配置起来太繁琐,遂放弃。

    想问问各位有没有什么更妙的方法?
    58 replies  •  2015-07-25 14:19:59 +08:00
    n37r06u3
    n37r06u3
    Jul 24, 2015
    1
    目前用git ...
    townboy
    townboy
    Jul 24, 2015
    2
    这个问题也困扰我很久了
    learnshare
    learnshare
    Jul 24, 2015
    3
    写代码肯定是 Git,服务器上同步一下就好了
    whtsky
    whtsky
    Jul 24, 2015 via iPad
    4
    用 git 呀,写好钩子 add&commit&push 不就好了
    KentY
    KentY
    Jul 24, 2015
    5
    我们是java, 同事挺多用windows的, 通过build server, continuous integration server自动部署。 我们用的是teamcity, jenkins 也行。
    tini28
    tini28
    Jul 24, 2015
    6
    写个脚本自动通过git提交
    tobyxdd
    tobyxdd
    Jul 24, 2015
    7
    git繁琐?LOL
    linkiosk
    linkiosk
    Jul 24, 2015
    8
    dropbox能干这事吧
    lissome
    lissome
    Jul 24, 2015
    9
    git
    xylophone21
    xylophone21
    Jul 24, 2015❤️1
    10
    直接smb到Linux上写或者Sublime+SFTP插件

    谁说SVN服务端一定要装httpd?
    qw7692336
    qw7692336
    Jul 24, 2015
    11
    @townboy


    这就是传说中的DevOps


    手动的方式就是用git提交,在服务端设置git hook,写一个部署脚本,最好是热部署。
    有很多云服务都支持git上传代码,自动部署,比如说openshift。
    为什么你需要在本地写好代码部署到服务器?如果使用外网IP进行调试,可以用ssh把服务器端的80端口映射到本地。或许你可以用sshfs把服务器端的文件映射到本地。
    plqws
    plqws
    OP
    Jul 24, 2015
    12
    @xylophone21 CentOS 直接 yum 安装会出现依赖 httpd 的情况然后就给安装了…… 编译安装的话依赖配置太麻烦了。

    Sublime Text + SFTP 插件的方案很不错,刚刚试了下,很方便。谢谢,问题解决了。
    tonghuashuai
    tonghuashuai
    Jul 24, 2015
    13
    git 还繁琐?那 lz 应该刚从 svn 转过来

    如果还是觉得繁琐的话,就配置一下自动部署吧,google 持续集成
    plqws
    plqws
    OP
    Jul 24, 2015
    14
    @tonghuashuai 我写代码比较菜,经常是一分钟要改好多东西并且调试很多次,要是在图形界面把 Pull、Sync 等操作都进行实在是太麻烦了。
    我本来想写个轮子用 fs.watchFile 来轮流监控文件,然后再 exec git 来提交,感觉会很不错,不过 Sublime 的 SFTP 已经能够满足我的需求了。
    echo1937
    echo1937
    Jul 24, 2015
    15
    IDE里面不都有一个"Tools" ---> "Deployment"的功能吗?
    icanfork
    icanfork
    Jul 24, 2015
    16
    git hook
    tonghuashuai
    tonghuashuai
    Jul 24, 2015
    17
    @plqws 我明白你的意思了

    这种情况下貌似靠版本控制工具不能根本解决,只有将运行环境和开发统一到一个地方才可以

    我之前遇到过一种情况有人这么干:
    代码在服务器上,然后本地用 IDE 打开服务器上的代码直接修改(ftp),不过还是不推荐这种方式
    yahoo21cn
    yahoo21cn
    Jul 24, 2015
    18
    买两只仓鼠,教会他们编码,就全解决了
    zmj1316
    zmj1316
    Jul 24, 2015
    19
    @yahoo21cn 两只估计不够,但是一只神奇的哥哥就可以解决了23333
    shenxgan
    shenxgan
    Jul 24, 2015
    20
    你觉得开samba怎么样?
    ceyes
    ceyes
    Jul 24, 2015
    21
    装个 Cygwin 然后 scp 多简单
    或者 rsync 也很方便啊 `rsync -azh /local/path/file [email protected]:/remote/path/file`
    akira
    akira
    Jul 24, 2015
    22
    本地搭建开发环境。。@@
    itfanr
    itfanr
    Jul 24, 2015 via Android
    23
    nfs或者samba
    choury
    choury
    Jul 24, 2015
    24
    既然在linux上面部署,为什么不直接在linux下面开发呢
    wkdhf233
    wkdhf233
    Jul 24, 2015
    25
    ExpanDrive直接把服务器的目录挂载成本地一个盘。。
    vibbow
    vibbow
    Jul 24, 2015
    26
    Goodsync...
    kungfuchicken
    kungfuchicken
    Jul 24, 2015
    27
    我用的phpstorm + nodejs 插件, phpstorm 支持自动部署,配置好服务器连接信息(支持FTP,SFTP)和对应目录(本机和服务器目录映射)之后,你只要保存代码,phpstorm就会把自动上传到服务器上,在项目目录里面添加删除文件phpstorm也会自动同步,非常方便
    zonghua
    zonghua
    Jul 24, 2015 via iPhone
    28
    @kungfuchicken 脚本语言的好处
    yakczh
    yakczh
    Jul 24, 2015
    29
    从这点上看,php果然是最好的语言
    ttph1oc
    ttph1oc
    Jul 24, 2015
    30
    你可以本地使用winSCP,开启同步模式,自动上传修改。服务器上则用supervisor或PM2自动重启。
    tabris17
    tabris17
    Jul 24, 2015
    31
    vagrant + VirtualBox
    hyt7212
    hyt7212
    Jul 24, 2015 via iPhone
    32
    @tabris17 我也在尝试用这个,看起来不错
    charlie21
    charlie21
    Jul 24, 2015
    33
    Vagrant 试过吗?
    P.S. 貌似你说的这个开发环境统一的问题,这个问题是 Vagrant 的典型应用场景? (我没用过)
    woodrat
    woodrat
    Jul 24, 2015
    34
    Emacs + TRAMP
    DaCong
    DaCong
    Jul 24, 2015
    35
    说实话,如果说git繁琐,那么,估计就没有不繁琐的了
    pubby
    pubby
    Jul 24, 2015
    36
    putty 连上测试机 emacs 干活

    同事也用phpstrom 配置sftp之类的,save的时候自动同步到测试机
    jb的IDE应该都有这样的功能。
    ksupertu
    ksupertu
    Jul 24, 2015
    37
    古老的ftp软件上上有一个自动比对同步文件夹的功能……
    js2854
    js2854
    Jul 24, 2015
    38
    1.SftpDrive免配置,通过sftp可以直接把服务器的目录挂载成本地一个盘
    2.winscp自动同步本地文件修改到linux服务器
    XadillaX
    XadillaX
    Jul 24, 2015
    39
    用 Mac 开发吧,如果不买的话也用 Linux 吧。
    ipconfiger
    ipconfiger
    Jul 24, 2015
    40
    Docker 啊!
    pheyer
    pheyer
    Jul 24, 2015
    41
    觉得Git繁琐难道就不会用客户端吗?
    Raidal
    Raidal
    Jul 24, 2015
    42
    搭车问下:如何同步还未提交到公司svn上的代码到公司和家里的两台电脑上而不会冲突?

    为了解决公司和家里的电脑上都能实时同步代码,遂将代码存放在dropbox目录中,而这些项目已纳入公司svn库。实际使用中发现如下情况会发生冲突:

    在公司将文件a做过编辑,然后提及到svn,回到家中未先从svn中update最新的代码,而此时使用dropbox同步会出现文件a冲突。

    不知道大家是如何解决这类同步问题?
    Dowding
    Dowding
    Jul 24, 2015 via Android
    43
    jetbrains的
    ide都是自带deployment的
    nisnaker
    nisnaker
    Jul 24, 2015
    44
    我做web开发,本地用Virtualbox装的Centos7,然后通过共享目录连接主机和虚拟机,主机上只有sublime,做开发用。其他所有环境都在虚拟机里,浏览器直接输虚拟机的ip,或者配置主机的host,配一些假的域名指向虚拟机ip。
    nisnaker
    nisnaker
    Jul 24, 2015
    45
    @Raidal 我直接把本背回家。。。
    zhyq132
    zhyq132
    Jul 24, 2015
    46
    vagrant+vbox
    yuankui
    yuankui
    Jul 24, 2015
    47
    你可以试试samba...

    把linux的目录映射到 windows的一个目录,你像是在windows编辑代码,但是实际上操作的事linux目录..
    clino
    clino
    Jul 24, 2015
    48
    git的提交过程复杂吗?
    msg7086
    msg7086
    Jul 25, 2015
    49
    virtualbox的共享目录功能,直接把本机的目录映射到linux内,即可。

    @pheyer 用客户端一小时提交推送几十次就不繁琐了?
    xiaobu
    xiaobu
    Jul 25, 2015
    50
    终端vim呢
    tcsky
    tcsky
    Jul 25, 2015
    51
    virtualbox 的目录挂载(vagrant最好), Samba卡的没法用.
    wangjie
    wangjie
    Jul 25, 2015
    52
    git不是比ftp快多了?如果还嫌麻烦可以写一个程序自动传嘛
    no13bus
    no13bus
    Jul 25, 2015 via iPhone
    53
    文件夹同步。
    loading
    loading
    Jul 25, 2015
    54
    如果楼主是说代码调试,你需要跑个虚拟机在本机,然后用virtualbox共享目录这一类工具。
    你每次都传到远端的服务器,这是错误的开发方式!网速再快,也没本地快的。
    zongwan
    zongwan
    Jul 25, 2015
    55
    docker + 1
    vagrant 也经常会用(本地调试)

    sublime text 在win 和 mac上的版本最好用
    coolicer
    coolicer
    Jul 25, 2015
    56
    今天看到这个http://4front-slides.aerobatic.io/#/
    qianlifeng
    qianlifeng
    Jul 25, 2015
    57
    最近发现一个上传文件的利器:szrz+xshell 实现拖拽上传,不过话说用git应该不算麻烦
    blue7wings
    blue7wings
    Jul 25, 2015
    58
    sshfs
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1299 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 235ms · UTC 21:11 · PVG 05:11 · LAX 13:11 · JFK 16:11
    ♥ Do have faith in what you're doing.