Apache i problem z SCRIPT_NAME – Symfony, PrestaShop

Apache i problem z SCRIPT_NAME – Symfony, PrestaShop

Jakiś czas temu zaobserwowałem zgłoszenia z problemami co do niektórych linków w panelu administracyjnym PrestaShop. Większość była prawidłowa ale link do zakładka zarządzania Modułami i Produktami kierował do strony z błędem 404. Co gorsza na jednych serwerach działało a na innych nie.

Po weryfikacji udało się ustalić że problem wynika z błędnego linku, który kompletnie nie uwzględniał ścieżki folderu dla panelu administracyjnego.
No i tu zaczęła się zagadka – czemu niektóre działają a niektóre nie.

W toku analizy udało sie ustalić, że po prostu część linków jest generowana inaczej niż pozostałe i te które były problematyczne generowane były z użyciem HttpFoundation z Symfony. To co istotne część metody za to odpowiedzialnej wygląda mniej wiecej tak:

To był dobry punkt zaczepienia. Chwile później wyświetliłem zmienne na serwerze na którym działało i na takim na którym to generowanie nie działało i zobaczyłem coś takiego:

Prawidłowe:

I błędne:

Tu już było prawie wszystko jasne, prócz tego czemu sie tak dzieje.
Trzeba było zejść do poziomu systemu i usług na nim aby ustalić że problemem jest niedawna aktualizacja Apache do wersji 2.4.26 w której dodano opcje konfiguracyjną ProxyFCGIBackendType

Ustawienie jej na ProxyFCGIBackendType GENERIC powinno pomóc w tej sytuacji.

Jako, że problem nie leżał bezpośrednio w preście to pewnie w aplikacjach które jakoś działają na tych zmiennych mogą również występować takie kwaitki. Pozwoliłem sobie zakomunikować tą kwestie twórcy Symfony tutaj: https://github.com/symfony/symfony/issues/23358

Tam też można znaleźć dodatkowe informacje. Swoją drogą zespół od Apache chyba sam do końca na ten moment nie wie czy to bug czy feature:)

Dodaj komentarz

avatar