php shell_exec和exec不';不能使用shell脚本
这是我为树莓pi编写的代码,它可以从树莓中获取一张静止的照片,并将其保存在一个目录中php shell_exec和exec不';不能使用shell脚本,php,bash,raspberry-pi,exec,shell-exec,Php,Bash,Raspberry Pi,Exec,Shell Exec,这是我为树莓pi编写的代码,它可以从树莓中获取一张静止的照片,并将其保存在一个目录中 <?php exec('raspistill -n -hf -o /var/www/img/image.jpg --timeout 1'); ?> getImg是我试图将脚本作为类似于shell_exec('/bin/bash./getImg')的文件运行的脚本这也不起作用 我添加了/bash/bin,并尝试在不使用脚本文件的情况下运行脚本,但没有得到结果 然而,当我尝试在终端中运行php文件
<?php
exec('raspistill -n -hf -o /var/www/img/image.jpg --timeout 1');
?>
getImg
是我试图将脚本作为类似于shell_exec('/bin/bash./getImg')的文件运行的脚本代码>这也不起作用
我添加了/bash/bin,并尝试在不使用脚本文件的情况下运行脚本,但没有得到结果
然而,当我尝试在终端中运行php文件时,它会像往常一样创建图像。所以我想这一定是权限问题,但我还应该如何处理权限呢?我已授予该目录的所有权利
编辑
所以我找到了一个解决办法。由于我不知道问题的原因是什么,我不会将此标记为答案,但请投票将其显示在顶部
现在,我使用cgi脚本执行脚本。我已经在/usr/lib/cgi-bin/
#!/bin/bash
echo "Content-type:text/html\n"
sudo raspistill -vf -n -o /var/www/img/image.jpg --timeout 1200 --metering matrix
echo "Status: 204"
我将此保存为捕获并使其可执行,但并没有对权限进行任何操作
sudo chmod +x capture
现在当我打开链接http://192.168.1.85/cgi-bin/capture
浏览器仍会向我发送一条500内部服务器错误消息。然而,图像仍然会被创建
我现在需要修复500内部服务器错误。[我想添加此作为注释,但没有足够的分数]
- 如果您使用可选参数$output和$return\u var来捕获输出和返回值,您会得到什么
string exec(string$command[,array&$output[,int&$return\u var]]
- 您的命令是否依赖于当您以用户身份运行时可能可用的环境变量,而不是www数据?(您可以使用env命令来检查)
- 如果在用户切换到www数据后通过终端运行它,它是否仍然有效
[我想添加这一点作为评论,但没有足够的分数]
- 如果您使用可选参数$output和$return\u var来捕获输出和返回值,您会得到什么
string exec(string$command[,array&$output[,int&$return\u var]]
- 您的命令是否依赖于当您以用户身份运行时可能可用的环境变量,而不是www数据?(您可以使用env命令来检查)
- 如果在用户切换到www数据后通过终端运行它,它是否仍然有效
如果在脚本中使用raspistill
的完整路径,会有什么不同吗?我需要检查一下,我会发布结果soon@arco444好的,这会在php命令行执行时停止脚本执行。如果在脚本中使用raspistill
的完整路径,会有什么区别吗?我需要检查一下,我会发布结果soon@arco444好的,这会在php命令行执行时停止脚本执行。如果在脚本中使用raspistill
的完整路径,会有什么区别吗?我需要检查一下,我会发布结果soon@arco444好,这将在php命令行执行时停止脚本执行。我将检查此方法并返回给您。我将检查此方法并返回给您。我将检查此方法并返回给您。
sudo chmod +x capture