我想使用shell_exec命令编译一个非常简单的latex文件,以便在网页中生成各种报告。
我移动到创建tex文件的文件夹。如果我发出命令(从控制台,通过键入)
pdflatex report.tex
一切都按预期工作。
我尝试过的第一件事是在php中发出命令:
$cmd_out = shell_exec("pdflatex " . $wcopy);
其中$ wcopy包含要编译的文件的完整路径(示例中为report.tex)。 latex文件包含一个图像,并且首先编译失败,因为我从php脚本所在的目录发出pdflatex命令,picture和report.tex文件都在不同的目录中。我通过修改latex文件修复了这个问题,使图像路径相对于php脚本所在的目录。
下次我尝试运行脚本时,我从pdflatex收到了这条非常神奇的消息:
pdfTeX error: pdflatex (file ecrm1095): Font ecrm1095 at 600 not found
我相信这有关于php函数shell_exec的事情,虽然我不确定。
任何人都可以告诉我我可能做错了什么吗?我添加了整个图像,因为我认为这可能是一个线索。
编辑:
添加所需信息。服务器在Debian Linux发行版中运行,执行这些命令的用户是www-data
答案 0 :(得分:0)
这是作为网页的一部分运行的,大概是?
问题可能是您的脚本以不同的用户身份运行。我希望它以apache
运行;并且apache
可能没有配置正确的路径,或者没有正确的Latex设置来查找字体目录等。
您没有详细说明正在运行的系统,但您可以尝试将其作为apache
运行,以查看是否可以重现错误。如果这是Linux,那么成为root,然后进入正确的目录,然后运行
su - apache pdflatex report.tex
看看会发生什么。要成为root用户,如果您知道root密码,则可以自己使用su
;或者如果您使用的是Ubuntu,请尝试
sudo bash
成为root(并给它自己的密码),然后我之前建议的行apache
。