Nginx configurationA
The root directory of the project is a
, and the a
directory is soft linked to a1
.
Later, after new code is released, a2
at the same level as a1
will be generated. The a directory also points to a2
, but when accessing A# During the ## project, the code running result of
a1 is still running. In theory, the code
a2 should be executed at this time.
Even after deleting the
a1 directory, the error message is still that some part of the code in the
a1 directory is incorrect.
Nginx or php-fpm caching the code files?
OPCache, or Nginx, is there a configuration problem with php-fpm? Please ask God for answers.
PHP中文网2017-05-16 17:16:57
Based on your description, I guess the problem lies in the fact that the opcache
上。
这里nginx应该是把目录a
作为路径传递到了php-fpm中(通常的配置是这样的),
而opcache
也是以路径作为缓存代码的Key,
所以说虽然软连接指向的目录改变了,但是opcache
recognized directories are the same, so the directly cached files are used.
It is recommended not to turn on code caching in the development environment, because currently opcache
it is not possible to check whether the file is updated every time. It can only be updated through functions or configuring the update time.
大家讲道理2017-05-16 17:16:57
Configuration in php.ini:
opcache.validate_timestamps=1
opcache.revalidate_freq=0
opcache will verify the modification timestamp of the PHP file every time. If the PHP file has been modified, opcache will re-cache the new PHP file opcode into the memory.