【发布时间】:2014-07-31 08:53:07
【问题描述】:
我的 PHP 脚本存在一个严重问题,即使用 exec bash shell 运行二进制文件。如果我像这样在主机上或从 shell 运行我的 PHP 脚本也没关系:
php script.php
但是当我使用 cron 作业使其频繁运行时,我遇到的一个非常大的问题是 PHP exec 似乎无法正常运行。我由可以运行php script.php的用户运行cron。
这是我的 cron:
*/2 * * * * php /var/www/MODIS/modisdownload.php >> /home/rasdaman/testphp.txt
这是我要执行的 1 个 PHP 脚本(注意:它似乎无法运行二进制程序来获取数据)
exec("gdal_translate HDF4_EOS:EOS_SWATH:\"" . $fileInput . "\":mod04:Image_Optical_Depth_Land_And_Ocean " . $folderPath . "temp.tif");
我该如何解决这个问题?请帮忙!
好的,感谢 Sal00m 编辑我的问题。问题是 PHP exec 需要像这样的二进制程序的完整路径(/usr/local/bin/gdalinfo 文件名输入)。但是我怎样才能通过只使用 gdalinfo 来修复(不需要显示完整路径)。
【问题讨论】:
-
可能是路径问题,你确定
gdal_translate在$PATH中吗? -
您的 cli php 是否可以访问必要的库?
-
究竟发生了什么或没有发生什么?考虑到脚本可能以完全不同的用户身份运行,具有不同的权限和不同的环境配置,如 cron。
-
正如@deceze 所说,您可能正在以其他用户身份运行,将错误输出到 txt 文件可能会看到
-
好的,感谢 Sal00m 编辑我的问题。问题是 PHP exec 需要像这样的二进制程序的完整路径(/usr/local/bin/gdalinfo 文件名输入)。但是我怎样才能通过只使用 gdalinfo 来修复(不需要显示完整路径)。