簡體   English   中英

使用cron作業時exec bash shell出現PHP錯誤?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM