当我尝试<?php exec('/usr/bin/pandoc file -o file.pdf'); ?>
时,没有创建任何文件。
除pdf格式外,所有格式均有效。
我认为问题在于配置服务器(debian 7 + nginx)和函数exec()
。
此命令/ usr/bin/pandoc file -o file.pdf
在终端中有效。
感谢您的帮助
与PHP shell_exec wait for script to done?
相同的问题我在日志中遇到此问题:pandoc: PATH: getEnv: does not exist (no environment variable)
答案 0 :(得分:2)
我尝试exec("pandoc --latex-engine=xelatex --from=markdown -s -S -o /tmp/pandoc.pdf --toc /tmp/pandoc > debug.log 2>&1");
进行调试,因为没有出现任何错误。
日志文件显示未定义PATH。我认为因为这是执行此脚本的www-data。我必须定义这个全局变量。
所以我尝试用PATH=/usr/bin: pandoc --latex-engine=xelatex --from=markdown -s -S -o /tmp/pandoc.pdf --toc /tmp/pandoc
来定义env var PATH,它的确有效! : - )
也可以在/etc/nginx/sites-available/yoursite.com中为nginx服务器(或带有apache的等效服务器)定义此变量
location ~ \.php$ {
[...]
include /etc/nginx/fastcgi.conf;
fastcgi_pass unix:/tmp/php.socket;
fastcgi_param PATH /usr/local/bin:/usr/bin:/bin:/your/path;
}