Hola amigos, hoy veremos como montar nuestra propia Web utilizando WordPress en nuestro servidor Ubuntu 20.04 con Nginx, PHP-FPM, MariaDB (LEMP) previamente preparado. (Puedes ver como instalar un servidor LEMP aquí)
Asumiendo que ya tienes tu servidor LEMP listo, procedemos entonces con la descarga e instalación de WordPress, verás que en pocos pasos y de una manera muy fácil tendrás en pocos minutos tu propia Web.
//El primer paso es descargarnos la última versión de WordPress:
# cd /tmp
# wget -c http://wordpress.org/latest.tar.gz
//Vamos a descomprimir nuestro WordPress descargado:
# tar -xzvf latest.tar.gz
//Teniendo en cuenta nuestra entrada para instalar nuestro servidor Web, vamos a colocar nuestro WordPress en el directorio /var/www/html/ sustituye networld.cu por el nombre que darás al directorio donde estará alojada la web:
# sudo cp -R wordpress/ /var/www/html/networld.cu
//Uno de los inconvenientes que te pueden surgir con diferentes tutoriales en internet es que a la hora del proceso de instalación de WordPress este te de problemas de permisos y te pida acceso FTP, para poder corregir esto y prescindir de un servidor FTP, ejecutamos los siguientes comandos que harán a Nginx propietario del directorio de nuestra Web y le otorgará los permisos recursivos necesarios para una correcta instalación:
# sudo chown -R www-data:www-data /var/www/html/networld.cu
# sudo chmod -R 775 /var/www/html/networld.cu
//Recuerda sustituir networld.cu por el nombre que asignaste al directorio.
El siguiente paso es crear la base de datos y un usuario con privilegios para poder instalar WordPress, podemos hacerlo mediante consola, le dejaré los comandos a continuación, pero teniendo en cuenta nuestro tutorial sobre la instalación de LEMP y phpMyAdmin, pues les mostraré el proceso con este último.
//Crear base de datos mediante consola:
# sudo mysql -u root -p
CREATE DATABASE wordpress;
GRANT ALL PRIVILEGES ON wordpress.* TO \'wordpress\'@\'localhost\' IDENTIFIED BY \'contraseña\';
FLUSH PRIVILEGES;
EXIT;
//Lo anterior crear la base de datos wordpress y el usuario wordpress al cual le asigna los privilegios para manejar esta base de datos. El parámetro \’contraseña\’ lo sustituyes por una contraseña segura para el usuario wordpress.
//Crear base de datos mediante phpMyAdmin (este método es solamente si no lo realizaste con el anterior):
//Nos vamos a nuestro phpMyAdmin, según nuestro tutorial mediante http://10.10.20.4/phpmyadmin
//Sustituye 10.10.20.4 por la IP de tu servidor.
//Damos clic arriba en Cuentas de usuarios
//Damos en Agregar cuenta de usuario y rellenamos los campos, Nombre de usuario, en este caso wordpress, Nombre de Host, seleccionamos local, Asignamos una contraseña segura para este usuario y marcamos la casilla Crear base de datos con el mismo nombre y otorgar todos los privilegios. Y damos en Crear.
//Una vez creada la Base de datos, necesitamos crear el Host Virtual en nuestro Nginx:
# sudo nano /etc/nginx/sites-available/networld.cu
//En la Wiki de Nginx, tenemos un ejemplo práctico de Host Virtual para WordPress, puedes verlo en la Web:
https://www.nginx.com/resources/wiki/start/topics/recipes/wordpress/
Asi que ponemos dentro del archivo networld.cu lo siguiente:
# Upstream to abstract backend connection(s) for php
upstream php {
server unix:/run/php/php7.4-fpm.sock;
## server 127.0.0.1:9000;
}
server {
## Your website name goes here.
server_name domain.tld;
## Your only path reference.
root /var/www/html/networld.cu;
## This should be in your http block and if it is, it\'s not needed here.
index index.php;
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location / {
# This is cool because no php is touched for static content.
# include the \"?$args\" part so non-default permalinks doesn\'t break when using query string
try_files $uri $uri/ /index.php?$args;
}
location ~ \\.php$ {
#NOTE: You should have \"cgi.fix_pathinfo = 0;\" in php.ini
include fastcgi_params;
fastcgi_intercept_errors on;
fastcgi_pass php;
#The following parameter can be also included in fastcgi_params file
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~* \\.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
}
//Presta especial atención a las siguientes líneas que vienen por defecto en la Wiki de Nginx:
server unix:/tmp/php-cgi.socket;
//Sustituir por:
server unix:/run/php/php7.4-fpm.sock;
//Debemos comentar la línea: server 127.0.0.1:9000;
## server 127.0.0.1:9000;
//NOTA: si cuentas con una entrada DNS configurada, debes modificar la línea server_name.
//Por último ajustar la linea de root de la siguiente forma:
root /var/www/html/networld.cu;
//Recuerda sustituir networld.cu por el nombre del directorio que creaste.
//Creamos el enlace simbólico para activar nuestro Virtual Host:
# sudo ln -s /etc/nginx/sites-available/networld.cu /etc/nginx/sites-enabled/
//Comprobamos que la configuración de Nginx sea correcta y reiniciamos el servicio:
# sudo nginx -t
# sudo systemctl restart nginx
//Todo listo para comenzar con la instalación de WordPress, así que accedemos a nuestro sitio mediante http://10.10.20.4/networld.cu, sustituye 10.10.20.4 por la IP de tu server y networld.cu por el nombre de directorio que le diste al WordPress.
//El primer paso es seleccionar el idioma para WordPress.
//Luego el instalador, nos informará que debemos tener esa serie de datos disponibles para establecerlas cuando nos lo pida.
//Entonces asignamos los datos con los que ya contamos, Nombre de la base de datos: wordpress, Nombre de usuario: wordpress, Contraseña: la que escogimos en los pasos anteriores y Servidor de la base de datos: localhost, como habíamos escogido antes.
//Si el instalador no detecta ningún problema, te notificará que todo esta correcto y que puedes ejecutar la instalación, así que solo da en Ejecutar la instalación.
//Lo siguiente es establecer un título para el sitio Web, crear un nombre de usuario para administrar WordPress y una contraseña para este usuario. También dejamos una dirección de correo de soporte y ya podemos dar en Instalar WordPress.
//Una vez más si todo está correcto, ya podremos Acceder a nuestro sitio o a la administración:
//Login de la administración.
//Dashboard de la administración.
//Nuestra nueva Web.