Receta rápida para montar un servidor web con nombre público y soporte PHP, a coste 0, en 2 minutos.
1) Entra en Google Cloud Shell
https://cloud.google.com/shell
Verás una terminal en el navegador (internamente usa Debian GNU/Linu 10)
Por defecto serás el usuario X (donde X es tu nombre en Gmail/Google)
2) Google Cloud Shell no es accesible desde el exterior (no te ofrece una IP pública, sino privada)
$ ifconfig
inet 172.17.0.4
Puedes convertirte en root, tienes permisos de sudo. Así puedes instalar cualquier paquete.
El primero que necesitaremos es ngrok, así que vamos allá
$ wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip
$ unzip
3) También necesitaremos tmux
$ sudo apt update
$ sudo apt install tmux
Listo, todo preparado.
4) Abrimos una sesión con tmux
$ tmux
Y creamos un simple script PHP:
$ echo «<?php phpinfo();»> info.php
Lanzamos ahora un servidor web con soporte PHP en el puerto 4444:
$ php -S 0.0.0.0:4444
5) Abrimos otra ventana tmux. Para ello, pulsamos Ctrl+b y a continuación la tecla c (create)
Desde aquí creamos un túnel con ngrok, para que nos asigne un nombre accesible desde el exterior.
Lo conectamos con el puerto 4444. Todo ello con:
$ ngrok http 4444
6) Fin! Ya tenemos accesible nuestro server PHP desde el navegador, a través de un nombre público a coste 0. Por supuesto puedes instalar mysql o cualquier otra BBDD o lenguaje de scripting (nodejs, Ruby…)
PD: alguien puede argumentar que esto mismo se puede hacer en local y enlazar por ngrok. TRUE, pero el ancho de banda que ofrece Google seguro que mejora al que tienes en casa. Y en la shell de Google tendrás más de 20 GB libres. Rápido, barato y espacioso!
PD2: y otra razón es que puedes editar tus scripts desde el navegador y ver los resultados on-the-fly
Originally tweeted by juanan (@juanan) on 24 February, 2021.
Interesantísimo.
Eso sí, hay un error en el punto 1: el enlace lleva a https://cloud.google.com/shell%7D
Con ese «%7D» no funciona.
Estamos ávidos por aprender más.
Muchas gracias por compartirlo.
Un saludo
¡Corregido! Gracias por el aviso 🙂