J'essaie de mettre à jour httpd.conf dans mon application Heroku basée sur le cèdre. Je suis arrivé à ma soirée Heroku avec
heroku run bash
et a trouvé le dir conf sous Apache. Mais lorsque j'essaie d'ouvrir n'importe quel éditeur vi, vim ou emacs, je ne trouve aucun de ces programmes. Comment éditez-vous les fichiers de configuration sur Heroku?
J'ai récemment transformé le Gist original en un plug-in heroku cli .
Il suffit d'installer:
heroku plugins:install https://github.com/naaman/heroku-vim
Et utilise:
heroku vim
Le heroku vim
La commande vous déposera dans un shell bash avec vim
installé sur votre $PATH
. Tout ce que vous avez à faire est de vous entraîner à taper heroku vim
au lieu de heroku run bash
.
Si vous ne voulez pas jouer avec les plugins et que vous voulez juste une copie de nano dans votre dyno unique, lancez simplement
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
Cela téléchargera une copie de nano de this plugin et la mettra dans votre CHEMIN.
il y a ed
si vous êtes masochiste.
Il semble que vous puissiez télécharger et installer vim pour une session:
#!/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
Cette idée a été trouvée ici .
Même si vous pouviez éditer les fichiers avec vi
, cela ne résoudrait probablement pas votre problème, car le système de fichiers est éphémère. Signification ... Si vous éditez un fichier via heroku run bash
vous ne changez pas le fichier pour d’autres dynos. Pour changer un fichier pour tous les dynos, vous devez soit changer ce que vous insérez dans un dépôt Git, soit changer le buildpack. Plus de détails:
https://devcenter.heroku.com/articles/oneoff-admin-ps#formation-dynos-vs-oneoff-dynos
Le plugin fourni par Naaman Newbold ne fonctionne plus avec heroku-16
pile, alors j'ai fait un nouveau plugin sur ce Gist mis à jour .
Installer:
heroku plugins:install @jasonheecs/heroku-vim
Et utilise:
heroku vim
Dans les commentaires sur le lien de réponse de Brian Takita, il y a la solution la plus récente pour que Vim fonctionne sur la console Heroku:
https://Gist.github.com/dvdbng/7375821b20f189c189ab1bd29392c98e
Juste m'a sauvé beaucoup de temps! :)
Une alternative urgente pour éditer un fichier dans Heroku:
wget
l'URL brute de votre compte HerokuAprès avoir installé naaman/heroku-vim
vous pouvez créer un nouveau dyno éphémère via heroku vim
. Comme le signalent d'autres publications, vous ne pourrez pas voir vos modifications lorsque vous les visualiserez dans le navigateur, car les modifications ne seront pas propagées, mais ... vous pourrez voir les modifications de l'intérieur du dyno lui-même.
J'ai seulement essayé de "naviguer" via curl, mais si vous pouviez obtenir lynx
là-bas, ou mieux encore, obtenir un tunnel SSH - cela pourrait être vraiment génial.
Le serveur Web ne fonctionnera pas lorsque vous instancerez heroku-vim, vous devrez donc le faire vous-même. Dans mon exemple, j'utilise php:
~ $ cat Procfile
web: vendor/bin/heroku-php-Apache2
Vous pouvez lancer cette commande vous-même!
~ $ vendor/bin/heroku-php-Apache2 2>/dev/null &
[2] 845
Il fonctionne maintenant en arrière-plan!
Dynos démarre sur des ports aléatoires. Heureusement, vous savez lequel parce que c'est le $PORT
variable!
~ $ curl localhost:$PORT
Hello World!
Faites votre vim chose maintenant, mais lorsque vous enregistrez le fichier et que vous le recourbez à nouveau, vous ne verrez pas les modifications. Je ne comprends pas où est mis en cache, mais c'est en cache. Vous devez tuer le serveur et le redémarrer.
Trouver l'identifiant du processus
~ $ 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
Ici 582
est l'identifiant du parent - utilisez-le.
kill 582
Attendez une seconde, puis redémarrez le serveur (vous obtiendrez un nouvel identifiant de processus!). Curling via la même commande vous donnera maintenant la page mise à jour.
Si vous souhaitez simplement afficher le contenu du fichier, alors:
$ cd folder
$ cat filename.csv
J'ai écrit un article complet sur Comment éditer un fichier sur Heroku Dynos en utilisant Nano ou Vim , mais en gros:
Vous pouvez utiliser la ligne de commande:
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
J'espère que ça aide!
Il existe maintenant un certain nombre de buildpacks incluant vim: https://elements.heroku.com/search/buildpacks?q=vim
Vous pouvez en ajouter un à l'application Heroku en question, en utilisant support buildpack .
l’autre façon si votre serveur php est d’envoyer PHP Gestionnaire de fichiers, fichier unique et vous pouvez le télécharger à partir de
http://phpfm.sourceforge.net/