Я не могу сгенерировать постскриптум из выполнения оболочки в 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, чтобы быть доступным для записи группой.