¿Qué editor de texto está disponible en Heroku bash shell?
Estoy intentando actualizar httpd.conf en mi aplicación Heroku basada en Cedro. Llegué a mi fiesta de Heroku con
heroku run bash
Y encontró el dir conf bajo apache. Pero cuando intento abrir cualquier editor vi, vim o emacs, no puedo encontrar ninguno de estos programas. Cómo editar archivos conf en Heroku?
10 answers
Recientemente convertí el gist original en un heroku cli plugin.
Simplemente instale:
heroku plugins:install https://github.com/naaman/heroku-vim
Y uso:
heroku vim
El comando heroku vim
te llevará a un shell bash con vim
instalado en tu $PATH
. Todo lo que tienes que hacer es volver a entrenar tus dedos para escribir heroku vim
en lugar de heroku run bash
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-25 07:08:07
Si no quieres perder el tiempo con los complementos y solo quieres una copia de nano en tu dyno único, simplemente ejecuta
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
Esto descargará una copia de nano desde este plugin y lo pondrá en su CAMINO.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-09 12:54:23
Hay ed
si eres masoquista.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-03-20 21:35:45
Parece que puede descargar e instalar vim para una sesión:
#!/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
Esta idea se encontró aquí.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-08-17 19:38:53
Incluso si pudiera editar los archivos con vi
probablemente no resolvería su problema porque el sistema de archivos es efímero. Significado... Si edita un archivo a través de heroku run bash
, en realidad no está cambiando el archivo para otros dynos. Para cambiar un archivo para todos los dynos necesitas cambiar lo que envías en un repositorio Git o cambiar el buildpack. Más details:
https://devcenter.heroku.com/articles/oneoff-admin-ps#formation-dynos-vs-oneoff-dynos
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-10-01 13:03:21
Depuración en Heroku
Preparar el dinamómetro
Después de instalar naaman/heroku-vim
puede crear un nuevo dinamómetro efímero a través de heroku vim
. Como se señala correctamente por otros mensajes que no será capaz de ver sus cambios al ver a través del navegador porque los cambios no se propagan, pero... en realidad, puede ver los cambios desde el interior del propio banco de pruebas.
Solo he experimentado con "navegar" a través de curl, pero si pudiera obtener lynx
allí, o mejor aún obtener un túnel ssh could podría ser realmente genial.
Inicie el servidor
El servidor web no se ejecutará cuando instancies heroku-vim, por lo que tendrás que hacerlo tú mismo. En mi ejemplo estoy ejecutando php:
~ $ cat Procfile
web: vendor/bin/heroku-php-apache2
Puede iniciar este comando usted mismo!
~ $ vendor/bin/heroku-php-apache2 2>/dev/null &
[2] 845
¡Ahora se está ejecutando en segundo plano!
Curl su sitio web
Los dynos se inician en puertos aleatorios. Afortunadamente sabes cuál porque es la variable $PORT
!
~ $ curl localhost:$PORT
Hello World!
Edición
Haz lo tuyo con vim ahora, pero cuando guarde el archivo y curl de nuevo-no verá los cambios. No entiendo dónde está en caché, pero está en caché. Tienes que matar el servidor y reiniciarlo.
Reiniciar el servidor
-
Encuentra el id del proceso
~ $ 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
Aquí
582
está el id padre use use eso.kill 582
Espere solo 1 segundo, y luego inicie el servidor de nuevo (obtendrá un nuevo id de proceso!). Curling a través del mismo comando ahora le dará la actualización pagina.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-12 12:15:57
En los comentarios sobre el enlace de respuesta de Brian Takita, existe la solución más reciente para que Vim funcione en la consola Heroku:
Https://gist.github.com/dvdbng/7375821b20f189c189ab1bd29392c98e
Me acaba de ahorrar un montón de tiempo! :)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-03 18:53:29
Una alternativa urgente para editar un archivo en Heroku:
- coloque una copia en algún host remoto. Me gusta usar Gist
- edite el archivo en Gist y cuando termine obtenga la URL sin procesar
-
wget
la URL sin procesar en su Heroku bash - copie el archivo obtenido a la ruta del archivo original
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-16 18:07:03
La forma alternativa si su servidor ejecuta php es cargar el Gestor de archivos PHP, que solo archivo y se puede descargar desde
http://phpfm.sourceforge.net/
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-02 19:09:34
Ahora hay una serie de buildpacks que incluyen vim: https://elements.heroku.com/search/buildpacks?q=vim
Puede agregar uno de estos a la aplicación Heroku en cuestión, usando support buildpack support.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-04-09 10:36:21