为什么Envoyer在部署时需要重启PHP FPM?

时间:2016-05-19 09:12:45

标签: php laravel

我正在使用Envoyer,任何人都可以解释我为什么在部署时需要重启PHP FPM。

2 个答案:

答案 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请求后重新检查。

相关问题