Konfigurasi NginxA
项目的root目录是a
,a
目录软链到a1
。
后来发布新代码后,会生成和a1
同级的a2
,a目录也指到了a2
,但是在访问A
项目的时候,运行的还是a1
的代码运行结果,理论上此时应该执行的是a2
代码才对。
甚至把a1
目录删了,报错内容都还是a1
Beberapa kod dalam direktori tidak betul.
Saya mengesyaki bahawa Nginx atau php-fpm menyimpan cache fail kod?
OPCache, atau Nginx, php-fpmAdakah terdapat sebarang masalah konfigurasi?
Tolong minta jawapan kepada Tuhan.
Berdasarkan penerangan anda, saya rasa masalahnya terletak pada
opcache
.Di sini nginx harus menghantar direktori
a
sebagai laluan ke php-fpm (konfigurasi biasa adalah seperti ini),dan
opcache
juga menggunakan laluan sebagai laluan Kekunci kod cache,Jadi, walaupun direktori yang ditunjuk oleh pautan lembut telah berubah, direktori yang diiktiraf oleh
opcache
adalah sama, jadi fail cache terus digunakan.opcache
上。这里nginx应该是把目录
a
作为路径传递到了php-fpm中(通常的配置是这样的),而
opcache
也是以路径作为缓存代码的Key,所以说虽然软连接指向的目录改变了,但是
opcache
识别到的目录是一样的,所以使用了直接缓存的文件。建议在开发环境中,不要开启代码缓存,因为目前
Adalah disyorkan untuk tidak mendayakan caching kod dalam persekitaran pembangunan, kerana pada masa iniopcache
opcache
tidak boleh menyemak sama ada fail dikemas kini setiap kali, dan hanya boleh dikemas kini melalui fungsi atau mengkonfigurasi masa kemas kini. 🎜Tatarajah dalam php.ini:
opcache akan mengesahkan cap waktu pengubahsuaian fail PHP setiap kali Jika fail PHP telah diubah suai, opcache akan meng-cache semula opcode fail PHP yang baharu ke dalam memori.