blog wordpress multisite con VESTACP

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:   Como CREAR UN BLOG GRATUITO EN WORDPRESS MONETIZABLE en menos de CINCO MINUTOS en 2021

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

Articulos Relacionados

Herramientas de IA que Debes Probar - La página de inicio de Pobbly muestra una impresionante variedad de fotografías de productos generadas por IA. Con potentes herramientas de IA, permite a los usuarios crear imágenes de productos impresionantes sin necesidad de conocimientos de Photoshop.

Más Allá de ChatGPT: Tres Herramientas de IA que Debes Probar

comodigitalOct 19, 2024

Imagina un mundo donde tu creatividad no tenga límites. Hace poco, mientras exploraba…

Un gráfico de Google Trends ilustra el interés de búsqueda a lo largo del tiempo por "chatgpt" en los Estados Unidos, desde el 1 de enero de 2022 hasta el 2 de febrero de 2024. El gráfico revela picos y fluctuaciones notables, una herramienta esencial para elaborar estrategias imperdibles en SEO.

Potencia tu SEO con Google Trends: Tres Estrategias Imperdibles

comodigitalOct 18, 2024

Imagina que puedes entrar en la mente de tus clientes y saber exactamente…

Deja un comentario