Como crear un blog wordpress multisite con VESTACP

Cuando tienes tu proprio servidor, el conseguir que te funcione bien todos los temas asociados con el mismo, puede ser bastante complicado y mas si es un blog wordpress multisite con VESTACP. Para eso, se suele utilizar de sistemas de panel de control como Cpanel, FastPanel, o VestaCP entre muchos otros.

Una de las ventajas de utilizar VESTACP, es que viene con un sistema de plantillas que te permite crear rápidamente la configuración de base de muchos sistemas diferentes, lo que te puede salvar de mas de un apuro.

blog wordpress multisite con VESTACP
blog wordpress multisite con VESTACP – Photo by Pixabay on Pexels.com

En nuestro caso, como crear un blog wordpress multisite basado en subdirectorios y con base en linux + NGINX + Php-FPM? Si lo instalas en un servicor linux NGINX PHP-FPM, verás que la página principal funcionará, asi como la wp-admin principal, pero no tendrás acceso al wp-admin de cada unos de los sub sitios que hayas creado.

¿Como solucionar este problema?

Fácil.

blog wordpress multisite con VESTACP

1)

Sube el wordpress a la carpeta de tu servidor e instalalo.

2)

Edita el fichero de wp-config.php y añade los siguientes campos justo antes de la celebre linea de codigo /* That’s all, stop editing! Happy blogging. */

define(‘WP_ALLOW_MULTISITE’, true);

guarda y recarga tu sitio web en pagina.

3) Entra como administrador de wordpress y bajo la opción de Herramientas, encontrarás una nueva opción de configuración del multisite donde podrás seleccionar si lo quieres por subdominios o por subcarpetas. Selecciona el que más te interese.

Herramientas – Configurar red: posibilidad de elegir entre subdominios y subdirectorios

4.

Copia la plantilla que puedes bajar de este sitio web a la carpeta de :/usr/local/vesta/data/templates/web/nginx/php-fpm

Te la ponemos aqui, por si desapareciera

map $uri $blogname{
    ~^(?P<blogpath>/[^/]+/)files/(.*)       $blogpath ;
}

map $blogname $blogid{
    default -999;

    #Ref: http://wordpress.org/extend/plugins/nginx-helper/
    #include /var/www/wordpress/wp-content/plugins/nginx-helper/map.conf ;
}

server {
    listen      %ip%:%web_ssl_port%;
    server_name %domain_idn% %alias_idn%;
    root        %docroot%;
    index       index.php index.html index.htm;
    access_log  /var/log/nginx/domains/%domain%.log combined;
    access_log  /var/log/nginx/domains/%domain%.bytes bytes;
    error_log   /var/log/nginx/domains/%domain%.error.log error;

    ssl         on;
    ssl_certificate      %ssl_pem%;
    ssl_certificate_key  %ssl_key%;
	

 location ~ ^(/[^/]+/)?files/(.+) {
        try_files /wp-content/blogs.dir/$blogid/files/$2 /wp-includes/ms-files.php?file=$2 ;
        access_log off;     log_not_found off; expires max;
    }

    #avoid php readfile()
    location ^~ /blogs.dir {
        internal;
        alias %docroot%/wp-content/blogs.dir ;
        access_log off;     log_not_found off; expires max;
    }

    if (!-e $request_filename) {
        rewrite /wp-admin$ $scheme://$host$uri/ permanent;
        rewrite ^(/[^/]+)?(/wp-.*) $2 last;
        rewrite ^(/[^/]+)?(/.*\.php) $2 last;
    }

    

    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }

    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }

    location / {
        try_files $uri $uri/ /index.php?$args;

        if (!-e $request_filename)
        {
            rewrite ^(.+)$ /index.php?q=$1 last;
        }

        location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ {
            expires     max;
        }

        location ~ [^/]\.php(/|$) {
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            if (!-f $document_root$fastcgi_script_name) {
                return  404;
            }

            fastcgi_pass    %backend_lsnr%;
            fastcgi_index   index.php;
            include         /etc/nginx/fastcgi_params;
        }
    }

    error_page  403 /error/404.html;
    error_page  404 /error/404.html;
    error_page  500 502 503 504 /error/50x.html;

    location /error/ {
        alias   %home%/%user%/web/%domain%/document_errors/;
    }

    location ~* "/\.(htaccess|htpasswd)$" {
        deny    all;
        return  404;
    }

    location /vstats/ {
        alias   %home%/%user%/web/%domain%/stats/;
        include %home%/%user%/conf/web/%domain%.auth*;
    }

    include     /etc/nginx/conf.d/phpmyadmin.inc*;
    include     /etc/nginx/conf.d/phppgadmin.inc*;
    include     /etc/nginx/conf.d/webmail.inc*;

    include     %home%/%user%/conf/web/nginx.%domain_idn%.conf*;
}

