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

Github Actions自托管Ubuntu运行器配置PHP7.3失败如何解决?

问题排查与修复方案

报错核心原因是shivammathur/setup-php动作在自托管Ubuntu服务器上安装PHP7.3时执行失败,可按以下步骤排查修复:

第一步:基础环境排查

  • 确认Ubuntu系统版本:运行lsb_release -a查看当前服务器版本,PHP7.3属于已停止维护的旧版本,Ubuntu22.04及以上版本的默认软件源已经移除了PHP7.3相关安装包,会直接导致安装失败。
  • 验证软件源配置:运行sudo apt list | grep php7.3,如果无匹配结果说明未添加包含旧版PHP的第三方源。
  • 检查运行权限:setup-php动作需要sudo权限安装依赖包,确认启动Github Actions runner的用户有sudo免密权限,权限不足会导致安装进程被拦截。

第二步:针对性修复

情况1:系统版本≥22.04、缺少PHP源

先在自托管服务器手动添加第三方PHP源:

sudo apt update
sudo apt install -y software-properties-common
sudo add-apt-repository ppa:ondrej/php -y
sudo apt update

可选择提前预安装PHP7.3和所需扩展,避免动作运行时出错:

sudo apt install -y php7.3 php7.3-mbstring php7.3-pdo php7.3-grpc php7.3-tokenizer php7.3-xml php7.3-json php7.3-ctype php7.3-fileinfo php7.3-openssl php7.3-bcmath composer phpunit

预安装完成后,可修改yml配置中的PHP设置步骤,添加update: true参数强制刷新源:

- name: Configure PHP 7.3
  uses: shivammathur/setup-php@v2
  with:
    php-version: '7.3'
    tools: composer, phpunit
    extensions: mbstring,PDO,grpc,tokenizer,xml,json,ctype,fileinfo,openssl,bcmath
    update: true

情况2:runner无sudo权限

给运行runner进程的用户配置sudo免密权限:
运行sudo visudo,在文件末尾添加一行(将runner_user替换为实际的runner用户名):

runner_user ALL=(ALL) NOPASSWD:ALL

保存退出后重启runner进程即可。

情况3:grpc扩展安装失败

grpc属于第三方非原生扩展,默认源无对应包时可通过pecl手动安装:

sudo apt install -y php7.3-dev php-pear
sudo pecl install grpc
echo "extension=grpc.so" | sudo tee /etc/php/7.3/mods-available/grpc.ini
sudo phpenmod grpc

可选优化方案

如果你的Laravel应用支持更高版本PHP,建议将yml中php-version参数改为8.0及以上版本,高版本PHP在新Ubuntu系统上无需额外添加源即可直接安装,安全性和稳定性更好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 21:54:05