Configuration NginxA
項(xiàng)目的root目錄是a
,a
目錄軟鏈到a1
。
后來發(fā)布新代碼后,會生成和a1
同級的a2
,a目錄也指到了a2
,但是在訪問A
項(xiàng)目的時(shí)候,運(yùn)行的還是a1
的代碼運(yùn)行結(jié)果,理論上此時(shí)應(yīng)該執(zhí)行的是a2
代碼才對。
甚至把a1
目錄刪了,報(bào)錯(cuò)內(nèi)容都還是a1
Certains codes du répertoire sont incorrects.
Je soup?onne que Nginx ou php-fpm met en cache les fichiers de code ?
OPCache, ou Nginx, php-fpmY a-t-il un problème de configuration??
Veuillez demander des réponses à Dieu.
小伙看你根骨奇佳,潛力無限,來學(xué)PHP伐。
D'après votre description, je suppose que le problème vient de opcache
.
Ici, nginx devrait passer le répertoire a
comme chemin vers php-fpm (la configuration habituelle est comme ceci),
et opcache
utilise également le chemin comme la clé de chemin du code du cache,
Ainsi, bien que le répertoire pointé par le lien symbolique ait changé, le répertoire reconnu par opcache
est le même, donc le fichier directement mis en cache est utilisé. opcache
上。
這里nginx應(yīng)該是把目錄a
作為路徑傳遞到了php-fpm中(通常的配置是這樣的),
而opcache
也是以路徑作為緩存代碼的Key,
所以說雖然軟連接指向的目錄改變了,但是opcache
識別到的目錄是一樣的,所以使用了直接緩存的文件。
建議在開發(fā)環(huán)境中,不要開啟代碼緩存,因?yàn)槟壳?code>opcache
Il est recommandé de ne pas activer la mise en cache du code dans l'environnement de développement, car actuellementopcache
ne peut pas vérifier si le fichier est mis à jour à chaque fois et ne peut être mis à jour que via des fonctions ou en configurant l'heure de mise à jour. ??Configuration dans php.ini?:
opcache.validate_timestamps=1
opcache.revalidate_freq=0
opcache vérifiera l'horodatage de modification du fichier PHP à chaque fois. Si le fichier PHP a été modifié, opcache remettra en cache le nouvel opcode du fichier PHP dans la mémoire.