背景:有一个项目需要安装laravel-queue-rabbitmq,但是在composer安装时爆炸以下错误:Nocomposer.lockfilepresent。将依赖项更新到最新版本而不是从锁定文件安装。有关详细信息,请参阅https://getcomposer.org/install。使用包信息加载作曲家存储库警告:通过http访问nexus.officemate.cn,这是一种不安全的协议。更新依赖项无法将您的要求解析为一组可安装的包。问题1-php-amqplib/php-amqplib[v2.11.0,...,2.x-dev]需要ext-sockets*->它在您的系统中丢失。安装或启用PHP的套接字扩展。-vladimir-yuldashev/laravel-queue-rabbitmqv10.2.3需要php-amqplib/php-amqplib^2.11->可由php-amqplib/php-amqplib[v2.11.0,...,2.x-dev]满足。-根composer.json需要vladimir-yuldashev/laravel-queue-rabbitmq10.2.3->vladimir-yuldashev/laravel-queue-rabbitmq[v10.2.3]可满足。要启用扩展,请验证在您的.ini文件中启用它们:-D:\willen\phpStudy\PHPTutorial\php\php-7.2.1-nts\php.ini您还可以在终端中运行php--ini以查看哪些文件由PHP在CLI模式下使用。或者,您可以使用“--ignore-platform-req=ext-sockets”运行Composer以暂时忽略这些必需的扩展。报错截图:查询资料发现是使用RabbitMQ的原因。首先在本地安装php-amqplib扩展,对应amqp扩展;安装步骤:1、执行php-v查看本地环境;2.ampq扩展安装http://pecl.php.net/package/amqpwindows点击红框内容,选择与php版本匹配的文件下载。下载后php_amqp.dll放在php的ext中。我的本地是phpstudy,在D:\willen\phpStudy\PHPTutorial\php\php-7.2.1-nts\extrabbitmq.4.dll是放在php目录下的,也就是和php.exe在同一个目录下,我的目录为D:\willen\phpStudy\PHPTutorial\php\php-7.2.1-nts3.php.iniaddextensionextension=php_amqp.dll注意rabbitmq.4.dll放在php目录下,因为如果不是放在这里,当执行"php"命令时,会报"Thisprogramcannotbestartedbecauserabbitmq.4.dllismissingfromthecomputer.TryReinstalltheprogramtosolvethisproblem"错误,如图:4.重启php环境可以看到amqp扩展5.composer再次安装还是报这个错。解决办法:需要开启sockets扩展,然后重启php。
