Instalación y configuración de WordPress 4.5 Multisite en Debian Jessie

Saludos comunidad. Recientemente me encontré con la necesidad de instalar y configurar la versión más reciente de WordPress con la posibilidad de tener más de un sitio web en una sola instalación y que mejor que en Debian Jessie 🙂 En esta ocasión les compartiré como lo hice para que si en algún momento les resulta útil o interesante, lo hagan sin demorar demasiado y que todo funcione adecuadamente para el propósito esperado. Esta es una instalación en un servidor local y a través de subdirectorios.

Comenzaremos con la instalación de nuestro servidor GLAMP, utilizando MariaDB en lugar de MySql (por gusto personal pero puede ser con MySql si lo prefieren):

  1. Iniciamos sesión en nuestra terminal como root e iniciamos la instalación de nuestro servidor web Apache:
# aptitude install apache2
  1. Continuamos con la instalación del servidor y el cliente de la base de datos:
# aptitude install mariadb-server mariadb-client
  1. Posteriormente instalamos PHP y algunos paquetes para el soporte de MariaDB en PHP:
# aptitude install php5 libapache2-mod-php5 php5-mysqlnd php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
  1. Reiniciamos Apache:
# systemctl restart apache2
  1. Si deseamos incrementar un poco más la velocidad de las páginas en PHP instalamos APCu PHP Cache y reiniciamos nuevamente Apache:
# aptitude install php5-apcu
# systemctl restart apache2

Ya que tenemos listo nuestro servidor GLAMP, ahora continuamos con la instalación de la última versión de WordPress (la 4.5 en este momento):

  1. Ingresamos a MariaDB como administrador desde nuestra sesión de usuario o como root, para la creación de la bases de datos, los usuarios y aplicar sus privilegios:
$ mysql -u root -p
CREATE DATABASE bdwp1;
CREATE USER wpusuario1@localhost IDENTIFIED BY 'contraseña';
GRANT ALL PRIVILEGES ON bdwp1.* TO wpusuario1@localhost;
FLUSH PRIVILEGES;
exit
  1. Reiniciamos Apache y MariaDB:
# systemctl restart apache2
# systemctl restart mysql
 
  1. Instalamos WordPress de manera práctica a través de la terminal:
# cd /tmp
# wget -c http://wordpress.org/latest.zip
# unzip -q latest.zip -d /var/www/html/

Si deseamos identificar el directorio de wordpress con algún nombre diferente de nuestra preferencia al predeterminado, lo cambiamos de la siguiente manera:

# mv /var/www/html/wordpress /var/www/html/wpmultisite1

Y continuamos con la asignación de los privilegios para el usuario www-data:

# chown -R www-data.www-data /var/www/html/wpmultisite1
# chmod -R 755 /var/www/html/wpmultisite1
# mkdir -p /var/www/html/wpmultisite1/wp-content/uploads
# chown -R www-data.www-data /var/www/html/wpmultisite1/wp-content/uploads

Ahora creamos y editamos el archivo principal de configuración para definir los valores de nuestra base de datos y usuario creados previamente en MariaDB:

# cd /var/www/html/wpmultisite1
# cp wp-config-sample.php wp-config.php
# vi wp-config.php (o con el editor de su preferencia emacs, nano, gedit, leafpad o alguno otro)

Cambiando este apartado del contenido original:

// ** MySQL settings – You can get this info from your web host ** //
/** The name of the database for WordPress */
define(‘DB_NAME’, ‘database_name_here’);

/** MySQL database username */
define(‘DB_USER’, ‘username_here’);

/** MySQL database password */
define(‘DB_PASSWORD’, ‘password_here’);

De la siguiente manera:

// ** MySQL settings – You can get this info from your web host ** //
/** The name of the database for WordPress */
define(‘DB_NAME’, ‘bdwp1‘);

/** MySQL database username */
define(‘DB_USER’, ‘wpusuario1‘);

/** MySQL database password */
define(‘DB_PASSWORD’, ‘contraseña‘);

Guardamos los cambios y cerramos el archivo. Ahora vamos a nuestro navegador web y en una nueva pestaña abrimos el instalador de WordPress con la siguiente URL:

http://localhost/wpmultisite1/

En las pantallas que aparecerán a continuación, elegimos el idioma de la instalación, el título del sitio web, el nombre de usuario, su contraseña, algún correo electrónico y en este caso no marcamos la última casilla de «Permitir indexar sitio» ya que se trata de una instalación local.

Ahora ya podemos iniciar sesión en nuestra instalación de WordPress. Finalmente vamos a realizar la configuración necesaria para que nuestro WordPress sea multisitio:

  1. Activamos la red multisitio añadiendo la siguiente línea a través de nuestro editor de texto preferido en el archivo wp-config.php, justo arriba de la línea que dice “/* That’s all, stop editing! Happy blogging. */“:

/* Multisite */
define(‘WP_ALLOW_MULTISITE’, true);

Quedando ese apartado del archivo de la siguiente manera:

