我使用 deployer 部署了 laravel 项目,过程没问题,current 成功指向最新版本,访问时前端资源文件也变了,但是与 php 有关的都是上一版本的逻辑,直接查看服务器上的 php 文件也是最新的,非得人为把前一版本文件夹删除,才会使用最新部署的 php 脚本?有知道是什么原因的大神吗? view:clear cache:clear 都执行过还是一样。
1
m939594960 2019-05-11 11:53:35 +08:00
我感觉你说的这种情况是 opcache 的原因,有的时候软链会导致 opcache 不能自动刷新缓存。
|
2
zhengwhizz OP @m939594960 这么一说还真有可能 ,服务器确实装了 opcache
|
3
zhengwhizz OP @m939594960 那有什么命令或者办法在不删除上一版本的前提下去刷新 opcache 的缓存呢?
|
4
m939594960 2019-05-11 12:00:04 +08:00 1
nginx 的话可以重启 fpm,也可以手动调用一下这个方法 https://php.net/manual/zh/function.opcache-reset.php
|
5
zhengwhizz OP @m939594960 另外再请教下,我的一个 nginx 服务器始终指向默认站,https://www.v2ex.com/t/563105#reply1
|
6
avenger 2019-05-11 12:45:28 +08:00 via iPhone
部署后重启 fpm 就可以了
|
7
ihipop 2019-05-11 13:15:18 +08:00 via Android
nginx 的 fastcgi parameter 里面把 document root 改成 real root 损失一点 io 性能,原因是 deployer 为了回滚方便用了软连接。
当然你也可以从根上着手关闭 deployer 这个回滚设计,直接部署到真目录,因为一般都是 ci 部署,deployer 自带的版本回滚没什么用 |