composer怎么在Termux安装_composer在安卓Termux配置方法

1次阅读

termux中安装composer需先补全php扩展(curljson、zlib),再分步下载校验composer.phar并移入path;操作须在~/目录下进行,配置国内源及强制声明platform.php版本可解决常见报错。

composer怎么在Termux安装_composer在安卓Termux配置方法

Termux里装Composer,先确认PHP能不能跑

不能直接下安装包就开干——Termux的PHP默认不带curljson扩展,缺一个composer就卡在“class not found”或“cURL extension is missing”。

  • pkg install php只装基础PHP,没开扩展
  • 必须补全:pkg install php-curl php-json php-zlib
  • 验证是否到位:php -m | grep -E "curl|json|zlib",三者都得有输出
  • 如果php -v报错“cannot load shared library”,说明pkg upgrade没做全,先跑一遍pkg update && pkg upgrade

手动安装composer.phar,别信一键脚本

Termux不支持curl -sS https://getcomposer.org/installer | php这种管道写法——因为php进程会提前退出,导致composer.phar损坏(常见错误:PHP Parse Error: syntax error)。

  • 进临时目录:cd $TMPDIR
  • 分步下载+校验:curl -sS https://getcomposer.org/installer -o composer-setup.php
  • 运行安装器:php composer-setup.php(成功后生成composer.phar
  • 移入PATH:mv composer.phar $PREFIX/bin/composer
  • 加执行权限(必要!):chmod +x $PREFIX/bin/composer

运行时 Permission denied 或 vendor 写入失败

不是权限问题,是Termux的$HOME$PREFIX隔离太严——composer initrequire时,vendor/默认建在当前目录,但某些路径(比如/sdcard挂载点)android会拒绝PHP写入。

  • 永远在~/下操作:mkdir ~/myproj && cd ~/myproj
  • 避免用cd /sdcardcd /data等非Termux沙盒路径
  • 如果提示file_put_contents(./composer.json): failed to open stream,八成是当前目录不可写,用ls -ld .确认权限
  • 国内源加速(防超时):composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

composer require 报错 “Your requirements could not be resolved”

不是依赖冲突,是PHP版本伪装——Termux的php包实际是PHP 8.x,但Composer默认按PHP 7.2+解析composer.json里的platform.php,导致高版本库被跳过。

  • 查真实PHP版本:php -v(如显示PHP 8.3.12
  • 强制声明平台版本:composer config platform.php 8.3.12
  • composer require monolog/monolog就能正常解析
  • 若仍失败,加-vvv看具体哪条约束不满足:composer require monolog/monolog -vvv

最常被忽略的是php-zlib扩展——没它,composer install解压zip包直接崩,报错像unable to decompress gzipped phar archive,但错误信息里根本没提zlib。装完记得php -m再扫一眼。

text=ZqhQzanResources