我正在使用Envoyer,任何人都可以解释我为什么在部署时需要重启PHP FPM。
答案 0 :(得分:8)
这是因为您的新部署是在与当前由php提供服务的目录不同的目录中创建的。该发行版是从nginx配置中指定的目录中进行符号链接。
为了让php加载新部署,必须重新启动它,以便它跟随项目文件夹中更新的符号链接。
答案 1 :(得分:0)
您可能需要更新nginx配置以添加/更改这些行。据我了解,除了Web服务器开始运行时设置的路径之外,php-fpm和opcache都不知道任何文件路径。默认情况下,它们设置为使用$document_root
。
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
设置$document_root
对于不被重新部署的应用程序是很好的。原始符号链接由php-fpm和/或opcache捕获。由于该路径不变,因此部署不会触发任何缓存破坏。
但是,使用$realpath_root
,文件的路径在部署后会更改,并且会在HTTP请求后重新检查。