En proyectos pequeños y con la finalidad de abaratar costes es común utilizar hostings compartidos, hostings que a menudo presentan ciertas limitaciones como el acceso restringido al servidor, al código o a la base de datos. Para sortear estas limitaciones, herramientas como WinSCP, FileZilla o phpMyAdmin pueden ser útiles siendo, posiblemente, la opción más elegida. Sin embargo, otra opción es realizar todas las tareas directamente desde nuestra consola de Linux, siempre y cuando las limitaciones de nuestro hosting lo permira, claro. En este artículo, exploraremos esta última alternativa y cómo aprovecharla al máximo.
Subir nuestro código al hosting
En primer lugar nos surge la necesidad de subir desde nuestra máquina local el código del proyecto al hosting. Para ello necesitaremos disponer de un usuario sftp.
Conectar a un servidor SFTP
sftp [usuario]@[dirección_IP] # O también el nombre de dominio
Subir los archivos Al disponer de una sesión SFTP, podemos usar el comando put con la opción -r (recursivo) para subir directorios y todos sus archivos:
put -r /ruta/local/directorio /ruta/remota/
Para más información puedes consultar: Conectar y transferir archivos vía sftp desde consola
Importar nuestra base de datos en el hosting
Exportar la Base de Datos:
Lo primero que necesitaremos es disponer de un dump de la base de datos que estamos utilizando en nuestro entorno local. En nuestro caso estamos utillizando ddev, así que ya dentro de nuestro proyecto procederemos a crear nuestro dump:
ddev export-db --file=<nombre de nuestra bbdd>.sql
Esto guardará un archivo SQL en tu directorio actual que contiene un volcado completo de la base de datos.
Ya con nuestro dump llega el momento de volcarlo en el MySql de nuestro hosting.
Subir el dump al hosting compartido
Como primer paso volveremos a conectar vía SFTP con nuestro servidor.
sftp [usuario]@[dirección_IP]
A continuación navegaremos local y remotamente a los directorios origen y destino donde tenemos nuestro archivo y donde queremos subirlo.
pwd # Ubicación actual en el servidor remoto
cd <directorio> #navegamos a la carpeta donde vamos a dejar el dump
lpwd # Ubicación actual en nuestra máquina local
lcd <directorio> #navegamos a la carpeta donde tenemos el dump
lls # Listamos archivos locales para verificar que existe el dump
put <archivo> # subimos el dump
bye # Salimos del SFTP
Importar el dump en la base de datos
Ya con el dump en el servidor accederemos vía SSH para importarlo en el MySQL.
ssh [usuario]@[dirección_IP]
pwd # Ubicación actual.
cd <directorio> # Navegamos a la ubicación del dump
Importamos el esquema:
mysql -u <usuario>-p -h <servidor>
show databases;
exit
mysql -u <usuario> -p -h <servidor> <esquema> < <archivo>.sql
exit
Con esto deberíamos de tener en nuestro servidor ya desplegados tanto el código como la base de datos de nuestro proyecto.