You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

树莓派Nginx+PHP7.3+WordPress环境下v4l2-ctl命令执行异常求助

问题分析与解决

核心原因

WordPress的PHP进程默认以www-data用户身份运行,该用户没有访问/dev/video0硬件设备的权限;而你手动执行脚本时用的是pi用户,pi默认属于video用户组,拥有访问视频设备的权限。

  • 不带参数的v4l2-ctl仅输出通用帮助信息,无需访问硬件设备,因此www-data用户可以正常执行并返回结果;
  • 带-d /dev/video0 --list-formats-ext参数的命令需要读取视频设备信息,www-data无权限访问,导致shell_exec返回空值。

解决步骤

  1. 将www-data用户添加到video用户组,赋予其视频设备访问权限:
    sudo usermod -aG video www-data
    
  2. 重启Nginx和PHP-FPM服务,让权限变更生效:
    sudo systemctl restart nginx
    sudo systemctl restart php7.3-fpm
    
  3. 验证(可选):在PHP脚本中执行以下代码,确认www-data已加入video组:
    <?php
    $output = shell_exec('id');
    echo "<pre>$output</pre>";
    ?>
    

执行完以上步骤后,再运行你的原PHP代码,应该就能正常输出视频设备的格式信息了。

内容的提问来源于stack exchange,提问作者ekavet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 10:54:54