首页 文章

Heroku bash shell中有哪些文本编辑器?

提问于
浏览
96

我正在尝试更新基于Cedar的Heroku应用程序中的httpd.conf . 我得到了我的Heroku bash

heroku run bash

并在apache下找到了conf dir . 但是当我尝试打开任何编辑器vi,vim或emacs时,我找不到任何这些程序 . 你如何在Heroku上编辑conf文件?

11 回答

  • 1

    我最近把original gist变成了heroku cli plugin .

    只需安装:

    heroku plugins:install https://github.com/naaman/heroku-vim

    并使用:

    heroku vim

    heroku vim 命令会将您放入 $PATH 上安装了 vim 的bash shell . 您所要做的就是重新训练手指以输入 heroku vim 而不是 heroku run bash .

  • 1

    如果你不想搞乱插件,只想在你的一次性dyno中使用nano的副本,那就跑吧

    mkdir /app/nano curl https://github.com/Ehryk/heroku-nano/raw/master/heroku-nano-2.5.1/nano.tar.gz --location --silent | tar xz -C /app/nano export PATH=$PATH:/app/nano

    这将从this plugin下载nano的副本并将其放入PATH中 .

  • 4

    如果你是受虐狂,那就是 ed .

  • 5

    看起来您可以为一个会话下载并安装vim:

    #!/usr/bin/env bash
    curl https://s3.amazonaws.com/heroku-jvm-buildpack-vi/vim-7.3.tar.gz --output vim.tar.gz
    mkdir vim && tar xzvf vim.tar.gz -C vim
    export PATH=$PATH:/app/vim/bin
    

    这个想法被发现here .

  • 31

    即使您可以使用 vi 编辑文件,它也可能无法解决您的问题,因为文件系统是短暂的 . 含义...如果您通过 heroku run bash 编辑文件,则实际上并未更改其他dynos的文件 . 要更改所有dynos的文件,您需要更改在Git仓库中推送的内容或更改buildpack . 更多细节:
    https://devcenter.heroku.com/articles/oneoff-admin-ps#formation-dynos-vs-oneoff-dynos

  • 0

    在Heroku上调试

    准备dyno

    安装 naaman/heroku-vim 后,您可以通过 heroku vim 创建一个新的短暂dyno . 正如其他帖子所指出的那样,你赢得了传播,但是......你实际上可以从dyno内部查看更改 .

    我只通过卷曲试验了"browsing",但是如果你可以在那里得到 lynx ,或者更好的是获得一个ssh隧道 - 可能真的很棒 .

    启动服务器

    当您实例化heroku-vim时,Web服务器将不会运行,因此您需要自己完成 . 在我的例子中,我正在运行php:

    ~ $ cat Procfile
    web: vendor/bin/heroku-php-apache2
    

    你可以自己开始这个命令!

    ~ $ vendor/bin/heroku-php-apache2 2>/dev/null &
    [2] 845
    

    它现在在后台运行!

    卷曲你的网站

    Dynos在随机端口上启动 . 幸运的是,你知道哪一个,因为它是 $PORT 变量!

    ~ $ curl localhost:$PORT
    Hello World!
    

    编辑

    现在做你的vim,但是当你保存文件并再次卷曲时 - 你将看不到变化 . 我不明白它被缓存的位置,但是它被缓存了 . 你必须杀死服务器并重新启动它 .

    重新启动服务器

    • 查找进程ID
    ~ $ ps -f
    UID        PID  PPID  C STIME TTY          TIME CMD
    u6897        3     1  0 05:34 ?        00:00:00 bash
    u6897      582     3  0 05:53 ?        00:00:00 bash vendor/bin/heroku-php-apache2
    u6897      652   582  0 05:53 ?        00:00:00 bash vendor/bin/heroku-php-apache2
    u6897      653   582  0 05:53 ?        00:00:00 bash vendor/bin/heroku-php-apache2
    

    这里 582 是父ID - 使用它 .

    kill 582
    
    • 等待1秒,然后再次启动服务器(您将获得一个新的进程ID!) . 通过相同的命令进行卷曲现在将为您提供更新的页面 .
  • 25

    在关于Brian Takita的回答链接的评论中,有一个更新的解决方案让 Vim 在Heroku控制台上工作:

    https://gist.github.com/dvdbng/7375821b20f189c189ab1bd29392c98e

    只是救了我很多时间! :)

  • 5

    在Heroku中编辑文件的紧急替代方法:

    • 将其副本放在某个远程主机上 . 我喜欢用Gist

    • 在Gist上编辑文件,完成后获取原始URL

    • wget Heroku bash上的原始网址

    • 将获取的文件复制到原始文件的路径

  • 18

    现在有许多包含vim的buildpack:https://elements.heroku.com/search/buildpacks?q=vim

    您可以使用support buildpack support将其中一个添加到相关的Heroku应用程序中 .

  • 12

    我在How to Edit a File on Heroku Dynos using Nano or Vim写了一篇完整的文章,但基本上:

    • 您可以使用命令行:

    curl https://s3.amazonaws.com/heroku-jvm-buildpack-vi/vim-7.3.tar.gz --output vim.tar.gz mkdir vim && tar xzvf vim.tar.gz -C vim export PATH=$PATH:/app/vim/bin

    希望能帮助到你!

  • 117

    另一种方法,如果你的服务器运行php是上传PHP文件管理器,它是单个文件,你可以从中下载

    http://phpfm.sourceforge.net/

相关问题