[英]PHP error with exec bash shell when using cron job?
我的PHP腳本存在一個嚴重問題,即使用exec bash shell運行二進制文件。 可以在主機上或從Shell這樣運行PHP腳本是可以的:
php script.php
但是,當我使用cron作業使其頻繁運行時,我遇到的一個大問題是PHP exec似乎無法正常運行。 我由可以運行php script.php
的用戶運行cron。
這是我的時間表:
*/2 * * * * php /var/www/MODIS/modisdownload.php >> /home/rasdaman/testphp.txt
這是我要執行的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來解決(不需要顯示fullpath)。
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");
使用putenv()
將完整路徑添加到exec
或將PATH
添加到環境(用php5-cli
二進制文件替換/ usr / bin / php(完整路徑)。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.