Configuration NginxA
项目的root目录是a
,a
目录软链到a1
。
后来发布新代码后,会生成和a1
同级的a2
,a目录也指到了a2
,但是在访问A
项目的时候,运行的还是a1
的代码运行结果,理论上此时应该执行的是a2
代码才对。
甚至把a1
目录删了,报错内容都还是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.
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应该是把目录
a
作为路径传递到了php-fpm中(通常的配置是这样的),而
opcache
也是以路径作为缓存代码的Key,所以说虽然软连接指向的目录改变了,但是
opcache
识别到的目录是一样的,所以使用了直接缓存的文件。建议在开发环境中,不要开启代码缓存,因为目前
Il est recommandé de ne pas activer la mise en cache du code dans l'environnement de développement, car actuellementopcache
opcache
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 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.