我有一个Ubuntu和一个centos服务器.在centos服务器上,每当我更改php文件时,它们立即反映,但在Ubuntu上,我必须重新启动php-fpm才能使它们反映出来.
我找不到任何相关的东西.
有没有类似的经历?
小智 9
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及更低版本).
我对同样事物的搜索让我来到了这里。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