You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已禁用OPcache与JIT,PHP脚本仍不响应代码变更求助

排查步骤与解决方案
  • 确认服务器端文件是否真的更新
    直接在服务器上查看文件内容,排除编辑器路径与实际执行路径不一致的问题:

    cat /path/to/your/custom_module/your_script.php
    

    同时检查文件inode,确认文件是否被真正修改(修改后inode会变化):

    ls -i /path/to/your/custom_module/your_script.php
    
  • 清除PHP的realpath缓存
    PHP的realpath缓存可能会缓存文件路径映射,即使opcache禁用也会影响代码更新感知。可临时修改php.ini(或对应PHP-FPM pool的配置文件):

    realpath_cache_size = 0
    realpath_cache_ttl = 0
    

    重启PHP-FPM后测试,也可在脚本开头临时添加代码强制清除:

    clearstatcache(true);
    
  • 检查并禁用Apache缓存模块
    若Apache启用了缓存模块,可能会缓存动态响应导致代码变更不生效。临时禁用并重启Apache:

    sudo a2dismod cache cache_disk
    sudo systemctl restart apache2
    
  • 彻底清理Drupal底层缓存
    除常规缓存清理外,手动删除Drupal的PHP缓存目录:

    rm -rf sites/default/files/php/*
    

    若使用Drush工具,执行:

    drush cr
    
  • 确保PHP-FPM进程完全重启
    避免旧进程残留导致代码未重新加载:

    sudo systemctl stop php8.1-fpm
    sudo ps aux | grep php-fpm # 确认无残留进程
    sudo systemctl start php8.1-fpm
    
  • 用最简脚本验证环境
    在自定义模块目录下创建test.php,内容:

    <?php
    echo "Current time: " . date('Y-m-d H:i:s');
    ?>
    

    通过浏览器或curl访问该脚本,观察时间是否随刷新变化。如果时间不变,说明问题出在服务器环境而非Drupal;如果时间变化,再排查Drupal的模块加载、路由缓存或钩子注册问题。

内容的提问来源于stack exchange,提问作者jprj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 06:30:51