Ir al contenido principal

[linux] Error 404 al usar reglas de .htaccess en Apache

Hola a tod@s.

Los últimos días estuvimos luchando con mi compañero de pega, intentando averiguar por qué los enlaces bonitos de Wordpress no funcionaban en el nuevo servidor RedHat que mi amigo levantó para el efecto.

Les cuento la historia desde el principio. 

Hice una instalación de Wordpress 6.2.2 en mi servidor local (mi pc con Xampp) para poder desarrollar un Theme acorde al requerimiento que me habían dado de hacer una web con x características. Todo bien ahí.

Los problemas comenzaron cuando repliqué mi desarrollo en el servidor remoto. No hablaré del primer problema que tuvimos, porque no viene a cuento en el actual tema. Tal vez otro día escriba sobre eso. Pero sí decir que nos tomó tiempo solucionarlo, y cuando por fin lo logramos, y veíamos todo color de rosa, apareció este otro desgraciado a matarnos la felicidad: los enlaces formateados que nos ofrece Wordpress no funcionaban en el servidor remoto.

El camino para darle explicación y solución daba comienzo:

Revisión de permisos de usuario a los archivos: 

Modifiqué los permisos y la propiedad de los archivos de la web a fin de que pudieran ser leídos y sobreescritos por el usuario propietario de los procesos del servidor, vale decir, por el usuario "apache". Pero no bastó: por más entregados que dejara a los pobres archivos, "apache" no podía tocarlos -_-.

Revisión de las directivas de seguridad de SELinux: 

Este señor es muy estricto, y ya nos había dado la lucha con el primer obstáculo que tuvimos al mudar el sitio web a este servidor remoto. Pensando que también tendría que ver con el embrollo, volví a investigar, y me encontré con que efectivamente existía un bloqueo de parte de él. Lo bueno es que era solucionable mediante la activación de los permisos de lectura/escritura de los archivos, vía los comandos:

chcon -R -t httpd_sys_rw_content_t /var/www/html

semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html(/.*)?"

El primer comando se supone que habilita recursivamente la lectura/escritura sobre los archivos de la carpeta de mi instalación de Wordpress. El segundo comando hace lo mismo, pero permanente.

Gracias a este comando, ahora Wordpress podía leer, escribir y hacer lo que quisiera con el .htaccess :D

Pensé que por fin todos mis problemas se habían solucionado, hasta que me encontré con que al navegar por el sitio web, seguía saliendo el "Error 404" al entrar a los pretty links de Wordpress ¬_¬...

Configuración de Directivas de Apache:

Y ya cuando me estaba por dar por vencida, tocaba subir el último peldaño del esfuerzo: revisar la configuración de Apache. Respirando profundo, me puse a comparar línea por línea los archivos "conf" de mi localhost y del servidor remoto, comparándolos en lo que debiera ser idéntico. Pero no encontré diferencias...

Googleando, algunos decían que sus problemas se solucionaron al darle a la directiva de Apache "AllowOverride" el valor de "All": pero esto no me daba confianza alguna, y seguía buscando una alternativa segura.

Hasta que encontré a otro usuario de los foros que indicaba que, en vez de usar "All", él había usado "FileInfo" como valor de la directiva... Fue entonces que me di cuenta (¡por todos los cielos, cuánto nos nubla el cansancio, que no lo vi antes!) que en mi propio archivo "conf", el de mi localhost, la directiva siempre estuvo en "All", y no en "None" como lo estaba en el servidor remoto: por eso era que los enlaces bonitos funcionaban en mi localhost 🤦x1000

Pero no sólo esto: en los comentarios del mismo archivo "conf" se explicaba que esa directiva era usada precisamente para el caso de .htaccess , y yo no lo había leído antes! Me hubiera ahorrado otro par de horas de búsqueda si hubiese leído todo con atención, jajaja!

En fin, que cambié la directiva a "FileInfo", et voilà! Los enlaces bonitos de Wordpress comenzaron a funcionar! XDDDD

<Directory "/var/www/html">

  # Otras directivas...

    AllowOverride FileInfo

  # Más directivas...

<//Directory>


Pues eso. Espero que les ayude en sus propios devaneos mentales cuando quieran habilitar los pretty links en sus sitios web en servidores Linux con SELinux activado. Gracias por leer y hasta pronto!


Referencias:

Comentarios

Entradas populares de este blog

[wordpress] Configurar Red Multisitio

 Hola a todos! Después de mucho tiempo, por fin traigo un nuevo tip para desarrolladores principantes (como yo) de WordPress. En esta ocasión, les dejaré los pasos para poder configurar su instalación actual de WordPress como una red de multisitios. Para ello necesitarán tener acceso a los archivos del servidor web (vía FTP o similar), pues tendrán que editar y guardar algunos de ellos. Contexto WordPress nos ofrece una muy buena opción para administrar contenidos de sitios web (CMS, content managment system ). Usualmente, tenemos un sitio web asociado a esta instalación. Pero cuando necesitamos crear un nuevo sitio web, independiente del anterior, pero usando WordPress, lo que solemos hacer es crear una nueva ubicación en el servidor e instalar nuevamente WordPress en esta nueva carpeta.  Esto funciona bien, pero estamos olvidando que WordPress nos permite administrar más de un sitio con la misma instalación. Esta opción no está visible por defecto en la administración del CM...

[phpMyAdmin] El almacenamiento de configuración phpMyAdmin no está completamente configurado...

Estaba trabajando en la página de Wordpress para mi cliente, en mi instalación local ( localhost ) y cuando se me ocurre actualizar un par de plugins de WP, todo se cae. Wordpress me da unos avisos horribles de que el usuario de base de datos de WP no tiene el privilegio para alterar la BD... Me sugiere reparar las tablas. Y cuando voy a phpMyAdmin (pMA), el administrador de la BD, éste me sale con el mensaje: El almacenamiento de configuración phpMyAdmin no está completamente configurado, algunas funcionalidades extendidas fueron deshabilitadas. Averigüe por qué. Le doy click al link de "Averigüe por qué" y me muestra un nuevo mensaje, que me informa que la "Configuración de pma ... no recibió el OK ". El primer mensaje me apareció en la pantalla de inicio de phpMyAdmin.  Pero yo primero lo vi (no exactamente el mismo) en la pestaña de Operaciones de la BD de WP... y sucesivamente en la pestaña de Operaciones de todas las BD. En este caso, me ofrecía crear las ta...

[tip] Leer Código QR sin cámara, desde tu navegador web

Hola a todos. Regularmente estamos encontrándonos con que, tras terminar de leer un anuncio o información, el remitente nos deja un código QR para que podamos expandir nuestro conocimiento respecto del tema recién leído. La lectura de estos códigos se ha vuelto muy popular y accesible a todos los usuarios gracias a los dispositivos móviles. Si el mismo no cuenta con una cámara que tenga incorporado el lector, siempre podemos descargar e instalar una liviana aplicación que cumpla con esta función. Todo bien hasta ahí. Pero, ¿qué pasa si estoy en el computador, sentada frente a la pantalla que me muestra el código, y no me interesa tener que tomar el teléfono móvil, activarlo, abrir la aplicación de lectura de código, enfocar a la pantalla del computador, leer el código, copiar el texto obtenido, buscar la forma de traspasarlo a mi computador (yo generalmente lo envío a un contacto de confianza de Whatsapp, para luego leerlo desde Web Whatsapp -_-), para hacer algo que debiera estar inco...