{"id":2419,"date":"2025-04-30T09:00:00","date_gmt":"2025-04-30T09:00:00","guid":{"rendered":"https:\/\/www.mainmind.com\/blog\/?p=2419"},"modified":"2025-05-14T10:22:29","modified_gmt":"2025-05-14T10:22:29","slug":"case-sensitive-phpbb-iis-linux","status":"publish","type":"post","link":"https:\/\/www.mainmind.com\/blog\/case-sensitive-phpbb-iis-linux\/","title":{"rendered":"Rutas de im\u00e1genes en phpBB: migraci\u00f3n IIS a Linux"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">En migraciones de aplicaciones entre sistemas operativos siempre suelen salir errores \u00abmenores\u00bb en este caso, al trasladar desde un servidor Windows en IIS a otro con AlmaLinux una instalaci\u00f3n de phpBB todo parec\u00eda correcto, hasta que al navegar por diferentes mensajes no se cargaban ciertas im\u00e1genes&#8230;<\/p>\n\n\n\n<!--more-->\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/learn.microsoft.com\/es-es\/windows\/wsl\/case-sensitivity#differences-between-windows-and-linux-case-sensitivity\">Windows por defecto no suele dar problemas<\/a>, le da igual may\u00fasculas o min\u00fasculas en el sistema de ficheros y en IIS, aunque versiones m\u00e1s modernas si es posible habilitarlo:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: powershell; title: ; notranslate\" title=\"\">\nfsutil.exe file SetCaseSensitiveInfo C:\\directorio\\ enable\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Ahora bien, en Linux los nombres de archivos y directorios si lo son&#8230; por lo tanto miFoto.JPG es diferente a mifoto.JPG, miFoto.jpg&#8230; y aqu\u00ed vienen los problemas en la migraci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Existen alternativas:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Montar un sistema case-insensitive: fuse con opciones especiales vfat, <a href=\"https:\/\/docs.oracle.com\/cd\/E19120-01\/open.solaris\/817-2271\/gftgr\/index.html\" data-type=\"link\" data-id=\"https:\/\/docs.oracle.com\/cd\/E19120-01\/open.solaris\/817-2271\/gftgr\/index.html\">ZFS con opci\u00f3n explicita<\/a>&#8230;<\/li>\n\n\n\n<li>Modulo Apache <a href=\"https:\/\/httpd.apache.org\/docs\/2.4\/mod\/mod_speling.html\">mod_speling<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Pero pueden tener impacto en rendimiento o seguridad por lo que otra alternativa es buscar en la base de datos las URLs y modificarlas, mediante un script que tengan en cuenta las rutas relativas, absolutas y alias de dominio. Para ello:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">NOTA: se limita a directorios locales \/imagenes y \/galeria para no examinar otros posibles enlaces rotos externos o en directorios no necesarios<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Se obtiene el contenido de los posts de la base de datos<\/li>\n\n\n\n<li>Se extraen las URLs de las im\u00e1genes<\/li>\n\n\n\n<li>Para cada URL de imagen, si es relativa se intentan buscar varias rutas absolutas basadas en los alias del dominio y se comprueba si existe en el servidor<\/li>\n\n\n\n<li>Los resultados se muestran en una sencilla tabla para revisar y poder aplicar la correcci\u00f3n selectivamente<\/li>\n\n\n\n<li>Se genera un log de las modificaciones efectuadas<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">2025\/05\/14 &#8211; <a href=\"https:\/\/github.com\/mainmind83\/phpBB-case-sensitive-img\/tree\/main\" data-type=\"link\" data-id=\"https:\/\/github.com\/mainmind83\/phpBB-case-sensitive-img\/tree\/main\">Actualizado el script y subido a Github<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>En migraciones de aplicaciones entre sistemas operativos siempre suelen salir errores \u00abmenores\u00bb en este caso, al trasladar desde un servidor Windows en IIS a otro con AlmaLinux una instalaci\u00f3n de phpBB todo parec\u00eda correcto, hasta que al navegar por diferentes mensajes no se cargaban ciertas im\u00e1genes&#8230;<\/p>\n","protected":false},"author":1,"featured_media":2422,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[1011,204,541,1010],"class_list":["post-2419","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud","tag-case-sensitive","tag-iis","tag-linux","tag-phpbb"],"_links":{"self":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/posts\/2419","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/comments?post=2419"}],"version-history":[{"count":3,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/posts\/2419\/revisions"}],"predecessor-version":[{"id":2424,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/posts\/2419\/revisions\/2424"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/media\/2422"}],"wp:attachment":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/media?parent=2419"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/categories?post=2419"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/tags?post=2419"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}