0

我正在尝试执行一个 shell 脚本,使用命令 convert 将一些图像从 .png 转换为 .tif。

我写了一个简短的 shell 脚本:

#! /bin/bash
convert -adaptive-resize 150% /Applications/MAMP/htdocs/test/1.png /Applications/MAMP/htdocs/test/1.tif
convert -adaptive-resize 150% /Applications/MAMP/htdocs/test/2.png /Applications/MAMP/htdocs/test/2.tif
convert -adaptive-resize 150% /Applications/MAMP/htdocs/test/3.png /Applications/MAMP/htdocs/test/3.tif
convert -adaptive-resize 150% /Applications/MAMP/htdocs/test/4.png /Applications/MAMP/htdocs/test/4.tif
convert -adaptive-resize 150% /Applications/MAMP/htdocs/test/5.png /Applications/MAMP/htdocs/test/5.tif
convert -adaptive-resize 150% /Applications/MAMP/htdocs/test/6.png /Applications/MAMP/htdocs/test/6.tif
convert -adaptive-resize 150% /Applications/MAMP/htdocs/test/7.png /Applications/MAMP/htdocs/test/7.tif
convert -adaptive-resize 150% /Applications/MAMP/htdocs/test/8.png /Applications/MAMP/htdocs/test/8.tif
convert -adaptive-resize 150% /Applications/MAMP/htdocs/test/9.png /Applications/MAMP/htdocs/test/9.

如果我从终端运行此脚本,它会按预期工作。

相反,如果我从 php 页面中启动它,它不会。

我正在使用这段代码:

exec("bash /Applications/MAMP/htdocs/test/convertpngtif.sh");

我该如何解决这个问题?

4

2 回答 2

1

这是一个权限问题。您需要允许运行 PHP 的用户访问 sh 文件。

PHP 通常作为 www-data 运行,在这种情况下,您可以打开终端并运行以下内容:-

chown www-data:www-data /Applications/MAMP/htdocs/test/convertpngtif.sh

我不知道您的系统是如何设置的,因此您可能必须 sudo 该命令。

您必须确保 www-data 也可以以类似的方式访问 bash 脚本访问的文件,因此只需以下命令即可:-

chown -R www-data:www-data /Applications/MAMP/htdocs/test/
于 2013-11-12T11:15:08.240 回答
0

解决方案:在 shell 脚本中使用完整路径。

于 2013-11-12T14:05:21.617 回答