En este artículo, exploraremos una serie de hacks y datos fundamentales para la instalación de WordPress. Sin embargo, es importante que tengas conocimientos previos en informática, especialmente en áreas como servidores locales, acceso mediante FTP y manejo de la consola a través de SSH. Aunque en este artículo no profundizaremos en detalle sobre estos temas específicos, planeo crear artículos futuros donde abordaré cada uno de estos temas de manera más completa.
INSTALAR WORDPRESS EN UN ORDENADOR
Existen aplicaciones que instalan en tu ordenador todo lo necesario para instalar WordPress (servidor, bases de datos). La más popular y gratuita, disponible para los principales sistemas operativos es XAMPP (apachefriends.org/es/index.html). Luego puedes instalar el complemento para WordPress (bitnami.com/stack/xampp#wordpress).
USAR UNA CONTRASEÑA DÉBIL EN LA INSTALACIÓN
En caso de que necesites, aunque no es recomendable, utilizar una contraseña débil en la instalación de WordPress puedes hacerlo. Nada más introducirla se mostrará una nueva casilla para que confirmes el uso de la clave débil
define('CUSTOM_USER_TABLE', 'wp_users'); define('CUSTOM_USER_META_TABLE', 'wp_usermeta');
INSTALAR WORDPRESS SIN BASE DE DATOS
Si no dispones de acceso a base de datos puedes instalar WordPress sin SQL siguiendo estos pasos:
1. Sube la última versión de WordPress a tu servidor por FTP o el administrador de archivos de tu alojamiento.
2. Añade la siguiente línea al archivo wp-config-sample.php y después cambia el nombre del archivo a wp-config.php: define(‘DB_TYPE’, ‘sqlite’); //mysql or sqlite
3. Sube la carpeta del plugin PDO (es.wordpress.org/plugins/ pdo-for-wordpress/) a la carpeta /plugins/ de tu instalación de WordPress.
4. Abre el archivo wp-config.php e incluye en el lugar al efecto un nombre de usuario y contraseña para la base de datos, los que quieras. Como nombre de host deja localhost.
5. Accede a tu sitio para que se inicie la instalación de WordPress. Cuando te pregunte por la contraseña no pongas nada o te mostrará un error.
MIGRAR DE DRUPAL A WORDPRESS
Para migrar manualmente de Drupal a WordPress debes ejecutar un código JavaScript (http://modeling-languages.com/wp-content/uploads/ DrupalToWordpress.java) y realizar estos cambios:
1. Instalar WordPress en la misma base de datos donde esté Drupal instalado
2. Eliminar los datos de las siguientes tablas de WordPress: comments, posts, postmeta, term_relationships, term_taxonomy, terms.
3. Migración de las taxonomías de categorías en Drupal. Cada fila en term_data se inserta en las tablas de WordPress terms y term_hierarchy en term_taxonomy (si la categoría es hija de otra categoría).
4. Migración de los entradas/páginas. Esto implica recuperar los datos de las siguientes tablas de Drupal: node (información básica de la entrada como el título, la fecha,…), node_revisions (el body y el teaser de la entrada) y url_alias (la URL limpia que se utiliza para acceder a la entrada). Toda esta información se inserta en la tabla posts en WordPress. Drupal guarda como URL la URL completa del post mientras que en WordPress de cada entrada sólo guarda la parte correspondiente al título, con lo que hay que realizar la adaptación pertinente.
5. Corregir los enlaces internos a imágenes y archivos en el body de las entradas. En WordPress normalmente las tendremos en la carpeta uploads mientras que en Drupal estaban probablemente en sites/ default/files. Hay que reescribir todas las referencias a esta segunda para que los enlaces apunten correctamente a la carpeta de WordPress. Esto lo hacemos con una instrucción como esta: body=body.replaceAll(/sites/default/files/, /wp-content/ uploads/);
6. Relacionar entradas y categorías. En Drupal la relación se guarda en term_node y hay que moverla a la tabla term_relationships en WordPress.
7. Actualizar el atributo count de categoría para que muestre el número de entradas asociadas a esa categoría según la información en term_ relationships que acabamos de generar
8. Migración de los comentarios. Desde la tabla comments de Drupal a la comments de WordPress.
9. Actualizar el atributo comment_count de la tabla posts table para que refleje el valor correcto de comentarios asociados a cada entrada.
CLONAR WORDPRESS
Si necesitas hacer una copia exacta de una instalación para una migración o simplemente como copia de seguridad, el mejor plugin con diferencia es Duplicator (es.wordpress.org/plugins/duplicator/); tiene versiones de pago pero la gratuita te permite hacer copias hasta de 12 Gb. Además de la copia en un archivo ZIP te descarga un archivo installer.php que puedes usar para restaurar la copia en otra instalación.
MIGRAR DE OTRO CMS A WORDPRESS
Para migrar un sitio creado con Drupal, Joomla o cualquier otro CMS a WordPress, lo más sencillo y eficaz es usar el servicio CMS2CMS (cms2cms. com) que permite realizar migraciones entre distintos CMS con total garantía. Incluso dispone de un plan gratuito de hasta 10 páginas.
DESINSTALAR WORDPRESS COMPLETAMENTE
Para borrar todo rastro de una instalación de WordPress debes hacer lo siguiente: 1. Borramos por FTP o el administrador de archivos de nuestro alojamiento todas las carpetas y archivos de la instalación. 2. Borramos por PHPMyAdmin la base de datos.
ARCHIVO WP-CONFIG.PHP PARA INSTALACIONES DE DESARROLLO
Si estás desarrollando un sitio WordPress que se ejecutará en varios entornos, puedes crear un archivo de configuración wp-config.php que se adapte a todos ellos como en este ejemplo:
<?php if( stristr( $_SERVER['SERVER_NAME'], "desarrollo" ) ) { // Entorno de desarrollo define( 'DB_NAME', 'project_dev' ); define( 'DB_USER', 'project_dev_user' ); define( 'DB_PASSWORD', 'contraseña' ); define( 'DB_HOST', 'localhost' ); define( 'WP_HOME', 'http://proyecto.dev'); define( 'WP_SITEURL', WP_HOME); define( 'WP_DEBUG', true ); define( 'WP_CACHE', false ); } elseif( stristr( $_SERVER['SERVER_NAME'], "pruebas" ) ) { // Entorno de pruebas define( 'DB_NAME', 'project_test' ); define( 'DB_USER', 'project_test_user' ); define( 'DB_PASSWORD', 'contraseña' ); define( 'DB_HOST', 'localhost' ); define( 'WP_HOME', 'http://proyecto.pruebas'); define( 'WP_SITEURL', WP_HOME); define( 'WP_DEBUG', true); define( 'WP_CACHE', false); } elseif( stristr( $_SERVER['SERVER_NAME'], "cliente" ) ) { // Entorno de pruebas del cliente final define( 'DB_NAME', 'project_uat' ); define( 'DB_USER', 'project_uat_user' ); define( 'DB_PASSWORD', 'contraseña' ); define( 'DB_HOST', 'localhost' ); define( 'WP_HOME', 'http://proyecto.cliente'); define( 'WP_SITEURL', WP_HOME); define( 'WP_DEBUG', false ); define( 'WP_CACHE', true ); } else { // Entorno de producción define( 'DB_NAME', 'project_live' ); define( 'DB_USER', 'project_live_user' ); define( 'DB_PASSWORD', 'contraseña' ); define( 'DB_HOST', 'localhost' ); define( 'WP_HOME', 'http://proyecto.es'); define( 'WP_SITEURL', WP_HOME); define( 'WP_DEBUG', false ); define( 'WP_CACHE', true ); } define('DB_CHARSET', 'utf8'); define('DB_COLLATE', ''); ?>
ELEGIR IDIOMA EN LA INSTALACIÓN
No es necesario que descargues WordPress en tu idioma, puedes descargar la versión en inglés o cualquier otro idioma y, al instalarse, te mostrará antes que nada una pantalla en la que elegir el idioma principal.
REDIRECCIÓN A UN DOMINIO TEMPORAL
Durante tareas de mantenimiento o rediseño puede ser una buena idea redirigir a tus visitantes a un dominio temporal, permitiendo solo el acceso a tu dirección IP. El modo de conseguirlo sería añadiendo un código como el siguiente al archivo .htaccess:
ErrorDocument 403 http://www.web-alternativa.es Order deny,allow Deny from all Allow from 199.88.77.66
CREAR ENTRADAS DE EJEMPLO CON WP-CLI
Si necesitas generar contenido de prueba para una instalación de desarrollo puedes hacerlo con WP-CLI. En el siguiente ejemplo se crean nada menos que 100 entradas nuevas con contenido demo:
wp generate posts --count=100
INSTALAR WORDPRESS CON WP-CLI
Si ya tienes descargada y descomprimida la última versión de WordPress, y creado el archivo de configuración, ya puedes instalar WordPress con el siguiente comando:
wp core install --url=misitio.es --title="Título del sitio WordPress" --admin_user=nombreusuarioadmin --admin_password=claveusuarioadmin --admin_ email="[email protected]"
CREAR EL ARCHIVO WP-CONFIG.PHP CON WP-CLI
Antes de instalar WordPress puedes crear el archivo de configuración de la nueva instalación ejecutando el siguiente comando, adaptado a tu instalación:
wp core config --dbname=nombrebasededatos --dbuser=nombreusuariobasededatos --dbpass=clavebasededatos --dbhost=localhost --dbprefix=prefijo_
DESCARGAR VERSIONES ESPECÍFICAS DE WORDPRESS CON WP-CLI
Si quieres descargar una versión concreta de WordPress en vez de la última, debes ejecutar el siguiente comando de WP-CLI en la carpeta donde quieras que se descargue el archivo comprimido:
wp core download --version=4.2.2 --locale=es_ES
DESCARGAR LA ÚLTIMA VERSIÓN DE WORDPRESS CON WP-CLI
Para descargar la última versión de WordPress en un directorio de tu servidor solamente debes ejecutar el siguiente comando de WP-CLI:
wp core download
CONFIGURACIÓN DE CAMBIO DE DOMINIO AUTOMÁTICO
WordPress tiene una constante bastante poco conocida que ayuda en caso de migraciones de dominio a que no haya que modificar en la base de datos las URLs de los dominios. Simplemente debes añadir lo siguiente al archivo wp- config.php antes de hacer la exportación (cuando termines borras la línea):
define('RELOCATE',true);
CAMBIAR EL PREFIJO DE LAS TABLAS DESPUÉS DE INSTALAR
Si por algún motivo instalaste WordPress con el prefijo de tabla por defecto (_wp) y quieres cambiarlo puedes hacerlo fácilmente mediante el plugin Change DB Prefix (es.wordpress.org/plugins/db-prefix-change/).
Es una medida de seguridad básica pero vital no usar los prefijos de tabla por defecto.
ACTIVAR WORDPRESS MULTISITIO
WordPress puede convertir tu instalación simple en una red de sitios en la que ofrecer webs gratuitas a un clic o crear varias instalaciones administradas desde un escritorio único. Activar esta funcionalidad solo requiere de 2 pasos:
1. Añade la siguiente línea al archivo wp-config.php:
define( 'WP_ALLOW_MULTISITE', true );
2. Accede a la administración de tu sitio WordPress y pasa por la nueva pantalla de ajustes en Herramientas>Configuración de la red, donde verás que hay una serie de códigos que tienes que añadir a los archivos wp-config.php y .htaccess. Añade los códigos y, tras guardar los cambios, ya podrás crear nuevos sitios y administrar tu red desde el escritorio unificado.
DEFINIR UNA ESTRUCTURA DE ENLACES PERMANENTES POR DEFECTO
Si quieres definir una estructura de enlaces permanentes por defecto en una nueva instalación de WordPress, o forzar o impedir el cambio en una instalación existente debes añadir el siguiente código al fichero functions.php de tu tema activo:
function set_permalink(){ global $wp_rewrite; $wp_rewrite->set_permalink_structure('/%year%/%monthnum%/%day%/%postname%/'); } add_action('init', 'set_permalink');
Puedes cambiar la estructura del ejemplo por la que quieras, por ejemplo sólo /%postname%/.
CONFIGURAR EL HOST DE LA BASE DE DATOS SI NO SABES CUÁL ES
Casi siempre el host de la base de datos, información que necesita WordPress en su instalación, es localhost, pero hay proveedores de alojamiento Web que usan otros hosts, o incluso puede que no sea fácil de encontrar esta información. Un truco que puedes aplicar en estos (improbables) casos es sustituir la línea por defecto del archivo wp-config. php, esta:
define('DB_HOST', 'localhost');
Por esta otra:
define('DB_HOST', $_ENV{DATABASE_SERVER});
Lo que hace esta función es intentar identificar el host de la base de datos.
INSTALACIONES Y ACTUALIZACIONES SIN DATOS FTP
En ocasiones, dependiendo de la configuración del servidor, WordPress puede solicitar los datos de acceso FTP para instalar plugins, temas, actualizar versiones de WordPress y cualquier otra acción que requiera la modificación o inclusión de archivos. Para evitar este paso previo solo hay que añadir lo siguiente al archivo wp-config.php:
define('FS_METHOD', 'ftpext'); // fuerza el modo de sistema de archivos: "direct", "ssh", "ftpext", o "ftpsockets" define('FTP_BASE', '/ruta/de/wordpress/'); // ruta absoluta al directorio raíz donde está instalado WordPress define('FTP_CONTENT_DIR', '/ruta/de/wordpress/wp-content/'); // ruta absoluta al directorio "wp-content" define('FTP_PLUGIN_DIR ', '/ruta/de/wordpress/wp-content/plugins/'); // ruta absoluta al directorio "wp-plugins" define('FTP_PUBKEY', '/home/username/.ssh/id_rsa.pub'); // ruta absoluta a tu clave pública SSH define('FTP_PRIVKEY', '/home/username/.ssh/id_rsa'); // ruta absoluta a tu clave privada SSH define('FTP_USER', 'usuario'); // tu usuario FTP o SSH define('FTP_PASS', 'contraseña'); // contraseña del usuario FTP_USER define('FTP_HOST', 'ftp.dominio.tld:21'); // combinación de puerto:servidor a tu servidor SSH/FTP
Lo primero es conectarse a MySQL desde la línea de comandos:
mysql -uUSUARIOMYSQL -pCLAVEMYSQL
Cambia «USUARIOMYSQL» y «CLAVEMYSQL» en la orden anterior a tus datos de administrador. Luego pulsas la tecla INTRO (como siempre) y te conectarás. Una vez dentro crearemos la base de datos así:
create database NOMBREBASEDATOS
Cambia NOMBREBASEDATOS por el nombre que quieras darle a la misma. Lo siguiente es teclear un par de comandos para tener los permisos necesarios. El primer comando te da acceso a la base de datos para que te puedas conectar y el segundo te da todos los privilegios en la base de datos para que se puedan crear las tablas, insertar códigos, etc. Primero damos acceso:
grant usage on *.* to USUARIOMYSQL@localhost identified by 'CLAVEMYSQL'
Tienes que cambiar «USUARIOMYSQL» y «CLAVEMYSQL» por los valores con los que nos conectamos a la base de datos. A continuación daremos al usuario todos los permisos necesarios en la base de datos:
grant all privileges on NOMBREBASEDATOS.* to USUARIOMYSQL@localhost
Esta petición concede todos los privilegios al usuario para esa base de datos. Otra vez, tengo que recordarte cambiar «NOMBREBASEDATOS» y «usuario» por los valores anteriormente indicados; sé que me pongo pesado pero luego vienen los lamentos.
Ahora, si quieres, podemos comprobar la conexión. Ejecuta el siguiente comando cambiando, como siempre, los valores «USUARIOMYSQL», «CLAVEMYSQL» y «NOMBREBASEDATOS» a los que hayamos definido anteriormente:
mysql -uUSUARIOMYSQL -pCLAVEMYSQL NOMBREBASEDATOS
INSTALAR WORDPRESS DESDE SSH
Si tienes acceso a la interfaz de comandos SSH del servidor puedes instalar rápidamente la última versión de WordPress muy rápida y fácilmente. Los pasos son los siguientes:
1. Abre la interfaz de comandos de tu ordenador y teclea lo siguiente:
ssh [email protected]
2. Cambia al directorio donde vas a instalar WordPress, por ejemplo:
cd /var/www/vhosts/midominio.com/httpdocs/
3. Introduce la contraseña tecleando antes:
pwd
4. Descarga la última versión estable de WordPress:
wget http://wordpress.org/latest.zip
5. Descomprime el archivo descargado:
unzip latest.zip
6. Como WordPress viene dentro de una carpeta llamada ‘wordpress’ mueve los archivos al directorio actual:
cp -rf ./wordpress/* ./