Despues de investigar bastante, no hay realmente una buena solucion para hosting gratuito de wordpress.
Realmente todos tienen una contra, o no te permiten SSL
Bueno, hay una respuesta a esto. Dado que existen VMs (VPS) gratis, podes lanzar un sitio wordpress a traves de una de estas insetancias. Podes usar Amazon, o Google Cloud, ya que ambas ofrecen un Tier Gratuito para Maquinas Virtuales durante un anio y ambas son muy buenas.
Tanto AWS como Google Cloud Compute permiten lanzar una VM ya armada con wordpress pero es mas caro que una maquina comun en ubunto, y la realidad es que la maquina pelada con UBUNTU es mucho mas customizable y nos permitiria tener varios sitios de wordpress dentro de la misma.
Asi que esta sera una guia para poder configurar tu propio sitio wordpress desde la terminal de la VM, es decir a traves de una conexion SSH.
En este posteo no vamos a entrar en mucho detalle sobre que es y que hace cada cosa. Pero si seguis esta guia vas a terminar con una instancia de wordpress lanzada y andando.
- Primero hay que crear la cuenta en google cloud compute. Te piden tarjeta de credito, pero te cobran algo que se reembolsa. Es simplemente para verificar tu identidad, que no seas spam.
- Ir a google cloud compute y lanzar una nueva instancia. El tamano de la instancia va variar segun diferentes factores, trafico, necesidad de almacenamiento, poder de procesamiento.
Tenemos que permitir trafico HTTPS y HTTP.
-
Una vez que elegis el tamano de la instancia, yo elegi Micro, tenemos que esperar que la instancia se termine de crear.
-
Apretamos SSH, esto es algo muy comodo que ofrece google cloud compute, desde el panel de la VPS podemos apretar en SSH y se nos abre una terminal. Es muy util si estamos en Windows, nos ahorramos bajar el key y usar putty. De una entramos en la terminal ubuntu.
Se deberia ver asi:
- Despues de eso, empieza lo divertido. Primero necesitamos instalar varios paquetes en la instancia VM.
Primero hacer update y upgrade.
sudo apt update -y
sudo apt upgrade -y
Then we need to set up apache! or the famous LAMP
Linux, Apache, MySQL and PHP
Luego vamos a instalar el famoso stack LAMP, Linux-Apache-MySql-Php
- Corre lo siguiente
sudo apt install apache2
Una vez listo, apache2 deberia estar andando, lo podemos chequear con el siguiente comando.
sudo systemctl status apache2
It should say, its active and running.
Si anda deberia decir "active and running"
Si no esta funcionando podemos arrancarlo manualmente:
sudo systemctl start apache2
Deberiamos poder chequear que apache este funcionando, copiamos el IP de nuestra VP y lo pegamos en la barra del navegador. Nos deberia mostrar la pagina stock de Apache. Asegurate de no estar forzando HTTPS en la IP del VM, todavia no estaria andando por HTTPs, nos faltan algunas cositas. Asi que si le pones HTTPS no va ingresar.
Esta es tu IP
Esta es la pagina por defecto de Apache.
Para garantizar que el servicio de apache2 siempre corra tenemos que ejecutar el siguiente comando:
sudo systemctl enable apache2
Si se reinicia la VM, apache2 arranca solo denuevo.
- Ahora vamos a instalar la base de datos, vamos usar MARIADB esta vez.
sudo apt install mariadb-server mariadb-client
Estamos instalando tanto el cliente como el servidor. El servidor es para armar nuestro server de base de datos, el cliente se usa para poder conectarnos al server de la DB.
Ahora arrancamos el server:
sudo systemctl start mariadb
De nuevo, chequeamos con el status:
sudo systemctl status mariadb
De nuevo, deberia decir UP and Running
- Ahora vamos a configurar la DB, usamos el siguiente comando:
sudo mysql_secure_installation
Apretamos enter en el prompt que dice "enter current password for root" ya que no tenemos un password todavia.
Apretas Y para el "set root password".
Elegimos nuestro password para root, que debemos recordar.
Elegimos Y para remover el usuario anonimo, y de nuevo Y para no permitir el root login remotly.
Despues de estos comandos reiniciamos MariaDB.
sudo systemctl restart mariadb
- Ahora vamos a instalar algunos requerimientos para poder dejar andando PHP, ya que wordpress es basicamente PHP.
sudo apt install php php-mysql php-gd php-cli php-common
- Vamos a descargar wordpress.
Pero antes, necesitamos wget
y unzip
. Wget ya lo deberiamos tener, pero unzip seguramente no, asi que corremos lo siguiente.
sudo apt install wget unzip
Una vez que esta listo esto, bajamos wordpress con wget
sudo wget https://wordpress.org/latest.zip
Esto va bajar la ultima version de wordpress, pero en zip. Asi que tenemos que descomprimirlo.
sudo unzip latest.zip
It will generate a wordpress directory, check it by using the "ls" command.
Se va a crear un directorio de wordpress, lo podemos chequear usando el comando ls
- Vamos a mover la carpeta de wordpress al directorio de apache2
sudo cp -r wordpress/* /var/www/html
Esto va a mover todos los archivos a la carpeta de apache. Vamos a ir a ese directorio ahora:
cd /var/www/html
ls
Ya deberiamos tener los archivos ahi, ahora vamos a cambiarle los privilegios de usuario, para que apache los pueda usar:
sudo chwon www-data:www-data -R /var/www/html
Ahora, para acceder a la pagina tenemos que remover la pagina stock de apache. Vamos a borrar el index.html
sudo rm -rf index.html
Ahora si vamos al IP de nuestro server deberiamos ver la pagina de instalacion de wordpress! BIEN!
- Falta un poquito, tenemos que setear la DB para wordpress:
Volvemos a la terminal SSH y vamos con el siguiente:
sudo mysql -u root -p
Nos va a preguntar nuestro password para root, que fue el que seteamos antes. Lo ponemos y nos deberia loguear a MariaDB. Asi que vamos armar una base de datos ahora:
create database wpdb;
wpdb puede ser lo que quieras, podes ponerle wordpress, database, bd, el nombre que quieras. Luego necesitamos un usuario para que wordpress use:
create user "user"@"%" identified by "password";
Cambia user y password por el usuario y password que quieras. Ahora hay que darle accceso a la DB a este nuevo usuario.
grant all privileges on wpdb.* to "user"@"%";
Salimos con el comando:
exit
Ahora volviendo al navegador, le vamos a dar wordpress los datos que pidio!
Database name: wpdb
username: user
password: password
Database Host: localhost
table prefix: wp_
Apretamos Submit y deberia estar listo.
Te puede aparecer un mensaje que dice que no se pudo escribir a la base de datos. Te puede llegar a dar un codigo de PHP para agregar a nuestra configuracion.
Volviendo a la terminal, dentro de la carpeta de wordpress vamos con el comando:
sudo nano wp-config.php
Una vez dentro, borramos todo y pegamos el codigo que copiamos recien. Hacemos Ctrl-X para salir, y Y para guardar.
- Listo, volvemos para atras, apretamos continue y corremos la instalacion. Deberia funcionar bien
Site title: Whatever
username: el usuario para loguearse al admin de wordpress
password: contrasena
email: un email para recuperar el usuario
Despues de eso, nos logueamos a wordpress y listo.
Solo falta el SSL, y el dominio custom, pero eso va en otro posteo.