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

我想在我的基于Cedar的Heroku应用程序中更新httpd.conf。 我遇到了我的Heroku bash

heroku run bash 

并find了Apache下的conf目录。 但是当我尝试打开任何编辑器vi,vim或emacs时,我找不到任何这些程序。 你如何编辑Heroku的conf文件?

我最近把原始的要点变成了一个heroku cli插件 。

只需安装:

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

并使用:

heroku vim

heroku vim命令会把你放到一个安装在你的$PATH vim的bash shell中。 所有你需要做的就是重新训练你的手指inputheroku vim而不是heroku run bash

它看起来像你可以下载和安装vim会话:

https://gist.github.com/btakita/7853541

如果你是个受虐狂的人

即使你可以用vi编辑这些文件,也可能不会解决你的问题,因为文件系统是短暂的。 含义…如果你通过heroku run bash编辑文件,你实际上并没有改变其他dynos的文件。 要更改所有dynos的文件,您需要更改在Git库中推送的内容或更改构build包。 更多细节:
https://devcenter.heroku.com/articles/oneoff-admin-ps#formation-dynos-vs-oneoff-dynos

在Heroku上进行debugging

准备测功机

在安装naaman/heroku-vim你可以通过heroku vim创build一个新的短暂的naaman/heroku-vim 。 正如其他post所指出的,当通过浏览器查看时,您将无法看到您的更改,因为更改不会被传播,但是…您可以实际查看dyno内部的更改。

我只是试着用curl“浏览”,但是如果你能在那里获得lynx or,或者更好地获得一个ssh隧道 – 可能真的很棒。

启动服务器

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

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

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

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

它现在在后台运行!

curl你的网站

Dynos在随机端口启动。 幸运的是,你知道哪一个是$PORTvariables!

 ~ $ curl localhost:$PORT Hello World! 

编辑

现在做你的vim的东西,但是当你保存文件并再次curl – 你不会看到变化。 我不明白它在哪里被caching,但它被caching。 你必须杀死服务器并重新启动它。

重新启动服务器

  1. find进程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的父母身份 – 使用它。

     kill 582 
  2. 等待1秒钟,然后再次启动服务器(您将得到一个新的进程ID!)。 通过相同的命令curl现在将给你更新的页面。

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

  1. 将其副本放置在某个远程主机上。 我喜欢用Gist
  2. 在Gist上编辑文件,完成后获取原始URL
  3. wget你的Heroku bash上的原始URL
  4. 将获取的文件复制到原始文件的path

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

http://phpfm.sourceforge.net/