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

树莓派4用PHP 8操作GPIO报错,求解决方案及PHP降级方法

问题描述

环境:Raspberry Pi 4、PHP 8、GPIO PHP库

运行以下代码时触发错误:

require 'vendor/autoload.php';
require_once 'vendor/autoload.php';

use PiPHP\GPIO\GPIO;
use PiPHP\GPIO\Pin\InputPinInterface;
use PiPHP\GPIO\Pin\OutputPinInterface;

$gpio = new GPIO();
$buttonPin = $gpio->getInputPin(3);

错误日志:

PHP Fatal error:  Uncaught RuntimeException: fwrite(): Write of 1 bytes failed with errno=22 Invalid argument
Stack trace:
#0 .../piphp/gpio/src/FileSystem/FileSystem.php(46): PiPHP\GPIO\FileSystem\FileSystem->exceptionIfFalse()
#1 .../piphp/gpio/src/Pin/Pin.php(165): PiPHP\GPIO\FileSystem\FileSystem->putContents()
#2 .../piphp/gpio/src/Pin/Pin.php(62): PiPHP\GPIO\Pin\Pin->writePinNumberToFile()
#3 .../piphp/gpio/src/Pin/Pin.php(43): PiPHP\GPIO\Pin\Pin->export()
#4 .../piphp/gpio/src/Pin/InputPin.php(19): PiPHP\GPIO\Pin\Pin->__construct()
#5 .../piphp/gpio/src/GPIO.php(34): PiPHP\GPIO\Pin\InputPin->__construct()
#6 station.php(11): PiPHP\GPIO\GPIO->getInputPin()
#7 {main} thrown in .../piphp/gpio/src/FileSystem/FileSystem.php on line 55

疑问:该错误是否由PHP 8版本导致?若是,如何降级PHP版本?


解答

1. 是否为PHP 8版本问题?

这个错误(errno=22 Invalid argument)大概率不是PHP 8本身的兼容性问题,更可能是以下两类原因:

  • 权限不足:Linux sysfs GPIO接口需要root权限才能操作,尝试用sudo php station.php执行脚本
  • 引脚操作逻辑问题:检查引脚编号是否符合PiPHP的BCM编号规则,确认引脚3在BCM体系下是可用于输入的有效引脚

若排查上述两点后问题仍存在,再考虑PHP版本适配问题,尝试降级。

2. Raspberry Pi 4降级PHP版本步骤(以降级到PHP 7.4为例)

步骤1:卸载现有PHP 8包

sudo apt purge php8.* -y
sudo apt autoremove -y
sudo apt clean

步骤2:添加PHP 7.4软件源

针对Raspberry Pi OS Bullseye及以上版本,需添加buster legacy源:

echo "deb http://legacy.raspbian.org/raspbian/ buster main contrib non-free rpi" | sudo tee /etc/apt/sources.list.d/legacy.list
sudo apt update

步骤3:安装PHP 7.4及常用扩展

sudo apt install php7.4 php7.4-cli php7.4-common php7.4-curl php7.4-gd php7.4-mbstring php7.4-xml php7.4-zip -y

步骤4:验证版本

php -v

输出应显示PHP 7.4.x版本信息。

步骤5:重新安装依赖

composer install

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 23:28:15