/**
* For developers: WordPress debugging mode.
*
* Change this to true to enable the display of notices during development.
* It is strongly recommended that plugin and theme developers use WP_DEBUG
* in their development environments.
*
* For information on other constants that can be used for debugging,
* visit the Codex.
*
* @link https://codex.wordpress.org/Debugging_in_WordPress
/
define(‘WP_DEBUG’, false);
/
Multisite /
define(‘WP_ALLOW_MULTISITE’, true);
/
That’s all, stop editing! Happy blogging. */

/** Absolute path to the WordPress directory. */
if ( !defined(‘ABSPATH’) )
define(‘ABSPATH’, dirname(FILE) . ‘/’);

Guardamos los cambios y cerramos el archivo.

  1. Activamos el módulo Mod_Rewrite de Apache:
# a2enmod rewrite
  1. Editamos el archivo de Apache /etc/apache2/sites-enabled/000-default.conf a través de nuestro editor de texto preferido, añadiendo el siguiente contenido:

<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>

Para permitir cambios desde el archivo .htaccess de WordPress que más adelante editaremos, quedando ese apartado de nuestro contenido en /000-default.conf de la siguiente manera:

#Include conf-available/serve-cgi-bin.conf
 <Directory /var/www/>
                 Options Indexes FollowSymLinks MultiViews
                 AllowOverride All
                 Order allow,deny
                 allow from all
 </Directory>
</VirtualHost>

  1. Reiniciamos Apache
# systemctl restart apache2
  1. Ahora vamos a nuestro escritorio de WordPress y en el panel principal del lado izquierdo, seleccionamos la opción «Herramientas» y dentro de ésta «Configuración de la red»:

Una vez ingresados el título de la red y tu correo electrónico, le damos click a instalar y enseguida nos aparecerá la siguiente pantalla:

En la cual en mi caso los valores correspondientes a /var/www/html/wpmultisite1 son mostrados con relación al nombre que yo elegí para mi directorio de WordPress llamado iibi en lugar de wpmultisite1: /var/www/html/iibi. Ahora siguiendo las indicaciones de esta ventana, vamos a copiar el contenido del primer paso o recuadro a nuestro archivo wp-config.php a través de nuestro editor de texto arriba de la línea que dice “/* That’s all, stop editing! Happy blogging. */” quedando de la siguiente manera:

/**
* For developers: WordPress debugging mode.
*
* Change this to true to enable the display of notices during development.
* It is strongly recommended that plugin and theme developers use WP_DEBUG
* in their development environments.
*
* For information on other constants that can be used for debugging,
* visit the Codex.
*
* @link https://codex.wordpress.org/Debugging_in_WordPress
/
define(‘WP_DEBUG’, false);
/
Multisite /
define(‘WP_ALLOW_MULTISITE’, true);
define(‘MULTISITE’, true);
define(‘SUBDOMAIN_INSTALL’, false);
define(‘DOMAIN_CURRENT_SITE’, ‘Tu.dirección.IP’);
define(‘PATH_CURRENT_SITE’, ‘/iibi/’);
define(‘SITE_ID_CURRENT_SITE’, 1);
define(‘BLOG_ID_CURRENT_SITE’, 1);
/
That’s all, stop editing! Happy blogging. */

Guardamos los cambios y cerramos el archivo. Hacemos lo mismo con el contenido del segundo paso o recuadro pero ahora editando el archivo .htaccess a través de la ruta:

# vi /var/www/html/iibi/.htaccess

Borrando todo su contenido original y pegando el del recuadro, quedando de la siguiente manera:

RewriteEngine On
RewriteBase /iibi/
RewriteRule ^index.php$ – [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]

Guardamos los cambios y cerramos el archivo. Cerramos sesión en WordPress y volvemos a entrar a ella.

  1. Finalmente probamos nuestro WordPress ya con la funcionalidad multisitio completamente activada y configurada. Para esto nos vamos a la esquina superior izquierda, seleccionamos «Mis sitios», «Administrador de la red» y «Sitios». Seleccionamos la opción «Añadir nuevo» en la parte superior y en la siguiente pantalla definimos en los campos de texto «Dirección del sitio (URL)» (un nombre para su nuevo subsitio), «Título del sitio», «Idioma del sitio», «Correo electrónico del administrador» y le damos click a «Añadir sitio». Ahora ya les aparecerán los sitios que vayan creando en «Mis sitios» y podrán personalizarlos de igual manera a través de su propio escritorio. Cualquier cosa no duden en preguntar o compartir sus comentarios. Saludos.


2 comentarios

  1.   Alejandro dijo

    Muy buen tutorial!!

  2.   jathan dijo

    Muchas gracias Alejandro. Un detalle nada más. Cuando estaba creando el artículo en las líneas que llevan el caracter apóstrofe (‘) si se veía así, pero ahora se han cambiado por comillas simples (‘ y ’) en algunas líneas como la siguiente: define(‘WP_ALLOW_MULTISITE’, true); y he intentando corregirlo tratando de editar el artículo pero sólo me aparece «Ver». Por favor si alguien de os editores o administradores de Desde Linux ve este comentario, indíquenme como puedo editar el artículo para corregir ese detalle o hagan ese cambio por favor. Saludos.

Deja un comentario

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

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.