PHP脚本未执行pdflatex

时间:2018-08-13 18:27:59

标签: php unix pdflatex

我有一个PHP脚本,该脚本接受传入的POST请求中的数据,将数据下载到文件中,然后运行Shell脚本。 shell脚本中只有一部分被执行---不知道为什么。该请求是

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!!");
}
?>

这是shell脚本:

/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

因此,问题可能出在RiggsFolly的foo.tex所有权与pdflatex所有权(下文评论)之间。这是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

我该怎么办?

0 个答案:

没有答案