Nem szeretek kérdezni, ha nem sürgős a megoldás. Szeretek magam rájönni mindenre, még ha ez időbe is telik. Nem volt ez másképp most sem, amikor virtuális gépen próbáltam futtatni apache webszervert, amihez a gazda gépről megosztottam egy partíciót az egyszerűség kedvéért. Miután a jogosultságokkal és a partíció felcsatolásával megbirkóztam, beletelt egy kis időbe, mire google-lal megtaláltam a megoldást a következő problémámra is:
A probléma
Adott ugye a gazda gép ( Windows 7 ). Módosítok egy html fájlt. A virtuális gép ( Debian 6 ) látja, hogy változott. A webszerver mégis a régi fájlt adja vissza. Rosszabb esetben annak egy darabját csak.
Megoldás keresése
Első gondolatom az volt, hogy a webszerver cache-sel. mod_cache és egyéb modulokat nézegettem. És kerestem rájuk a neten. Megoldás persze nem született. Az apache könyvtár bin mappájában egy htcacheclean programot is találtam. Ez sem az volt, ami nekem kellett. Majd rábukkantam egy oldalra, ahol valaki ugyanazt próbálta, mint én. És ugyanaz volt a problémája is.
A megoldás
Köszönet castor-nak a [megoldva] Virtualbox vboxs, apache oldalon 2009-ben írt kérdéséért és megoldásáért. A lényeg tehát, hogy az apache configban, ami nálam az apache/conf/httpd.conf fájl, ki kell kommentelni ( vagy be kell írni, ha nincs és/vagy Off-ra kell állítani ) a következő két sort:
EnableSendfile off
Közvetlenül felette egyébként írva is van:
# EnableMMAP and EnableSendfile: On systems that support it,
# memory-mapping or the sendfile syscall is used to deliver
# files. This usually improves server performance, but must
# be turned off when serving from networked-mounted
# filesystems or if support for these functions is otherwise
# broken on your system.
#
Azaz tök jó, ha be van kapcsolva, mert javítja a szerver teljesítményét, de hálózatról csatolt meghajtó esetén ki kell kapcsolni. Nem értek hozzá annyira, hogy most megmondjam a tutit, és kielemezzem, ez miért van így, de egyelőre megelégszem azzal, hogy a megoldás tényleg megoldás.