Wordpress, Algunos Detalles
Estuve colaborando con algunas empresas que realizaban cambios en su sitios web, donde se utilizaba Wordpress como CMS base, estos sitios web estaban siendo cambiados de servidor, actualizando a la versión mas actual o verificando actualizaciones en sus complementos, en el proceso se presentaron diferentes problemas, me toco ver la documentación oficial Wordpress Codex y en Google para darles solución.
Migración de Wordpress
Anteriormente los sitios web estaban alojados en proveedores de hosting (hospedaje web), los nuevos servidores donde se encuentran actualmente alojados cuentan con servicios web realizando reverse-proxy o balanceo de carga, para este caso fue necesario especificar algunas instancias en el archivo de configuración wp-config.php para que los archivos CSS y JS carguen de forma de correcta, otro problema que existió fue que la seguridad para el protocolo HTTPS mostraba el error de "Contenido mixto", entonces la solución de estos problemas se agrego lo siguiente:
1# wp-config.php
2define( 'DB_COLLATE', '' );
3.....
4/** Solución al problema */
5define('WP_HOME','https://www.dominio.com');
6define('WP_SITEURL','https://www.dominio.com');
7
8if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)
9 $_SERVER['HTTPS']='on';
10.....
Actualización de Wordpress
Como es normal los proveedores de hosting facilitan un servicio FTP para subir archivos, la forma de actualización también se hacia via FTP, los nuevos servidores no contaba con un servicio FTP, la primera solución que se quiso dar fue utilizando SSH (con claves publicas y privadas), pero al final se opto por realizar las actualizaciones de forma directa desde Wordpress.
1# wp-config.php
2....
3/** Actualizaciones directas */
4define(‘FS_METHOD’,’direct’);
Ocultar Información Sensible de Wordpress
Otro de los detalles que existieron fue que se mostraba información sensible del CMS, como la versión que se utliza y el archivo readme.html, para estos casos se tuvo que modificar dos archivos functions.php y .htaccess (o en su defecto el archivo de configuración del servidor web).
1# wp-content/themes/nombre_tema/functions.php
2....
3/** Ocultar version */
4remove_action('wp_head', 'wp_generator');
5add_filter('the_generator', '__return_false');
La configuración se puede realizar en .htaccess como en el archivo de configuración del servidor web.
1## Para Apache
2# .htaccess
3....
4<Files readme.html>
5 Order allow,deny
6 Deny from all
7</Files>
8
9## Para Nginx
10# dominio.conf
11location readme\.html{
12 deny all;
13}