首页 > 解决方案 > 使用 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问题吗?

标签: phpapacheamazon-ec2blendershell-exec

解决方案


事实证明我需要 php-fpm。事实证明,我无法让 php-fpm 使用 Amazon Linux 在 AWS 上工作。使用 Ubuntu 将所有东西都切换到 AWS(大约一天半的项目),一切都很好。


推荐阅读