php - php:cli shell_exec 与 web shell_exec
问题描述
我整天都在处理这个问题,我想在后台生成一个带有 pandoc 的文档:
我有这个:
#!/bin/bash
tmp=$1
pdf=$2
/usr/bin/nohup /usr/bin/pandoc $tmp -f markdown -t latex --pdf-engine=xelatex -o $pdf 1>/dev/null 2>&1 &
我有这个 php:pandoc.php
<?php
$command = "/bin/bash /home/projects/sarebide/generate_pdf.sh /home/projects/sarebide/tmp/1607456639 /home/projects/sarebide/certified/extract_1.pdf"
shell_exec($command);
在 shell 中工作正常:
/bin/bash /home/projects/sarebide/generate_pdf.sh /home/projects/sarebide/tmp/1607456639 /home/projects/sarebide/certified/extract_1.pdf
ps结果:
ps aux | grep pandoc
pi 9004 51.0 6.2 170184 59232 pts/2 Sl 20:46 0:01 /usr/bin/pandoc /home/projects/sarebide/tmp/1607456639 -f markdown -t latex --pdf-engine=xelatex -o /home/projects/sarebide/certified/extract_1.pdf
pi 9012 0.0 0.0 7348 540 pts/2 S+ 20:47 0:00 grep --color=auto pandoc
在使用 php 运行的 shell 中工作正常:
php pandoc.php
ps结果:
ps aux | grep pandoc
pi 9382 133 6.1 170184 58268 pts/2 Rl 21:05 0:01 /usr/bin/pandoc /home/projects/sarebide/tmp/1607456639 -f markdown -t latex --pdf-engine=xelatex -o /home/projects/sarebide/certified/extract_1.pdf
pi 8983 0.0 0.0 7348 528 pts/2 S+ 20:46 0:00 grep --color=auto pandoc
但是当我通过网络执行它时:http://localhost/pandoc.php
ps结果:
ps aux | grep pandoc
pi 8983 0.0 0.0 7348 528 pts/2 S+ 20:46 0:00 grep --color=auto pandoc
shell_exec 结果为NULL
shell 和 web 的用户是相同的:pi,shell 和 web 中 whoami 的结果是相同的。
其他一些带有 shell_exec 的命令很好。
我错过了什么吗?谢谢!
解决方案
推荐阅读
- pytorch - 在 Google Colab 上运行和构建 Pytorch
- python - Spacy 英语语言模型加载时间过长
- mysql - mysql.service:主进程退出,code=exited,status=1/FAILURE
- python - 使用 Python 的未定义引用
- bash - 如何在 golang 中运行 shell 命令
- xml - 如何在 XSLT 3.0 中重命名多重属性名称?
- reactjs - 为什么子组件没有在反应中呈现
- json - POSTrequest 上的 Postman SpringBoot RestApi 状态码 415
- python - 如何使用 Django 在网站中实现图像识别系统?
- ruby-on-rails - 将参数传递给 new_path 并增加创建计数