En este post vamos a enseñar cómo instalar WordPress en un servidor Nginx (Ubuntu) desde 0, justo como nosotros lo hemos tenido que hacer para nuestra página corporativa.
Hemos creado un curso online donde puedes disfrutar de este curso en un formato más atractivo y pedagógico, puedes acceder a el desde este botón:
Tabla de contenidos
Cómo instalar NGINX en Ubuntu
Damos por hecho en todo nuestro tutorial que se tiene instalado Nginx ya en el servidor. En caso contrario, estos son los sencillos pasos para instalarlo en un servidor Ubuntu:
sudo apt -y install nginx
Cómo proteger acceso a SSH utilizando UFW
Para instalar UFW:
Para configurar UFW, por defecto rechaza todas las conexiones, ya sean entrantes o salientes. Eso quiere decir que nadie podrá acceder y cualquier aplicación dentro del servidor puede llegar al mundo exterior.
Para establecer los valores predeterminados utilizados por UFW:
sudo ufw default allow outgoing
Tras configurarlo por defecto, como ya hemos dicho, rechaza todas las conexiones entrantes. Así que tendremos que crear reglas que permitan conexiones entrantes como SSH o HTTP si queremos que nuestro servidor responda a ese tipo de solicitudes.
Para configurar su servidor para permitir conexiones SSH entrantes:
Podemos escribir la regla equivalente especificando el puerto en lugar del nombre del
servicio. Por ejemplo, este comando funciona igual que el anterior:
En este punto, debe permitir todas las demás conexiones a las que su servidor necesita responder. Las conexiones que debe permitir dependen de sus necesidades específicas.
Para permitir HTTP en el puerto 80, para servidores web sin cifrar, se usa una de estas 2 instrucciones:
sudo ufw allow 80
Para permitir HTTPS en el puerto 443, para servidores web encriptados, se usa una de estas 2 instrucciones:
sudo ufw allow 443
Para finalmente habilitar UFW:
Recibirá una advertencia que dice que el comando puede interrumpir las conexiones SSH existentes. Ya configuramos una regla de firewall que permite conexiones SSH, por lo que debería estar bien continuar. Responda a la solicitud con ‘y‘ y presione ‘ENTER‘.
El firewall ahora está activo. Ejecute el comando para ver las reglas establecidas:
Cómo configurar SSH
Para configurar SSH debes editar el archivo ssh_config que se encuentra en la carpeta etc/ssh:
sudo nano ssh_config
En el archivo podemos descomentar, editar y añadir reglas. En nuestro caso hemos permitido el puerto 22 con la regla ‘Port 22‘ y hemos puesto límite de intentos de la contraseña en 3 con la regla ‘NumberOfPasswordPrompts 3‘.
Además de estas reglas, puedes encontrar más reglas en https://linux.die.net/man/5/ssh_config.
Instalar MariaDB para gestionar la base de datos
Procedemos a instalar la base de datos MariaDB para la base de datos de WordPress. Nosotros hemos elegido MariaDB, pero hay otras alternativas como MySQL.
Antes de poder instalar MariaDB 10.4, es posible que deba desinstalar la versión actual del servidor MariaDB. Puede ignorar esto si está actualizando. Ejecuta:
Para instalar MariaDB se debe agregar su repositorio al sistema:
Y para agregar la clave del repositorio al sistema:
Una vez que la clave ha sido importada, se procede a agregar la URL del repositorio al servidor:
Y, por último, instalamos MariaDB:
sudo apt -y install mariadb-server mariadb-client
Se le pedirá la contraseña de root de MariaDB. Ingresa la contraseña y confírmala.
En caso de que no pida contraseña de root:
Nueva contraseña:
Re-ingrese nueva contraseña:
¿Eliminar usuarios anónimos? [S / n] y
¿No permitir el inicio de sesión root de forma remota? [S / n] y
¿Eliminar la base de datos de prueba y acceder a ella? [S / n] y
¿Recargar tablas de privilegios ahora? [S / n] y
Confirme la versión de MariaDB:
Verifique la versión de MariaDB con el comando:
Instalar WordPress
Crear base de datos y usuario para WordPress
Se debe crear una base de datos en MariaDB y un usuario para WordPress:
CREATE USER ‘wp_user’@’localhost’ identified by ‘StrongPassword’;
CREATE DATABASE wp_db;
GRANT ALL PRIVILEGES ON wp_db.* TO ‘wp_user’@’localhost’;
FLUSH PRIVILEGES;
MYSQL_SCRIPT
No olvide reemplazar StrongPassword con la contraseña de usuario de su base de datos.
Después hay que confirmar si el usuario puede conectarse a la base de datos con la contraseña introducida:
Instalar PHP y extensiones
Instalamos php:
Descargar e instalar WordPress
Descargar la última versión de WordPress, extraer el archivo, mover el directorio resultante a su raíz de documento web y configurar la conexión de la base de datos:
wget wordpress.org/latest.tar.gz
tar xvf latest.tar.gz
sudo mv wordpress / srv / myblog
cd / srv / myblog
sudo cp wp-config-sample.php my-config.php
sudo vim wp-config.php
Editar el documento wp-config.php para introducir nuestra base de datos, usuario y contraseña:
define (‘DB_USER’, ‘wp_user’);
define (‘DB_PASSWORD’, ‘StrongPassword’);
Cambiar la propiedad del /srv/myblog usuario web:
Configurar NGINX y finalizar la instalación de WordPress
Tenemos que crear un archivo de configuración de Virtual Host para nuestro sitio web de WordPress:
Y debemos cambiar el location por el extracto de código siguiente:
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
#try_files $uri $uri/ =404;
try_files $uri $uri/ /quantumfive/index.php?q=$uri$args;
if ($request_uri ~* «.(ico|css|js|gif|jpe?g|png)$») {
expires 30d;
access_log off;
add_header Pragma public;
add_header Cache-Control «public»;
break;
}
}
Verifique la sintaxis de configuración y reinicie el servidor web nginx:
sudo systemctl restart nginx
sudo systemctl enable nginx
Por último, se debe acabar la configuración de WordPress desde la web en la que se ha instalado.
muy buen articulo
Muy buen articulo me ha encantado, me ha servido de mucho.
Buen tutorial, rico en información. Estaría genial si añadís un apartado más sobre el SSL, que es bastante importante hoy en día.
Un saludo y mucho suerte con el proyecto!!