>  Q&A  >  본문

Nginx 또는 php-fpm 코드 파일 캐시

내가 겪은 문제:

Nginx 구성A项目的root目录是aa目录软链到a1
后来发布新代码后,会生成和a1同级的a2,a目录也指到了a2,但是在访问A项目的时候,运行的还是a1的代码运行结果,理论上此时应该执行的是a2代码才对。
甚至把a1目录删了,报错内容都还是a1 디렉터리의 일부 코드가 잘못되었습니다.

Nginx 또는 php-fpm이 코드 파일을 캐시하는 것 같은데요?
OPCache, 또는 Nginx, php-fpm구성에 문제가 있나요?
하나님께 답을 구해보세요.

伊谢尔伦伊谢尔伦2713일 전877

모든 응답(3)나는 대답할 것이다

  • PHP中文网

    PHP中文网2017-05-16 17:16:57

    귀하의 설명에 따르면 문제는 opcache에 있는 것 같습니다.
    여기서 nginx는 a 디렉토리를 php-fpm에 대한 경로로 전달해야 하며(일반적인 구성은 이렇습니다)
    그리고 opcache도 이 경로를 다음과 같이 사용합니다. 경로는 캐시코드의 Key이므로
    소프트링크가 가리키는 디렉토리가 바뀌었더라도 opcache가 인식하는 디렉토리는 동일하므로 직접 캐시한 파일을 사용합니다. opcache上。
    这里nginx应该是把目录a作为路径传递到了php-fpm中(通常的配置是这样的),
    opcache也是以路径作为缓存代码的Key,
    所以说虽然软连接指向的目录改变了,但是opcache识别到的目录是一样的,所以使用了直接缓存的文件。

    建议在开发环境中,不要开启代码缓存,因为目前opcache

    현재 opcache는 파일 업데이트 여부를 매번 확인할 수 없고, 기능이나 업데이트 시간 구성을 통해서만 업데이트할 수 있으므로 개발 환경에서는 코드 캐싱을 활성화하지 않는 것이 좋습니다. 🎜

    회신하다
    0
  • 仅有的幸福

    仅有的幸福2017-05-16 17:16:57

    mtjpmj

    회신하다
    0
  • 大家讲道理

    大家讲道理2017-05-16 17:16:57

    php.ini의 구성:

    으아아아

    opcache는 PHP 파일의 수정 타임스탬프를 매번 확인합니다. PHP 파일이 수정된 경우 opcache는 새 PHP 파일 opcode를 메모리에 다시 캐시합니다.

    회신하다
    0
  • 취소회신하다