Blackhold

WordPress 3.0.1 multidominio

Posted on agost 16th, 2010 by admin

El wordpress como sabréis es un cms que permite montar un sistema de blogs realmente interesante, además a partir de la versión 3.0 el wordpress lleva algunas propiedades de wordpress mu, la versión para tener varios blogs bajo la misma instalación, pero esta versión peca de una mala gestión de los dominios, sólo es capaz de gestionar subdominios y directorios, pero a nosotros nos interesa otra cosa, así que vamos por la labor.

Lo primero de todo es instalar un wordpress 3.0.1: descargar de la web, descomprimir en el servidor, configurar la base de datos y hacer la instalación. A partir de ahí ya tenemos un wordpress funcional.

Antes de empezar, comentar que es recomendable hacer la instalación de este wordpress en / del dominio o subdominio, ya que sino dará problemas, en mi caso voy a usar test.marsupi.org.

Ahora la siguiente parte es convertir este wordpress en un super wordpress, para ello modificaremos el fichero de configuración wp-config.php y añadiremos esta línea:

define(‘WP_ALLOW_MULTISITE’,true);
/* That’s all, stop editing! Happy blogging. */

Importantísimo editar por encima de la línea “That’s all, stop editing!…”.

A continuación vamos al blog, en Herramientas > Red y le damos al botón de instalar. A partir de ahí nos da algunas instrucciones que deberemos seguir si queremos completar la instalación con éxito:

Crea el directorio blogs.dir en /var/www/marsupi.org/wp3/wp-content. Este directorio se usa para almacenar los archivos subidos por los sitios adicionales y el servidor web, debe poder escribir en él.

# cd /var/www/marsupi.org/wp3/wp-content && mkdir blogs.dir && chown -R www-data:www-data blogs.dir

Añade lo siguiente a tu archivo wp-config.php en /var/www/marsupi.org/wp3/ sobre la línea que dice /* ¡Eso es todo, no hay que editar nada más! Feliz blogging. */:

define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', false );
$base = '/';
define( 'DOMAIN_CURRENT_SITE', 'test.marsupi.org' );
define( 'PATH_CURRENT_SITE', '/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );

Añade lo siguiente a tu archivo .htaccess en /var/www/marsupi.org/wp3/, remplazando las reglas existentes de WordPress:

RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]

# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule  ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule  ^([_0-9a-zA-Z-]+/)?(.*.php)$ $2 [L]
RewriteRule . index.php [L]

A continuación comprobamos que no ha dado ningún problema y la instalación ha funcionado correctamente. Destacar que he hecho la instalación en modo de directorios, no de subdominios.

A partir de aquí nos salen un montón de opciones mas en nuestro wordpress, pero este aún no está preparado para soportar varios dominios y a esto vamos :)

Creamos de nuevo otro directorio dentro de wp-config que se llame “mu-plugins”, nos descargamos el plugin WordPress MU Domain Mapping Plugin y guardamos el fichero domain_mapping.php dentro del directorio mu-plugins y el sunrise.php tal cual en wp-content:

– wp-content/mu-plugins/domain_mapping.php
– wp-content/sunrise.php

añadimos también esta línea en el fichero wp-config.php

define( ‘SUNRISE’, ‘on’ );
/* ¡Eso es todo, deja de editar! Feliz blogging */

Ahora tenemos que configurar el plugin, así que nos vamos al Panel de configuración del wordpress, Superadmin y Domain Mapping. Aquí veremos que nos pide la ip o el cname, para evitar problemas futuros (en caso de migraciones) vamos a rellenar la parte del cname, en mi caso con test.marsupi.org, y debajo indicamos como queremos que se comporte el plugin ante los distintos accesos:

* Remote Login – This will make your login pages for all sites redirect to your main site to do the actual login. The benefit of this is that when you log in to one, you log into all of them. The downside is that the URL changes to another domain in order to log in.
* Permanent redirect (better for your blogger’s pagerank) – This makes your subdomain or subdirectory sites redirect to their domains. You should leave this on.
* User domain mapping page – Turn this on if you want users to be able to put in their own domains for mapping.
* Redirect administration pages to blog’s original domain (remote login disabled if redirect disabled) – This makes all admin pages show up on the original domain instead of on the new domains. You need this enabled for remote login to work.

El tipo que hizo el manual comenta que el siempre deja las dos opciones del medio marcadas, así que como él sabe mas que yo fijo, le vamos a hacer caso :)

Para añadir un nuevo blog primero vamos a Superadmin > sitios y añadimos un nuevo blog, y en Superadmin > Domains relacionamos el id del blog con el dominio.

Ahora ya sólo faltará apuntar el nuevo dominio al directorio de nuestro wordpress y a correr :)

Importante destacar que para hacer que el dominio funcione correctamente y el mod_rewrite no nos mande a cualquier sitio, tendremos que indicar la url a la cual se va a acceder al blog en Sitios > editar el sitio > Opciones del sitio (wp_2_options) > Siteurl y en Información del sitio (wp_blogs) > Dominio y ruta dejarlo en blanco. En mi caso la prueba la he hecho las pruebas con http://test2.marsupi.org y marsupi2.org satisfactoriamente :)

This entry was posted on dilluns, agost 16th, 2010 at 11:42 and is filed under cms, wordpress. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

5 Responses to “WordPress 3.0.1 multidominio”

manjejuny 30th, 2011 at 13:20

Muchas gracias por la guia, buscar información y que sea un colega quien ha colgado justo la información que necesitas se agradece ;)

coucoloagost 12th, 2011 at 23:15

Muchas gracias por el post.

Pero me ha aparecido el siguiente error tras este paso y actualizar la página:
“define( ‘SUNRISE’, ‘on’ );
/* ¡Eso es todo, deja de editar! Feliz blogging */”

El error decía:
The domain mapping plugin only works if the site is installed in /. This is a limitation of how virtual servers work and is very difficult to work around.

Lo estoy probando en local con xammp para luego pasarlo a un hosting compartido (lo quiero para gestionar dominios con pocas páginas). Como el mensaje hace alusión ha ello (virtual servers) quizás no sea una solución válida para lo que necesito o por lo contrario quizás sea que estoy haciendo algo mal.

Muchas gracias por tu ayuda

pablojuliol 26th, 2012 at 06:09

Hola esto de WordPress MU Domain Mapping Plugin funciona para wordpress 3.4 en adeltante por que por lo que encontre en wordpress a partir del 3.1 ya se movio la parte de super-admin, donde se hacen estas configuraciones??

Leave a Response

« »

guy fawkes