En esta guía te mostraremos cómo instalar el runtime de Goland o Go en tu hosting con panel de control cPanel.
Cómo instalar Goland en tu plan de hosting cPanel
En WNPower hacemos las cosas más fáciles, con lo que si quieres usar Go o Goland en tu plan de hosting con cPanel, sigue estos pasos:
- Abre la Terminal de cPanel.
- Corre el siguiente comando:
wget https://raw.githubusercontent.com/wnpower/Golang-Install/master/install_golang.sh -O install_golang.sh && bash install_golang.sh
Cómo probar que Go funcione
-
Crea un archivo "hello_world.go" con el siguiente contenido y colócalo en alguna carpeta:
package main
import "fmt"
func main() {
fmt.Println("hello world")
} -
Ejecútalo:
go run hello_world.go
-
Si todo salió bien, ejecuta este comando y verás el típico "hello world".
go run hello_world.go
Manejando la app con PM2
Si fuera necesario que la aplicación corra en segundo plano, la mejor forma es usar PM2, con lo que te recomendamos:
- Instalar PM2 en tu plan de hosting.
- Y luego levantar app con PM2 ejecutando este comando:
pm2 start "~/bin/go run ~/CARPETA_DE_LA_APP/miapp.go"
Cómo hacer que tu app se ejecute automáticamente con una Tarea Cron
Como estás trabajando en un entorno de hosting administrado, si tenemos que realizar un cambio de último momento, aplicar un reinicio de servicios, realizar un mantenimiento o aplicar actualizaciones en la plataforma, tu aplicación se detendrá y no volverá a iniciar automáticamente.
Para asegurarte de que tu app se mantenga iniciada, crea una tarea Cron cada 30 minutos en tu cPanel con el siguiente contenido:
PATH=$PATH:$HOME/bin; export PATH; /usr/bin/pgrep "PM2" >/dev/null || (pm2 start "~/bin/go run ~/CARPETA_APP/miapp.go" --watch)
Los errores más comunes y soluciones de Goland en cPanel
Detallaremos en este apartado algunos de los errores más comunes al ejecutar Go o Goland en cPanel.
Error fork/exec /tmp/go-build1956726977/b001/exe/test: permission denied
Para resolver el error "fork/exec /tmp/go-build1956726977/b001/exe/test: permission denied" ejecuta este comando:
export TMPDIR=~/tmp/
Error "runtime: failed to create new OS thread (have 2 already; errno=11)"
Esto se debe a la cantidad de procesos que levanta Go cuando se ejecuta, que puede superar la cantidad de procesos máximos permitidos del plan de hosting. Se puede solucionar temporalmente ejecutando lo siguiente por consola antes de ejecutar Go para limitar la cantidad de procesos máximos.
Ejecuta:
GOMAXPROCS=1
Si logras resolverlo, pero a costas de que tu app se ralentice, te recomendamos cambiar a un plan de hosting más grande.
Comentarios
0 comentarios
Inicie sesión para dejar un comentario.