我正在尝试在基于Cedar的Heroku应用程序中更新httpd.conf。我与我的Heroku重击
heroku run bash
并在apache下找到conf目录。但是,当我尝试打开任何编辑器vi,vim或emacs时,找不到任何这些程序。您如何在Heroku上编辑conf文件?
我正在尝试在基于Cedar的Heroku应用程序中更新httpd.conf。我与我的Heroku重击
heroku run bash
并在apache下找到conf目录。但是,当我尝试打开任何编辑器vi,vim或emacs时,找不到任何这些程序。您如何在Heroku上编辑conf文件?
Answers:
我最近将原来的要点变成了heroku cli插件。
只需安装:
heroku plugins:install https://github.com/naaman/heroku-vim
并使用:
heroku vim
该heroku vim
命令会将您放入vim
安装在Windows上的bash shell中$PATH
。您所要做的就是重新训练手指以输入,heroku vim
而不要输入heroku run bash
。
hbuild
。它可以让您在没有git提交的情况下更改源代码,因此您可以在Heroku上尝试一些东西,而不会破坏git的历史记录。
debug-heroku
,请像这样部署:git push heroku debug-heroku:master
。
如果您不想弄乱插件,而只想在一次性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
这将从该插件下载nano的副本,并将其放入您的PATH中。
Error opening terminal: unknown.
您似乎可以为一个会话下载并安装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
这个想法在这里找到。
即使您可以用vi
它编辑文件,也可能无法解决问题,因为文件系统是临时的。含义...如果您通过编辑文件,heroku run bash
实际上并没有为其他测功机更改文件。要更改所有dyno的文件,您需要更改您在Git存储库中的推送内容或更改buildpack。更多详细信息:https :
//devcenter.heroku.com/articles/oneoff-admin-ps#formation-dynos-vs-oneoff-dynos
heroku run bash
,所以vi / vim对我来说非常有用。
heroku ps:exec
。
heroku ps:exec
),更改文件,启动服务器的第二个实例,将端口转发到dyno(heroku ps:forward 3000
)。然后,curl localhost:3000
。
Naaman Newbold提供的插件不再可用于heroku-16
堆栈,因此我根据此更新的gist制作了一个新插件。
安装:
heroku plugins:install @jasonheecs/heroku-vim
并使用:
heroku vim
在Brian Takita的答案链接上的评论中,提供了使Vim在Heroku控制台上运行的最新解决方案:
https://gist.github.com/dvdbng/7375821b20f189c189ab1bd29392c98e
只是节省了我很多时间!:)
安装完成后,naaman/heroku-vim
您可以通过创建新的临时dyno heroku vim
。正如其他帖子正确指出的那样,通过浏览器查看时,您将看不到您的更改,因为更改不会被传播,但是...您实际上可以从dyno本身内部查看更改。
我只是尝试通过curl进行“浏览”,但是如果您可以到达lynx
那里,或者更好地获得ssh隧道,那可能会很棒。
实例化heroku-vim时,Web服务器将不会运行,因此您需要自己进行操作。在我的示例中,我正在运行php:
~ $ cat Procfile
web: vendor/bin/heroku-php-apache2
您可以自己启动此命令!
~ $ vendor/bin/heroku-php-apache2 2>/dev/null &
[2] 845
现在正在后台运行!
测功机在随机端口上启动。幸运的是,您知道是哪一个,因为它是$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!)。现在,通过相同命令进行卷曲将为您提供更新的页面。
在Heroku中编辑文件的紧急替代方法:
wget
Heroku bash上的原始URL我写了一篇有关如何使用Nano或Vim在Heroku Dynos上编辑文件的完整文章,但基本上是:
您可以使用命令行:
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
希望能帮助到你!
vim: error while loading shared libraries: libXt.so.6: cannot open shared object file: No such file or directory
。但是buildpack确实起作用了。
如果您只想查看文件的内容,则:
$ cd folder
$ cat filename.csv
现在有许多包含vim的buildpack:https ://elements.heroku.com/search/buildpacks?q = vim
您可以使用support buildpack support将其中之一添加到有问题的Heroku应用中。
无需按Heroku即可在dyno中更改文件并查看结果:
安装heroku-buildpack-vim
buildpack:
$ heroku buildpacks:add \
https://github.com/carloluis/heroku-buildpack-vim
SSH成一个动态:
$ heroku ps:exec
创建并运行start.sh:
#!/usr/bin/env bash
set -eu
export DATABASE_URL=...
bin/rails s -p 4000
转发端口4000(第二个控制台):
$ heroku ps:forward
localhost:4000
在浏览器中打开。
start.sh
,更改文件,重新启动,刷新浏览器页面。我更喜欢Nano编辑器,您可以使用以下buildpack ... https://github.com/velizarn/heroku-buildpack-nano