【问题标题】:php shell_exec doesn't work with imagemagick commandsphp shell_exec 不适用于 imagemagick 命令
【发布时间】:2012-09-05 08:59:58
【问题描述】:

我尝试将 rgb 颜色转换为透明

当我在命令行中使用此代码时,它运行良好。

convert -transparent 'RGB(249,249,255)' /home/me/web/my.png /home/me/web/mynew.png

但是当我将它与 php 一起使用时:

<?php

error_reporting(E_ALL);
ini_set('display_errors', '1');

$output = shell_exec("convert -transparent 'RGB(249,249,255)' /home/me/web/my.png /home/me/web/mynew.png");

?>

我得到了错误:

转换:无法打开图像`/home/me/web/mynew.png':@error/blob.c/OpenBlob/2498。

有人有想法吗?

【问题讨论】:

  • 错误信息中的路径是你文件的正确路径吗?
  • 现在路径已更正,但还是同样的错误...

标签: php shell imagemagick exec


【解决方案1】:

你必须使用到你的 homedir 的相对路径(因为 shell_exec),否则你必须使用绝对路径。

但是你为什么不使用imagemagick for php

【讨论】:

  • 路径现已更正,但仍然是同样的错误。我不使用 php 的 imagemagick,因为我在那里找不到 convert -transparent 命令...
【解决方案2】:

对我来说,这看起来像是一个访问权限问题。您的 Web 服务器尝试在您的主目录中写入一个文件。

通常,您的主目录受到保护,除了您自己之外,没有人可以在其中写入文件。因此,您的网络服务器无法创建新文件,而您在使用终端时可以。

检查应包含新图像的文件夹的访问权限,并允许运行 Web 服务器的用户写入该文件夹。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-31
    • 1970-01-01
    • 1970-01-01
    • 2012-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多