Si lo quisieras como tpl

map $uri $blogname{
    ~^(?P<blogpath>/[^/]+/)files/(.*)       $blogpath ;
}

map $blogname $blogid{
    default -999;

    #Ref: http://wordpress.org/extend/plugins/nginx-helper/
    #include /var/www/wordpress/wp-content/plugins/nginx-helper/map.conf ;
}

server {
  listen      %ip%:%web_port%;
    server_name %domain_idn% %alias_idn%;
    root        %docroot%;
    index       index.php index.html index.htm;
    access_log  /var/log/nginx/domains/%domain%.log combined;
    access_log  /var/log/nginx/domains/%domain%.bytes bytes;
    error_log   /var/log/nginx/domains/%domain%.error.log error;
	

 location ~ ^(/[^/]+/)?files/(.+) {
        try_files /wp-content/blogs.dir/$blogid/files/$2 /wp-includes/ms-files.php?file=$2 ;
        access_log off;     log_not_found off; expires max;
    }

    #avoid php readfile()
    location ^~ /blogs.dir {
        internal;
        alias %docroot%/wp-content/blogs.dir ;
        access_log off;     log_not_found off; expires max;
    }

    if (!-e $request_filename) {
        rewrite /wp-admin$ $scheme://$host$uri/ permanent;
        rewrite ^(/[^/]+)?(/wp-.*) $2 last;
        rewrite ^(/[^/]+)?(/.*\.php) $2 last;
    }

    

    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }

    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }

    location / {
        try_files $uri $uri/ /index.php?$args;

        if (!-e $request_filename)
        {
            rewrite ^(.+)$ /index.php?q=$1 last;
        }

        location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ {
            expires     max;
        }

        location ~ [^/]\.php(/|$) {
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            if (!-f $document_root$fastcgi_script_name) {
                return  404;
            }

            fastcgi_pass    %backend_lsnr%;
            fastcgi_index   index.php;
            include         /etc/nginx/fastcgi_params;
        }
    }

    error_page  403 /error/404.html;
    error_page  404 /error/404.html;
    error_page  500 502 503 504 /error/50x.html;

    location /error/ {
        alias   %home%/%user%/web/%domain%/document_errors/;
    }

    location ~* "/\.(htaccess|htpasswd)$" {
        deny    all;
        return  404;
    }

    location /vstats/ {
        alias   %home%/%user%/web/%domain%/stats/;
        include %home%/%user%/conf/web/%domain%.auth*;
    }

    include     /etc/nginx/conf.d/phpmyadmin.inc*;
    include     /etc/nginx/conf.d/phppgadmin.inc*;
    include     /etc/nginx/conf.d/webmail.inc*;

    include     %home%/%user%/conf/web/nginx.%domain_idn%.conf*;
} 

5.

Te puede interesar:   Cambiar de Custom Post Type en WordPress

Reinicia el vesta con SERVICE VESTA Restart

6.

Dirigite al panel de control de tu sitio web.

7.

Edita la configuración web de tu sitio, y en la plantilla de web, selecciona wordpress4_multisite.

8.

Prueba acceder a la pagina web y al wp-admin tu sitio web.

Si no sabes como montar tu proprio sitio web con wordpress, tenemos un serie de articulos y videos que abordan este tema:

Como crear un blog WordPress Parte I

Como crear un blog WordPress Parte II

Espero que estas sugerencias te hayan resultado útil si tienes alguna duda o quieres aportar algo no existe sin dejar tu comentario en este artículo o en los foros

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio