我正在尝试更新基于Cedar的Heroku应用程序中的httpd.conf . 我得到了我的Heroku bash
heroku run bash
并在apache下找到了conf dir . 但是当我尝试打开任何编辑器vi,vim或emacs时,我找不到任何这些程序 . 你如何在Heroku上编辑conf文件?
我最近把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 .
$PATH
vim
如果你不想搞乱插件,只想在你的一次性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中 .
如果你是受虐狂,那就是 ed .
ed
看起来您可以为一个会话下载并安装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 .
即使您可以使用 vi 编辑文件,它也可能无法解决您的问题,因为文件系统是短暂的 . 含义...如果您通过 heroku run bash 编辑文件,则实际上并未更改其他dynos的文件 . 要更改所有dynos的文件,您需要更改在Git仓库中推送的内容或更改buildpack . 更多细节:https://devcenter.heroku.com/articles/oneoff-admin-ps#formation-dynos-vs-oneoff-dynos
vi
安装 naaman/heroku-vim 后,您可以通过 heroku vim 创建一个新的短暂dyno . 正如其他帖子所指出的那样,你赢得了传播,但是......你实际上可以从dyno内部查看更改 .
naaman/heroku-vim
我只通过卷曲试验了"browsing",但是如果你可以在那里得到 lynx ,或者更好的是获得一个ssh隧道 - 可能真的很棒 .
lynx
当您实例化heroku-vim时,Web服务器将不会运行,因此您需要自己完成 . 在我的例子中,我正在运行php:
~ $ cat Procfile web: vendor/bin/heroku-php-apache2
你可以自己开始这个命令!
~ $ vendor/bin/heroku-php-apache2 2>/dev/null & [2] 845
它现在在后台运行!
Dynos在随机端口上启动 . 幸运的是,你知道哪一个,因为它是 $PORT 变量!
$PORT
~ $ curl localhost:$PORT Hello World!
现在做你的vim,但是当你保存文件并再次卷曲时 - 你将看不到变化 . 我不明白它被缓存的位置,但是它被缓存了 . 你必须杀死服务器并重新启动它 .
~ $ 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 - 使用它 .
582
kill 582
在关于Brian Takita的回答链接的评论中,有一个更新的解决方案让 Vim 在Heroku控制台上工作:
https://gist.github.com/dvdbng/7375821b20f189c189ab1bd29392c98e
只是救了我很多时间! :)
在Heroku中编辑文件的紧急替代方法:
将其副本放在某个远程主机上 . 我喜欢用Gist
在Gist上编辑文件,完成后获取原始URL
wget Heroku bash上的原始网址
wget
将获取的文件复制到原始文件的路径
现在有许多包含vim的buildpack:https://elements.heroku.com/search/buildpacks?q=vim
您可以使用support buildpack support将其中一个添加到相关的Heroku应用程序中 .
我在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
您可以使用Heroku插件:heroku-vim
您可以使用Heroku Buildpacks:heroku-buildpack-vip
希望能帮助到你!
另一种方法,如果你的服务器运行php是上传PHP文件管理器,它是单个文件,你可以从中下载
http://phpfm.sourceforge.net/
11 回答
我最近把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
.如果你不想搞乱插件,只想在你的一次性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中 .
如果你是受虐狂,那就是
ed
.看起来您可以为一个会话下载并安装vim:
这个想法被发现here .
即使您可以使用
vi
编辑文件,它也可能无法解决您的问题,因为文件系统是短暂的 . 含义...如果您通过heroku run bash
编辑文件,则实际上并未更改其他dynos的文件 . 要更改所有dynos的文件,您需要更改在Git仓库中推送的内容或更改buildpack . 更多细节:https://devcenter.heroku.com/articles/oneoff-admin-ps#formation-dynos-vs-oneoff-dynos
在Heroku上调试
准备dyno
安装
naaman/heroku-vim
后,您可以通过heroku vim
创建一个新的短暂dyno . 正如其他帖子所指出的那样,你赢得了传播,但是......你实际上可以从dyno内部查看更改 .我只通过卷曲试验了"browsing",但是如果你可以在那里得到
lynx
,或者更好的是获得一个ssh隧道 - 可能真的很棒 .启动服务器
当您实例化heroku-vim时,Web服务器将不会运行,因此您需要自己完成 . 在我的例子中,我正在运行php:
你可以自己开始这个命令!
它现在在后台运行!
卷曲你的网站
Dynos在随机端口上启动 . 幸运的是,你知道哪一个,因为它是
$PORT
变量!编辑
现在做你的vim,但是当你保存文件并再次卷曲时 - 你将看不到变化 . 我不明白它被缓存的位置,但是它被缓存了 . 你必须杀死服务器并重新启动它 .
重新启动服务器
这里
582
是父ID - 使用它 .在关于Brian Takita的回答链接的评论中,有一个更新的解决方案让 Vim 在Heroku控制台上工作:
https://gist.github.com/dvdbng/7375821b20f189c189ab1bd29392c98e
只是救了我很多时间! :)
在Heroku中编辑文件的紧急替代方法:
将其副本放在某个远程主机上 . 我喜欢用Gist
在Gist上编辑文件,完成后获取原始URL
wget
Heroku bash上的原始网址将获取的文件复制到原始文件的路径
现在有许多包含vim的buildpack:https://elements.heroku.com/search/buildpacks?q=vim
您可以使用support buildpack support将其中一个添加到相关的Heroku应用程序中 .
我在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
您可以使用Heroku插件:heroku-vim
您可以使用Heroku Buildpacks:heroku-buildpack-vip
希望能帮助到你!
另一种方法,如果你的服务器运行php是上传PHP文件管理器,它是单个文件,你可以从中下载
http://phpfm.sourceforge.net/