【发布时间】:2013-07-13 08:11:22
【问题描述】:
我正在尝试使用 imagemagick 命令“convert”从 .png 图像创建 .tif 图像。
我带来的是:
$exec = "/opt/local/bin/convert -adaptive-resize 150% ".$pos.".png ".$pos.".tif";
exec($exec);
如果我遇到 CLI “which convert”,我会得到该路径:/opt/local/bin/convert。我也试过没有路径,只有/opt/local/bin/convert -adaptive-resize 150% ".$pos.".png ".$pos.".tif和/etc/local/bin/convert -adaptive-resize 150% ".$pos.".png ".$pos.".tif。
如果我在终端中运行该命令,它会按预期工作,但是当我尝试从 PHP 脚本中使用它时,它就不起作用了。
编辑: 我也尝试使用以下代码创建一个 .sh 文件,但没有成功:
#! /bin/bash
convert -adaptive-resize 150% 1.png 1.tif
convert -adaptive-resize 150% 2.png 2.tif
convert -adaptive-resize 150% 3.png 3.tif
convert -adaptive-resize 150% 4.png 4.tif
convert -adaptive-resize 150% 5.png 5.tif
convert -adaptive-resize 150% 6.png 6.tif
convert -adaptive-resize 150% 7.png 7.tif
convert -adaptive-resize 150% 8.png 8.tif
convert -adaptive-resize 150% 9.png 9.tif
如果我从终端运行它,它就像一个魅力。 相反,如果我尝试从一个简单的 PHP 文件执行它,它不会创建任何 .tif 文件。
<?php
$exec = "./convertpngtif.sh";
exec($exec);
?>
【问题讨论】:
-
做一个 var_dump($exec) 看看生成了什么,可能是空格的问题
-
string(56) "/opt/local/bin/convert -adaptive-resize 150% 1.png 1.tif"
-
试试这些:
error_reporting(E_ALL); var_dump($_SERVER); echo getcwd();,同时查看 apache 的 error.log。 -
1.png 对用户 www-data 有读取权限吗?甚至在目录中有写权限? (用于创建新文件)(如果您在 linux 中)
-
许可 . drwxrwxrwx,1.png的权限-rw-r--r--
标签: php macos permissions exec mamp