【问题标题】:Magento Cronjob cache configurationMagento Cronjob 缓存配置
【发布时间】:2017-01-04 02:10:05
【问题描述】:

任何人都经历过从 magento 管理员更改配置,

清除所有缓存(包括删除缓存文件夹),

但仍然从 cronjob 加载旧的配置值(如果使用浏览器或 CURL 调用,它会加载正确的配置)

注意:

  1. 我在AWS Ec2中使用nginx + ubuntu + phpfpm,mysql是RDS

  2. 我使用 cron.sh 作为 magento cron

  3. 我使用磁力自定义模块和 cronjob 加载旧配置(甚至核心 magento 配置值)

不确定 cronjob 本身是否会被缓存,重启 cronjob 可能会有所帮助(尚未测试),但仍然不知道根本原因。

有什么想法吗?

----只是测试-----

重启cron服务不起作用

重启nginx服务不起作用

重启 php-fpm 不起作用

重启机器工作

【问题讨论】:

    标签: php magento caching cron


    【解决方案1】:

    【讨论】:

      【解决方案2】:

      终于发现,既然cron作业使用ubuntu,那么magento逻辑会是:

      如果 var 文件夹(所有者是 www-data)当前用户不可写(ubuntu)

      然后写入/tmp/magento/var/ -- Mage_Core_Model_Config_Options

      因此,所有旧缓存存储在 /tmp/magento/var/ 中,即使我 从 magento 后端清除缓存,它也不会清除这个 'tmp/magento/var'

      上述问题可以解决通过将var/更新为777手动删除 tmp/magento/var/cache 愚蠢的方式

      然而,如果使用777方式,就会出现另一个问题:

      如果 cron 用户创建一个将与 www-data 共享的日志文件,该文件将 www-data 不可写(默认为 644)

      另一种解决方案是将cron用户更改为www-data

      但是

      magento 很特别,cron.sh 会调用 cron.php 和 cron.php 然后再用 bin/sh 调用 cron.sh

      因此 www-data 没有 bin/sh 的访问权限,所以我不能用它来运行 cron

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多