除非我在Ubuntu上重启php-fpm,否则对php文件的更改不会反映出来

use*_*293 6 php ubuntu

我有一个Ubuntu和一个centos服务器.在centos服务器上,每当我更改php文件时,它们立即反映,但在Ubuntu上,我必须重新启动php-fpm才能使它们反映出来.

我找不到任何相关的东西.

有没有类似的经历?

小智 9

  • 什么版本的php在哪个版本的ubuntu上?
  • 你有什么参考opcache.enable=1,你的PHP配置可能(/etc/php5/fpm/conf.d/)?

在一个临时的php文件中,放一些这样的东西(不要忘记以后删除它):

   <?php
   phpinfo();
Run Code Online (Sandbox Code Playgroud)

在最近的PHP版本(5.5+)上,搜索Zend OPcache部分并查看它是否处于活动状态可能已启用.如果是这样,请查看opcache doc以正确配置它(根据dic,opcache.revalidate_freq为0以检查每个请求). https://php.net/manual/fr/opcache.configuration.php#ini.opcache.revalidate-freq

另一个原因可能是php apc(适用于php 5.4及更低版本).


Chr*_*ris 5

我对同样事物的搜索让我来到了这里。Opcache 已启用。对于上面链接(非英文)PHP 文档中提到的设置,我只发现“0 将导致 OPcache 检查每个请求的更新。”

然而,我一开始并没有听清下一句。因此,为了节省其他人几分钟的时间,以下是信息:

您需要在 php.ini 或 ext-NN-opcache.ini(自动包含)中编辑这两个设置,然后重新启动 php-fpm 才能service php-fpm restart看到更改。

; after how many seconds should code/file be checked for changes (expire)

opcache.revalidate_freq=5

; If this is off, the above does not matter. won't be checked. (no expire)

opcache.validate_timestamps=1
Run Code Online (Sandbox Code Playgroud)

这是英文版链接:https://secure.php.net/manual/en/opcache.configuration.php#ini.opcache.revalidate-freq