Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Apache _ Apache udostępnia nieaktualną zawartość pików – jak to zmienić?

Napisany przez: Theofilos 27.04.2022, 08:47:35

Drodzy forumowicze,

mam Debiana, na nim Apache/2.4.10 i PHP 5.6.7-1.

Jak zmusić serwer, aby udostępniał aktualną wersję plików?

Zmieniam zawartość jakiegoś pliku php – np. abcd.php.
Otwieram go w przeglądarce (serwer.domena.pl/abcd.php).
Ładuje się stara zawartość. Jakby z jakiegoś cache.
Wyczyściłem już pamięć podręczną przeglądarki, ale to nic nie daje.
Jak zmienię np. nazwę na abcd1.php, i załaduję ten plik, to jest nowa zawartość.
Kolejna zmiana w pliku to samo.

Z pozdrowieniami

Napisany przez: viking 27.04.2022, 08:48:37

Sprawdź cache albo ustaw odpowiedni nagłówek cache w samym pliku php.

Napisany przez: Theofilos 27.04.2022, 10:09:43

Jak sprawdzić ten cache?

Mam pusty katalog "/var/cache/apache2/mod_cache_disk".
W "/etc/apache2/mods-enabled" mam cache.load z zawartością

Kod
LoadModule cache_module /usr/lib/apache2/modules/mod_cache.so
.

Napisany przez: viking 27.04.2022, 11:23:36

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control

Napisany przez: Theofilos 27.04.2022, 12:39:27

Dziękuję bardzo.
To dość ogólny opis i chyba uniwersalny, a mi chodziło o to, gdzie w tym Apache to ustawić.
No ale może znajdę.

Dodałem

Kod
<FilesMatch ".(htm|php|html)$">
    Header set Cache-Control "no-cache"
</FilesMatch>

do pliku /etc/apache2/apache2.conf,
ale jest bez zmian.

Napisany przez: viking 27.04.2022, 15:39:44

Pokaż nagłówki z inspektora przeglądarki. Chrome też bardzo agresywnie trzyma cache.

Napisany przez: Theofilos 9.05.2022, 17:59:07

O https://zapodaj.net/images/bc6dba2b6db5d.jpg chodzi?

To chyba nie jest problem przeglądarki.
Otworzyłem stronę w innej przeglądarce Operze (wcześniej Firefox) i też jest stara zawartość.
Otworzyłem stronę w prywatnym trybie i też jest stara treść.
Otworzyłem stronę na innym komputerze, gdzie w ogóle nie była ona otwierana i też jest stara treść.
Apache serwuje tę treść.
Gdy zmienię nazwę pliku i załaduję w przeglądarce to jest właściwa treść.
Gdy znowu w pliku coś zmienię to ponownie ładuje się treść sprzed zmiany.
Po raz kolejny mogę zmienić nazwę i znowu jest dobrze.

https://zapodaj.net/images/49f36fa42dcba.jpg jeszcze wyciąg z działania phpinfo(), zawierający parametry mające w nazwie "cache".

Dodam jeszcze, że jak coś zmieniam w pliku html, to zawartość wyświetla się w przeglądarce aktualna.
Czyli problem dotyczy php. Jak w pliku PHP coś zmienię, to się wyświetla stara zawartość.
Jak zrestartuję Apache2, to się wyświetla aktualna.
Po zmianie zawartości pliku PHP ten sam problem.

Napisany przez: trueblue 9.05.2022, 18:15:04

Próbowałeś?
https://stackoverflow.com/questions/21556437/disable-opcache-temporarily

Napisany przez: Theofilos 9.05.2022, 18:39:57

9 maja 2022 19:38
Zmieniłem nazwę pliku /etc/php5/apache2/conf.d/05-opcache.ini na kompletnie inną z innym rozszerzeniem i zrestartowałem Apache2.
Teraz zawartość plików PHP wyświetla się prawidłowo po każdej zmianie i przeładowaniu w przeglądarce jest nowa zawartość.
W tym samym momencie chyba na to "opchace" wpadliśmy.
Dziękuję bardzo.
Nie wiem tylko, czy usunięcie pliku (zmiana nazwy) jest prawidłowa, czy lepiej dokonać innej zmiany.

Napisany przez: trueblue 9.05.2022, 18:46:40

Ja bym spróbował wyłączyć moduł.
Jeśli nie chcesz, to sprawdź czy nie odkładają się gdzieś w logach błędy.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)