En ocasiones necesitaremos tener WordPress con Multi-Sitio activado para tener diferentes webs en un mismo WordPress. Como por ejemplo web coorporativa y tienda online. Para configurar esta característica de WordPress simplemente hay que continuar con este tutorial.
De todas formas, para realizar satisfactoriamente el proceso, primero es necesario tener un servidor con la imagen de WordPress pre-instalada. Luego hay que configurar en primer lugar, un dominio para acceder al WordPress y luego configurar un certificado SSL. Sin estos dos procedimientos no es posible continuar con el tutorial.
Activar multi-sitio en WordPress
Lo primero será modificar el fichero de configuración de WordPress, para ello podemos acceder por FTP al servidor o bien acceder por SSH. Hay que modificar el fichero wp-config.php y añadir lo siguiente:
define( 'WP_ALLOW_MULTISITE', true ); /* That's all, stop editing! Happy publishing. */
Debemos de añadir la primera línea justo encima del comentario que pone "That's all, stop editing! Happy publishing."
A continuación, accedemos a nuestro WordPress y nos dirigimos a Herramientas > Configuración de la red.
Aquí debemos de marcar la opción de Subdominios y luego añadir un nombre a la red de sitios y luego un correo electrónico para el administrador. Para finalizar, hacemos clic sobre el botón Instalar.
Tras instalar, debemos de hacer los cambios que nos piden:
Volvemos a editar el fichero wp-config, y donde habíamos editado anteriormente, añadimos las siguientes líneas:
define('MULTISITE', true); define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', 'tudominio.com');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
/* That's all, stop editing! Happy publishing. */
Del fichero .htaccess no es necesario modificar nada, ya que para Nginx no utiliza este fichero.
Tras estos cambios, tendremos que acceder de nuevo a WordPress y ya nos aparecerá con el Multi-Sitio activado.
Añadir dominio nuevo a la red de sitios
Tras volver a iniciar, tenemos que ir a Mis Sitios > Administrador de la red > Sitios:
Aquí ya podremos añadir un subdominio nuevo:
Deberemos de indicar el subdominio, el nombre del sitio, el idioma del panel y luego un correo electrónico.
Ahora mismo el problema que habrá, es que cuando intentas acceder a tienda.tudominio.com, intentará acceder por HTTP y se mostrará un error 404 Not Found. Y si intentas acceder por HTTPS, aparecerá que el certificado SSL no es válido para este subdominio.
Para solventar este problema, tenemos que acceder de nuevo por SSH al servidor y editar el fichero de configuración de Nginx que se encuentra en /etc/nginx/sites-enabled/default.
Deberéis de modificar el parámetro server_name y añadir el subdominio:
server_name tudominio.com tienda.tudominio.com;
Y luego recargar la configuración en Nginx:
systemctl reload nginx
Y para acabar, crear el certificado para tu subdominio:
certbot
Tras ejecutar este domando, nos aparecerá lo siguiente:
Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: tudominio.com
2: subdominio.tudominio.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel): 1 2
Como que ya hay una configuración para el dominio principal, te preguntará si remplazar la configuración y expandirla para los dos dominios:
Do you want to expand and replace this existing certificate with the new
certificate?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(E)xpand/(C)ancel: E
Le daremos a E para Expandir.
Tras crear el certificado, volvemos a editar el fichero /etc/nginx/sites-enabled/default y al final de todo añadimos lo siguiente:
if ($host = tienda.tudominio.com) { return 301 https://$host$request_uri; } # managed by Certbot
Esta configuración debe de quedar dentro del parámetro server y debe de estar encima de la configuración del $host para tu dominio.
Recargamos la configuración de Nginx de nuevo:
systemctl reload nginx
Y listo, ya tenemos funcionando nuestro WordPress Multi-Sitio con la imagen de WordPress de Clouding. Si necesitáis añadir otro subdominio más, simplemente debéis de repetir el último proceso por completo.