安装Composer遇报错:指定PHP可执行文件运行异常求助
我之前踩过完全一样的坑,折腾了好几个小时才搞定,给你几个具体的排查和解决步骤,按顺序试下来应该能解决:
先确认PHP本身是否能正常运行
别先盯着Composer,先排查PHP的问题。打开命令提示符(最好右键选「以管理员身份运行」),直接执行:C:\xampp\php\php.exe -v如果能正常输出PHP的版本信息,那PHP本身没问题;如果报错,那问题出在XAMPP的PHP上——可能是文件损坏,或者权限不足,或者VC版本不匹配。这时候可以试试重新安装XAMPP的PHP组件,或者检查VC redistributable的版本是否和你的PHP对应:PHP 7.4+需要VC15/VC16,PHP 7.0-7.3用VC14,别装错版本。
检查PHP错误日志找具体原因
打开XAMPP中PHP的错误日志(一般在C:\xampp\php\logs目录下,或者你可以通过php --ini命令找到当前加载的php.ini,里面有error_log的配置路径),看看日志里有没有明确的报错,比如某个扩展加载失败、缺少DLL文件之类的。我当时就是因为php.ini里误注释了openssl扩展,导致Composer连不上网络,进而报错PHP无法运行。确认你修改的是正确的php.ini文件
很多人会犯改错php.ini的错误!XAMPP里的PHP目录下有一个php.ini,而Apache的conf目录里可能也有一个,但Composer用的是PHP目录下的那个。你可以执行php --ini命令,看输出里的「Loaded Configuration File」是哪个路径,确保你修改的是这个文件。另外,要确保这几个关键配置是开启的:allow_url_fopen = On extension=openssl extension_dir = "ext"修改后记得重启命令提示符,让配置生效。
试试手动安装Composer
图形安装器有时候会隐藏具体报错,换成命令行手动安装说不定能看到更详细的信息。步骤如下:- 打开管理员命令提示符,切换到一个临时目录,比如
cd C:\temp - 依次执行这几条命令:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php -r "if (hash_file('sha384', 'composer-setup.php') === '756890a4488ce9024fc62c56153228907f1545c228516cbf63f885e036d37e9a59d27d63f46af1d4d07ee0f76181c7d3') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" php composer-setup.php php -r "unlink('composer-setup.php');"
如果安装过程中出现报错,直接就能看到具体原因,比如网络问题、扩展缺失等。
- 打开管理员命令提示符,切换到一个临时目录,比如
添加PHP到系统PATH环境变量
把C:\xampp\php路径添加到系统的PATH环境变量里,然后重启命令提示符,直接输入php -v试试能不能运行。有时候图形安装器找不到PHP的路径,就是因为PHP不在系统PATH中,导致无法调用。
内容的提问来源于stack exchange,提问作者muthelok

