乐趣区

关于rabbitmq:安装rabbitmq-扩展之-phpamqplibphpamqplib-失败解决方案

背景:

有个我的项目须要装置 laravel-queue-rabbitmq, 但在 composer install 时爆以下谬误:

No composer.lock file present. Updating dependencies to latest instead of installing from lock file. See https://getcomposer.org/install for more information.
Loading composer repositories with package information
Warning: Accessing nexus.officemate.cn over http which is an insecure protocol.
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - php-amqplib/php-amqplib[v2.11.0, ..., 2.x-dev] require ext-sockets * -> it is missing from your system. Install or enable PHP's sockets extension.
    - vladimir-yuldashev/laravel-queue-rabbitmq v10.2.3 requires php-amqplib/php-amqplib ^2.11 -> satisfiable by php-amqplib/php-amqplib[v2.11.0, ..., 2.x-dev].
    - Root composer.json requires vladimir-yuldashev/laravel-queue-rabbitmq 10.2.3 -> satisfiable by vladimir-yuldashev/laravel-queue-rabbitmq[v10.2.3].

To enable extensions, verify that they are enabled in your .ini files:
    - D:\willen\phpStudy\PHPTutorial\php\php-7.2.1-nts\php.ini
You can also run `php --ini` in a terminal to see which files are used by PHP in CLI mode.
Alternatively, you can run Composer with `--ignore-platform-req=ext-sockets` to temporarily ignore these required extensions.

报错截图:

查问材料后,发现起因是要应用 RabbitMQ的话,要先在本地装置 php-amqplib 扩大,这个对应的是 amqp 扩大;

装置步骤:
1. 执行 php -v 查看本地环境;

2.ampq 扩大装置
http://pecl.php.net/package/amqp

windows 点击红色框框的内容,抉择和 php 版本匹配的文件下载,下载后 php_amqp.dll 放到 php 的 ext,我的本地是 phpstudy,在 D:\willen\phpStudy\PHPTutorial\php\php-7.2.1-nts\ext

rabbitmq.4.dll 放到 php 目录下,即和 php.exe 在一个目录,我的目录是 D:\willen\phpStudy\PHPTutorial\php\php-7.2.1-nts

3.php.ini 增加扩大

extension=php_amqp.dll

留神
rabbitmq.4.dll 放在 php 目录下,是因为如果不放在这里的话,当执行“php”命令的时候会报“无奈启动此程序,因为计算机中失落 rabbitmq.4.dll。尝试重新安装该程序以解决此问题”谬误,如图:

4. 重启 php 环境
能够看到 amqp 扩大

5. 再次 composer install还是报这个错,

解决办法:须要开启 sockets 扩大,而后重启 php 就能够了

退出移动版