pinguo / php-msf

PHP微服务框架即Micro Service Framework For PHP
GNU General Public License v2.0
1.75k stars 317 forks source link

auto_reload_enable 这个参数没生效? #175

Open im55cc opened 5 years ago

im55cc commented 5 years ago

我使用的 Vagrant 2.2.3 + centOS 7.0 ,在 DEMO 测试代码的时候,每次修改一个测试文件都要使用 php server.php 这个命令才会生效,我配置里这个 参数也打开了,这是为什么呢?

shellvon commented 5 years ago

您可以按照以下步骤排查:

  1. auto_reload_enable 只能监听到 onWorkerStart之后加载的文件有效,所以请确保你修改的文件是在此之后加载的文件,相关文档您可以看这里
  2. 若您使用了Docker技术,您还需要排查以下可能:
    1. 文件的更新使用了 Inotify 监听,一旦有文件变动需要重新加载,您可以在日志看到提示哪些文件会被重新加载,日志查看方式是 logr/logp。参见这里: https://github.com/pinguo/php-msf-docker/blob/e3af2b63337938a9d5295cdbe85f19a1e1c3a6aa/config/.bashrc#L14-L15
    2. 如果您使用的 CentOS 是 Docker-for-Windows 运行的,那么只能使用nodemon来做监听.
    3. 受限于 SELinux 机制,执行 docker 需要使用 --privileged

如果您依然无法做到自动热更新,推荐您使用 nodemon 进行管理,命令是:

nodemon -L  --exec "php server.php"
im55cc commented 5 years ago

好的,非常感谢。