Composer提示PHP临时目录不存在或不可写 需配置php.ini的sys_temp_dir
运行Composer时抛出如下错误:
PHP temp directory (C:\Program Files\KMSpico\temp;C:\xampp\php\tmp) does not exist or is not writable to Composer. Set sys_temp_dir in your php.ini
解决步骤
这个报错本质是PHP运行时读取到的临时目录路径无效、或对应路径无写入权限,你当前配置里混入了KMSpico的目录路径,大概率是第三方激活工具篡改了系统临时目录环境变量导致的,按以下顺序排查即可:
- 先定位CLI模式下实际加载的php.ini
Composer调用的是命令行(CLI)版本的PHP,和web服务(Apache/Nginx)加载的php.ini可能不是同一个文件,不要改错。打开命令提示符执行php --ini,输出内容中Loaded Configuration File对应的路径就是目标配置文件路径。 - 修改php.ini中的临时目录配置
打开上述php.ini文件,搜索sys_temp_dir配置项,去掉行首的分号注释符,将值配置为一个确定存在、当前用户有读写权限的单独路径,不要用分号拼接多个路径。XAMPP环境可以直接配置为PHP目录下的tmp文件夹,示例配置:
如果sys_temp_dir = "C:\xampp\php\tmp"C:\xampp\php\tmp目录不存在,手动新建该目录即可。 - 修复被篡改的系统临时目录环境变量
这步是避免问题复现的关键:右键「此电脑」选择「属性」-「高级系统设置」-「环境变量」,分别检查当前用户变量、系统变量下的TEMP和TMP两个配置项,删除值中所有带KMSpico的路径段。正常配置下,用户临时目录值应为%USERPROFILE%\AppData\Local\Temp,系统临时目录值应为C:\Windows\Temp,修改后点击确定保存。 - 验证修复结果
关闭所有已打开的命令提示符窗口(环境变量修改需要重开终端才会生效),新开窗口执行php -i | findstr sys_temp_dir,确认输出的临时目录路径和你在php.ini中配置的一致,再执行composer -V,如果能正常返回Composer版本号,说明问题已解决。 - 权限异常补充处理
如果仍提示无写入权限,右键你配置的临时目录,选择「属性」-「安全」,给当前登录的Windows用户、Users组添加「修改」「读取和写入」权限,保存后重试即可。
内容的提问来源于stack exchange,提问作者user17613159
相关产品推荐
相关产品推荐

