У меня есть сценарий PHP, который принимает данные из входящего запроса POST, загружает данные в файл, а затем запускает сценарий оболочки. Только некоторые части сценария оболочек выполняются — не знаю почему. Запрос
https://knode.work/processLatex.php
где тело JSON {data: SOURCE}
SOURCE — это исходный текст LaTeX. Вот скрипт PHP:
<?php
$post_data = $_POST['data'];
if (!empty($post_data)) {
$dir = '/var/www/html/files/';
$file = 'foo';
$filename = $dir.$file.'.tex';
$handle = fopen($filename, "w");
fwrite($handle, $post_data);
fclose($handle);
chdir($dir);
exec("sh texit.sh");
echo("Done!!");
}
?>
А вот и скрипт оболочки:
/usr/bin/pdflatex foo.tex
/usr/bin/pdfatex foo.tex
rm yuuk.txt
rm *.out *.log *.aux
/usr/bin/pdflatex
строки не выполняются, но остальные строки. Какого черта? Разве не все линии равны?
((Может ли быть проблема с разрешениями?))
Ниже приведен список ./files
каталог. я создал foo.pdf
запустив pdflatex foo.tex
как корень.
-rw-r--r-- 1 root root 207383 Aug 13 17:31 foo.pdf
-rw-r--r-- 1 www-data www-data 11372 Aug 13 18:35 foo.tex
-rw-r--r-- 1 root root 84 Aug 13 17:40 texit.sh
Так что, возможно, проблема заключается в владении foo.tex
по сравнению с pdflatex
(комментарий ниже) от RiggsFolly. Вот допинг на pdflatex
:
lrwxrwxrwx 1 root root 6 Aug 21 2017 /usr/bin/pdflatex -> pdftex
Кроме того, я настроил все как root
например,
drwxr-xr-x 6 root root 4096 Aug 13 18:36 html
Что я должен делать?
Задача ещё не решена.
Других решений пока нет …