Я не могу сгенерировать постскриптум из выполнения оболочки в PHP

Это программа accelRealTime.cshОбратите внимание, что эта программа запускается по Гринвичу

    #!/bin/csh  
    gmt gmtset PS_MEDIA A3 PS_PAGE_ORIENTATION landscape  
    gmt gmtset FORMAT_DATE_MAP "o-yy" FONT_ANNOT_PRIMARY +9p   
    set psfile = "Accel_sat_int.ps"  
    set infile2 = "yes_data.txt"   
    set infile3 = "not_data.txt"   
    set infile4 = "del_data.txt"   
    set right_now=date '+%d-%m-%Y'    
    set Date="2015-07-04T23:00:00"   
    set Date_init="2015-06-01T00:00:00"   
    set Date_end="2015-07-31T23:59:59"  
    set posDer=17.01   
    set posImag=-7.51   
    set marks="-Bpa1Of31d/weSn -Bsa0O:."ACELEROMETRICA_SATELITAL_INTERNET_2015":wesn"   
    set proj  = "-JX35/22 -Y3 -X3"   set range = "-R$Date_init/$Date_end/0/18"   
    gmt psxy $infile2 $range $marks $proj -K -Ss0.12i -N -Glightblue -W0 -V > $psfile   
    gmt psxy $infile4 -R -J -Ss0.12i -N -G200 -W0 -P -K -O >> $psfile   
    gmt psxy $infile3 -R -J -Ss0.12i -N -Glightred -W0 -P -K -O >> $psfile   
    echo "$Date 17.5 12 0 4 CM 15.5  UDEP" | gmt pstext -X$posDer -R -J -O -K -Dj0.1i >> $psfile   
    echo "$Date 16.5 12 0 4 CM 15.5  CHYA" | gmt pstext  -R -J -O -K -Dj0.1i >> $psfile  
    echo "$Date 15.5 12 0 4 CM 15.5  PUCA" | gmt pstext  -R -J -O -K -Dj0.1i >> $psfile   
    echo "$Date 14.5 12 0 4 CM 15.5  CBTA" | gmt pstext  -R -J -O -K -Dj0.1i >> $psfile   
    echo "$Date 17.5 12 0 4 CM %" | gmt pstext -X0 -Y1.1 -R -J -O -K -Dj0.1i >> $psfile   
   echo "$Date 8.5 12 0 4 CM Realizado el $right_now" | gmt pstext -X-1.4 -Y-13.1 -R -J -O -K -Dj0.1i >> $psfile   
   gmt psimage -X$posImag logo-igp.jpg -C-4/37.9/TR -W1.8i -O -K  >> $psfile  gmt pslegend -Dx0.5i/5.5i/13i/0.3i/BL -X-9.5 -Y-4.3 -O << EOF >>$psfile   
   G -0.1i   
   N 3   
   S 0.1i s 0.2i lightred  0.25p 0.3i No hay data   
   S 0.1i s 0.2i lightblue 0.25p 0.3i Data habilitada   
   S 0.1i s 0.2i 200 0.25p 0.3i  Data deshabilitada   
   EOF   

Когда я запускаю эту программу через сайт acceleration-realtime1.php следующее получается

<?php  
$startdate=$enddate="";  
$startdate=$_POST["start-date"];  
$enddate=$_POST["end-date"];  
$start=strtotime($startdate);  
$end=strtotime($enddate);  
echo "Start Time:" . date("d/m/Y" , $start) . ;  
echo "End Time:" . date("d/m/Y" , $end);  
$init=date("d/m/Y" , $start);  
$fin=date("d/m/Y" , $end);  
$execute=sprintf('./GMT_central.sh %s %s %s',$init,$fin,$init);  
shell_exec($execute);  
exec("./accelRealTime.csh");  
system('rm accelRealTime.csh');  
shell_exec('rm *.txt');  
 ?>

Получает Accel_sat_int.ps файл без информации, вы должны быть получены, когда один Accel_sat_int.ps файл с изображением по умолчанию

-rw-r--r--. 1 hredes apache 0 Jul 2 11:26 Accel_sat_int.ps

Но если я запускаю эту программу из командной строки следующим образом

$ php accel-realtime1.php

Следующий файл получен

-rw-r--r--. 1 hredes apache 275325 Jul 2 11:32 Accel_sat_int.ps

Пожалуйста, если кто-нибудь может помочь мне найти проблему. Потому что генерирует файл poscript при запуске программы accel-realtime1.php по командной строке?, Но не генерирует файл postscript при запуске той же программы accel-realtime1.php на сайте.

2 ответа

Благодарю. Проблема в том, что файл 'Accel_sat_int.ps' создается автоматически, когда программа 'acceleration-realtime1.php' запускается в строке N 13

exec ("./ accelRealTime.csh")

Я последовал предложению, но все еще не работает, когда я запускаю из Интернета, результат программы 'acceleration-realtime1.php' выглядит следующим образом

-rw-rw-r--. 1 hredes apache 0 Jul 2 13:52 Accel_sat_int.ps

Вы вызываете скрипт с веб-сайта с разрешением группы apache, который доступен только для чтения, меняете его на rw или меняете владельца файла.

-rw-r - r-- - это 644, сделайте это 664, чтобы быть доступным для записи группой.

Другие вопросы по тегам