php 7.4 可在 win7 sp1 上运行,但需启用 openssl/curl 扩展、正确配置 path、使用阿里云镜像并避免权限问题;php 8.0+ 在 win7 上存在 tls 握手失败风险。

确认 PHP 是否真能跑在 Win7 上
Win7 官方支持已于 2020 年终止,但 Composer 本身不直接限制系统版本,真正卡住的是它依赖的 PHP 和 OpenSSL —— Win7 SP1 是底线,低于这个版本(比如没装 SP1 或是 Server 2008 R2 之前)连 php -v 都会失败。
必须确保:
- 已安装 PHP 7.4(PHP 8.0+ 在 Win7 上部分 TLS 握手会失败,尤其连接 Packagist)
- php.ini 中已启用:extension=php_openssl.dll 和 extension=php_curl.dll
- 运行 php -r "print openssl_version_text();" 能输出版本(如 OpenSSL 1.1.1d),否则 Composer 后续所有网络操作都会卡在 “Loading composer repositories…”
用官方 Installer 安装 Composer 的隐藏前提
Composer-Setup.exe(当前最新版仍支持 Win7)不是“点开就装”,它会在后台调用 php.exe 执行检测脚本。如果系统 PATH 没写对、或 PHP 是绿色版解压即用但路径含空格/中文,安装器大概率跳过检测、直接让你手动选 php.exe —— 这时别乱点“下一步”,务必点“浏览”找到真实的 php.exe(例如:C:\php\php.exe)。
关键操作:
- 勾选 Add to PATH(否则后续每开一个 CMD 都要手动切路径)
- 不要选“Install for all users”再点“Next”——Win7 UAC 权限模型老旧,容易因权限不足导致 C:\ProgramData\ComposerSetup\bin 写入失败
- 安装完成后,**必须关闭并重开 CMD/PowerShell**,旧窗口不会读取新 PATH
“composer 不是内部或外部命令”的真实原因
这不是 Composer 没装好,而是 Windows 找不到它的启动入口。Win7 下常见三种情况:
- C:\ProgramData 是隐藏系统文件夹,PATH 里写的路径存在但资源管理器看不见 → 在 CMD 中运行 echo %PATH% 看是否真包含 C:\ProgramData\ComposerSetup\bin
- 杀毒软件(尤其是老款 360、金山)把 composer.bat 当可疑批处理拦截了 → 临时禁用,重装一次
- PHP 路径里有空格(如 C:\Program Files\php\php.exe),而 Installer 未正确转义 → 改用短路径(C:\Progra~1\php\php.exe)或换到 C:\php 这类无空格路径重新装
换源不是可选项,是 Win7 必做动作
Win7 的 Schannel(Windows 自带 TLS 库)不支持现代 TLS 1.2+ 的某些扩展,访问默认 https://packagist.org 时经常握手超时或证书验证失败,表现为 curl error 60 或无限卡在 “Resolving dependencies through SAT”。
立即执行:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
这条命令会写入全局配置 %USERPROFILE%\AppData\Roaming\Composer\config.json,之后所有项目都走阿里云镜像,下载速度和成功率提升明显。
注意:别用 https://packagist.phpcomposer.com(该域名已停用),也别试中科大镜像(mirrors.ustc.edu.cn)的 HTTPS 地址——Win7 对其 SNI 支持不稳定,优先选阿里云 HTTP 镜像(http://mirrors.aliyun.com/composer/)更稳妥。
Win7 上装 Composer,难点不在 Composer 本身,而在让底层 PHP + OpenSSL + Windows TLS 栈协同工作。只要 php -v 和 php -m | findstr openssl 都正常,剩下的就是路径、权限、镜像三件事——少一个,composer --version 就可能只返回一行空。










