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会话:
如果你是个受虐狂的人
即使你可以用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在随机端口启动。 幸运的是,你知道哪一个是$PORT
variables!
~ $ curl localhost:$PORT Hello World!
编辑
现在做你的vim的东西,但是当你保存文件并再次curl – 你不会看到变化。 我不明白它在哪里被caching,但它被caching。 你必须杀死服务器并重新启动它。
重新启动服务器
-
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
-
等待1秒钟,然后再次启动服务器(您将得到一个新的进程ID!)。 通过相同的命令curl现在将给你更新的页面。
在Heroku中编辑文件的紧急替代方法:
- 将其副本放置在某个远程主机上。 我喜欢用Gist
- 在Gist上编辑文件,完成后获取原始URL
-
wget
你的Heroku bash上的原始URL - 将获取的文件复制到原始文件的path
另一种方式,如果你的服务器运行PHP是上传PHP文件pipe理器,它的单个文件,你可以从它下载
http://phpfm.sourceforge.net/