php - 使用 php shell_exec() 调用时,Blender 未运行
问题描述
Blender (2.80) 安装在 AWS 上的 /home/ec2-user 目录中。
php 在 /var/www/html/wed 的同一台服务器上运行
我可以通过 cli 访问:
wed]$ ls /home/ec2-user
列出 /home/ec2-user 的内容。
并通过php访问:
<?php<br />
$output = shell_exec('ls /home/ec2-user');
echo "<pre>$output</pre>";
?>
列出 /home/ec2-user 的内容。
我可以通过 cli 运行 Blender:
wed]$ /home/ec2-user/blender280/blender -b -noaudio proj007/font-sample.blend --python proj007/font-samples.py
运行搅拌机脚本 (proj007/font-samples.py) 并将 663 个 png 文件输出到 /var/www/html/wed/fonts。
但不是通过php:
<?php
$output = shell_exec('/home/ec2-user/blender280/blender -b -noaudio proj007/font-sample.blend --python proj007/font-samples.py');
echo "<pre>$output</pre>";
?>
没有什么。
命令被复制和粘贴,所以没有错字。
home、ec2-user 和 blender280 的权限设置为允许读取和执行。
这可能是Apache问题吗?
解决方案
事实证明我需要 php-fpm。事实证明,我无法让 php-fpm 使用 Amazon Linux 在 AWS 上工作。使用 Ubuntu 将所有东西都切换到 AWS(大约一天半的项目),一切都很好。
推荐阅读
- linux - 无法在脚本中运行命令“查找”
- ionic-framework - 您已超出此付款的银行限额,请以较小的金额重试 - Google pay in ionic
- image - KITTI 灰色、彩色图像匹配
- c - 1548132==错误:LeakSanitizer:检测到内存泄漏
- responsive - 如何在我的网站上使用漂亮的现代谷歌翻译工具栏
- python - Django Migrate 表创建不一致 - 多个旧版数据库
- r - 在数据框中创建空列时出现非数字错误
- php - 解析错误:语法错误,意外的双引号 PHP
- github - 如何从 github 上的拉取请求中删除错误的提交
- sql - 如何使用 currval 获取所有序列的值?