【问题标题】:How to run cron job with PHP with Imagick?如何使用 Imagick 使用 PHP 运行 cron 作业?
【发布时间】:2013-05-01 13:04:21
【问题描述】:

我有一个 php 脚本,它使用 imagick 来获取图像颜色等。

php /home/username/public_html/cron.php

我会在计划运行时收到此错误

[2013 年 4 月 30 日 00:00:02] PHP 致命错误:找不到类“Imagick” 在 /home/username/public_html/cron.php 第 113 行

php 代码示例:

try {
      $image = new Imagick($filename);
      $image->scaleImage(1,1);
            $pixel = $image->getImagePixelColor(1, 1); 
            $color = $pixel->getColor(); 
            $image_r = $color['r'];
            $image_g = $color['g'];
            $image_b = $color['b'];

            $image->destroy();


    } catch (ImagickException $e) {
        // something went wrong, handle the problem
            $image_r = 0;
            $image_g = 0;
            $image_b = 0;


    }

我是否需要设置一些环境变量以便它知道在哪里寻找 imagick? 如果我从浏览器调用 php 脚本,它工作正常。希望我可以在它工作时将此脚本移出 public_html,这样我就不会让第三方调用它。

谢谢。

【问题讨论】:

  • 注意:PHP 通过命令行和通过 apache 的配置可以不同

标签: php cron imagemagick imagick


【解决方案1】:

你需要设置你的 imagemagick 的路径,像这样对我有用

imagemagickpath = /usr/bin/imagemagick

在一些配置文件中

然后使用那个 imagemagickpath

【讨论】:

    【解决方案2】:

    假设它在非 cron 环境中工作,我注意到您的脚本位于 web 根目录中。改用 wget 怎么样:

    wget http://localhost/cron.php
    

    【讨论】:

    • 这可行,但我假设仅在 Web 根文件夹中。出于隐私问题,我想将其移出网络根目录。
    • 你可以放一个get参数作为密码,这样就不会有人意外触发了
    猜你喜欢
    • 2012-04-23
    • 1970-01-01
    • 2015-03-14
    • 1970-01-01
    • 2016-06-14
    • 2018-08-06
    • 1970-01-01
    • 2020-01-22
    • 1970-01-01
    相关资源
    最近更新 更多