我的PHP脚本使用exec bash shell运行二进制文件时出现问题。如果我在主机上或从shell运行我的PHP脚本,这样就可以了:
php script.php
但是当我使用cron job使其频繁运行时,我发现一个非常大的问题就是PHP exec似乎无法正常运行。我运行cron的用户可以运行php script.php
。
这是我的cron:
*/2 * * * * php /var/www/MODIS/modisdownload.php >> /home/rasdaman/testphp.txt
这是我的一个PHP脚本exec(注意:它似乎无法运行二进制程序来获取数据)
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来修复(不需要显示完整路径)。
答案 0 :(得分:2)
2个选项:
*/2 * * * * php /usr/bin/php /var/www/MODIS/modisdownload.php >> /home/rasdaman/testphp.txt
(用php5-cli
二进制文件替换/ usr / bin / php(完整路径)。)
或者在脚本中添加shebang:
#!/usr/bin/php
<?php
exec("/usr/bin/full/path/gdal_translate HDF4_EOS:EOS_SWATH:\"" . $fileInput . "\":mod04:Image_Optical_Depth_Land_And_Ocean " . $folderPath . "temp.tif");
使用exec
添加PATH
的完整路径或将php5-cli
添加到环境中
(用{{1}}二进制文件替换/ usr / bin / php(完整路径)。)