
我使用 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 nginx 的话可以重启 fpm,也可以手动调用一下这个方法 https://php.net/manual/zh/function.opcache-reset.php |
5 zhengwhizz OP @m939594960 另外再请教下,我的一个 nginx 服务器始终指向默认站,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 自带的版本回滚没什么用 |