欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報激活碼778899分享:php RabbitMQ 安裝

柚子快報激活碼778899分享:php RabbitMQ 安裝

http://yzkb.51969.com/

目錄

一、安裝RabbitMQ1、Linux 安裝⑴、官網(wǎng)rpm包安裝①、下載rpm安裝包官網(wǎng)下載erlangrabbitmq

packagecloud下載erlangrabbitmq

②、安裝 erlang③、安裝rabbitmq

⑵、packagecloud快速安裝⑶、添加用戶賬號及權(quán)限并登陸⑷、卸載erlang與rabbitmq卸載rabbitmq卸載erlang

2、Windows 安裝⑴、安裝erlang⑵、安裝rabbitmq

二、安裝擴展及連接測試⑴、Linux安裝擴展①、安裝 rabbitmq-c 擴展遇到的問題cmake 版本過低openssl版本過低

②、安裝amqp擴展③、composer安裝rabbitmq

⑵、Windows安裝擴展①、安裝amqp擴展②、啟用sockets擴展③、composer安裝rabbitmq

⑶、rabbitmq連接測試①、創(chuàng)建composer.json文件②、創(chuàng)建send.php、receive.php③、測試

一、安裝RabbitMQ

1、Linux 安裝

RabbitMQ是一個開源的遵循AMQP協(xié)議實現(xiàn)的基于 Erlang 語言編寫,所以在安裝 RabbitMQ 之前,必須安裝新版本的 Erlang/OTP 。 標準的Red Hat,F(xiàn)edora,CentOS 提供的是的 Erlang 舊版本,不能用于運行最新的RabbitMQ版本。

支持的系統(tǒng)版本參考 官方文檔。

我的服務(wù)器系統(tǒng)是CentOS 7.5 64位,Centos 停止維護有三個版本,即:CentOS 6(2020年11月30日停止更新)、CentOS7(2024年6月30日停止更新)、CentOS 8(2021年底停止更新),解決方案:

在2024年6月之前基于兩款新操作系統(tǒng)(CentOS Stream、RHEL訂閱版),ubuntu、openEuler、Alibaba Cloud Linux 2(開源系統(tǒng))進行系統(tǒng)適配開發(fā)、測試。

RabbitMQ 和 Erlang/OTP 兼容性:

RabbitMQ版本最低要求的 Erlang/OTP支持的最大 Erlang/OTP說明3.12.025.026.0此版本系列與Erlang 26兼容。Erlang中對OpenSSL 3.0的支持被認為已經(jīng)足夠成熟,可以用于生產(chǎn)。3.11.0 ~ 3.11.1825.025.3.xErlang26引入了許多與網(wǎng)絡(luò)和TLS相關(guān)的突破性變化。RabbitMQ與Erlang 26的兼容性將另行公布。從Erlang25.1開始,Erlang中對OpenSSL 3.0的支持被認為已經(jīng)足夠成熟,可以用于生產(chǎn)。25.0.2之前的Erlang 25受到CVE-2022-37026的影響,這是一種嚴重程度嚴重的CVE(CVSS 3.x基本分數(shù):9.8)3.10.19 ~ 3.10.2424.3.4.825.3.x24.3是Erlang 24中唯一維護(更新)的系列。從Erlang25.1開始,Erlang中的OpenSSL 3.0支持被認為已經(jīng)足夠成熟,可以考慮用于生產(chǎn)。25.0.2之前的Erlang 25和24.3.4.2之前的24受到CVE-2022-37026的影響,這是一種具有嚴重性的CVE(CVSS 3.x基本分數(shù):9.8)3.10.14 ~ 3.10.1824.325.224.3是Erlang 24中唯一維護(更新)的系列。從Erlang25.1開始,Erlang中的OpenSSL 3.0支持被認為已經(jīng)足夠成熟,可以考慮用于生產(chǎn)。25.0.2之前的Erlang 25和24.3.4.2之前的24受到CVE-2022-37026的影響,這是一種具有嚴重性的CVE(CVSS 3.x基本分數(shù):9.8)3.10.8 ~ 3.10.1324.225.2從Erlang25.1開始,Erlang中的OpenSSL 3.0支持被認為已經(jīng)足夠成熟,可以考慮用于生產(chǎn)。25.0.2之前的Erlang 25和24.3.4.2之前的24受到CVE-2022-37026的影響,這是一種具有嚴重性的CVE(CVSS 3.x基本分數(shù):9.8)3.10.5 ~ 3.10.723.225.225.0.2之前的Erlang 25和24.3.4.2之前的24受到CVE-2022-37026的影響,這是一種具有嚴重性的CVE(CVSS 3.x基本分數(shù):9.8)Erlang 23支持已于2022年7月31日停止。3.10.0 ~ 3.10.423.224.3Erlang 23支持已于2022年7月31日停止。

⑴、官網(wǎng)rpm包安裝

①、下載rpm安裝包

官網(wǎng)下載

官網(wǎng)下載地址:Erlang、RabbitMQ。

erlang

選擇自己需要的 erlang 版本。

rabbitmq

先根據(jù)標簽找到需要的版本,再去選擇適合的安裝包:

packagecloud下載

除了官網(wǎng),還可以使用 packagecloud 的下載地址。

erlang

rabbitmq

由于我的服務(wù)器系統(tǒng)是CentOS 7.5 64位,所以必須選擇支持CentOS 7的Erlang 和 RabbitMQ 版本,下載包的名字中的 el7,el8,el9分別代表CentOS7,CentOS8,CentOS9;我這里下載的是舊版本: erlang-23.3.4.11-1.el7.x86_64.rpm 和 rabbitmq-server-3.10.0-1.el7.noarch.rpm。

rmp包可以直接下載,使用 SCP 上傳上去,又或者直接使用 wget 下載。

②、安裝 erlang

[root@VM-0-12-centos ~]# wget --content-disposition "https://packagecloud.io/rabbitmq/erlang/packages/el/7/erlang-23.3.4.11-1.el7.x86_64.rpm/download.rpm?distro_version_id=140"

[root@VM-0-12-centos ~]# rpm -ivh erlang-23.3.4.11-1.el7.x86_64.rpm

warning: erlang-23.3.4.11-1.el7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 6026dfca: NOKEY

Preparing... ################################# [100%]

Updating / installing...

1:erlang-23.3.4.11-1.el7 ################################# [100%]

[root@VM-0-12-centos ~]#

[root@VM-0-12-centos ~]# erl -v # 安裝成功

Erlang/OTP 23 [erts-11.2.2.10] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1] [hipe]

Eshell V11.2.2.10 (abort with ^G)

1>

[root@VM-0-12-centos ~]#

③、安裝rabbitmq

[root@VM-0-12-centos ~]# wget --content-disposition "https://packagecloud.io/rabbitmq/rabbitmq-server/packages/el/7/rabbitmq-server-3.10.0-1.el7.noarch.rpm/download.rpm?distro_version_id=140"

[root@VM-0-12-centos ~]# rpm -ivh rabbitmq-server-3.10.0-1.el7.noarch.rpm

warning: rabbitmq-server-3.10.0-1.el7.noarch.rpm: Header V4 RSA/SHA512 Signature, key ID 6026dfca: NOKEY

Preparing... ################################# [100%]

Updating / installing...

1:rabbitmq-server-3.10.0-1.el7 ################################# [100%]

[root@VM-0-12-centos ~]#

[root@VM-0-12-centos ~]#

[root@VM-0-12-centos ~]# systemctl start rabbitmq-server # 啟動rabbitmq

[root@VM-0-12-centos ~]# systemctl status rabbitmq-server # 查看rabbitmq狀態(tài)

● rabbitmq-server.service - RabbitMQ broker

Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; disabled; vendor preset: disabled)

Active: active (running) since Mon 2023-06-12 17:26:18 CST; 8min ago

Main PID: 14354 (beam.smp)

CGroup: /system.slice/rabbitmq-server.service

├─14354 /usr/lib64/erlang/erts-11.2.2.10/bin/beam.smp -W w -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30 -P 1048576 -t 5000000 -stbt db -zdbbl 128000 -sbwt none -sb...

├─14369 erl_child_setup 32768

├─14394 /usr/lib64/erlang/erts-11.2.2.10/bin/epmd -daemon

├─14414 inet_gethost 4

└─14415 inet_gethost 4

Jun 12 17:26:17 VM-0-12-centos rabbitmq-server[14354]: Doc guides: https://rabbitmq.com/documentation.html

Jun 12 17:26:17 VM-0-12-centos rabbitmq-server[14354]: Support: https://rabbitmq.com/contact.html

Jun 12 17:26:17 VM-0-12-centos rabbitmq-server[14354]: Tutorials: https://rabbitmq.com/getstarted.html

Jun 12 17:26:17 VM-0-12-centos rabbitmq-server[14354]: Monitoring: https://rabbitmq.com/monitoring.html

Jun 12 17:26:17 VM-0-12-centos rabbitmq-server[14354]: Logs: /var/log/rabbitmq/rabbit@VM-0-12-centos.log

Jun 12 17:26:17 VM-0-12-centos rabbitmq-server[14354]: /var/log/rabbitmq/rabbit@VM-0-12-centos_upgrade.log

Jun 12 17:26:17 VM-0-12-centos rabbitmq-server[14354]:

Jun 12 17:26:17 VM-0-12-centos rabbitmq-server[14354]: Config file(s): (none)

Jun 12 17:26:18 VM-0-12-centos systemd[1]: Started RabbitMQ broker.

Jun 12 17:26:18 VM-0-12-centos rabbitmq-server[14354]: Starting broker... completed with 3 plugins.

[root@VM-0-12-centos ~]#

參考其他博客時,都說需要安裝 socat 依賴,但是我這里直接安裝成功,如果有報錯的的話就安裝一下:

yum install -y socat

安裝管理工具RabbitMQ-Plugins:

rabbitmq-plugins enable rabbitmq_management

15672端口 訪問成功:

接下來可直接查看下面的 【添加用戶賬號及權(quán)限并登陸】。

⑵、packagecloud快速安裝

packagecloud也是提供了快速安裝方式的RabbitMQ,安裝的時候我發(fā)現(xiàn)腳本它會自動選擇最packagecloud中適合當前系統(tǒng)的最高版本。

使用腳本準備安裝 erlang:curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash

使用 packagecloud腳本 準備安裝 rabbitmq server:curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash

yum 安裝 erlang:yum -y install erlang

yum 安裝 rabbitmq server:yum -y install rabbitmq-server

啟動 RabbitMQ 服務(wù):systemctl start rabbitmq-server

查看 RabbitMQ 服務(wù)狀態(tài):systemctl status rabbitmq-server

安裝管理工具RabbitMQ-Plugins:rabbitmq-plugins enable rabbitmq_management

使用 15672端口 打開管理網(wǎng)頁:

⑶、添加用戶賬號及權(quán)限并登陸

添加 RabbitMQ 用戶,并設(shè)置權(quán)限:

rabbitmqctl add_user [username] [password] # 添加用戶賬號

rabbitmqctl set_user_tags [username] administrator # 給用戶添加權(quán)限

[root@VM-0-12-centos ~]# rabbitmqctl add_user rabbitmq rabbitmq

Adding user "rabbitmq" ...

Done. Don't forget to grant the user permissions to some virtual hosts! See 'rabbitmqctl help set_permissions' to learn more.

[root@VM-0-12-centos ~]# rabbitmqctl set_user_tags rabbitmq administrator

Setting tags for user "rabbitmq" to [administrator] ...

[root@VM-0-12-centos ~]#

回到上面截圖頁面,登錄rabbitmq:

RabbitMQ常用命令:

查看RabbitMQ狀態(tài):

rabbitmqctl status

啟動RabbitMQ服務(wù):

systemctl start rabbitmq-server

停止RabbitMQ服務(wù):

systemctl stop rabbitmq-server

重啟RabbitMQ服務(wù):

systemctl restart rabbitmq-server

查看RabbitMQ用戶列表:

rabbitmqctl list_users

刪除RabbitMQ用戶:

rabbitmqctl delete_user [username]

修改RabbitMQ用戶密碼:

rabbitmqctl [oldpassword] [username] [newpassword]

⑷、卸載erlang與rabbitmq

如果需要熟悉不同安裝方式,或者版本不兼容的話需要卸載:

卸載rabbitmq

# 卸載前先停掉rabbitmq服務(wù)

service rabbitmq-server stop

# 查看rabbitmq安裝的相關(guān)列表

yum list | grep rabbitmq

# 卸載rabbitmq已安裝的相關(guān)內(nèi)容

yum -y remove rabbitmq-server.noarch

卸載erlang

查看erlang安裝的相關(guān)列表

yum list | grep erlang

卸載erlang已安裝的相關(guān)內(nèi)容

卸載erlang已安裝的相關(guān)內(nèi)容

yum -y remove erlang-*

yum remove erlang.x86_64

2、Windows 安裝

Windows 安裝直接在官網(wǎng)中下載exe應(yīng)用程序,這里我就直接下載了最新版本:otp_win64_26.0.1.exe 和 rabbitmq-server-3.12.0.exe(參考上面RabbitMQ 和 Erlang/OTP 兼容性)。

⑴、安裝erlang

下載erlang: 下載成功后直接雙擊otp_win64_26.0.1.exe開始安裝(一直next即可,我這里安裝位置改到了D盤),安裝成功后如下:

環(huán)境變量添加 erlang 配置:

cmd 執(zhí)行 erl -v 測試是否安裝成功:

⑵、安裝rabbitmq

和erlang 一樣,直接雙擊應(yīng)用程序開始安裝(一直next,只改了安裝位置),安裝成功后如下: 環(huán)境變量PATH追加 rabbitmq 的 sbin 路徑: 安裝管理工具RabbitMQ-Plugins: 訪問http://localhost:15672/,(默認賬號:guest,密碼:guest)就能進入RabbitMQ管理界面:

二、安裝擴展及連接測試

如果PHP環(huán)境下使用 RabbitMQ 的話,要先在本地安裝 php-amqplib 擴展,這個對應(yīng)的是 amqp 擴展,擴展下載地址。

⑴、Linux安裝擴展

Linux系統(tǒng)下 php 操作 rabbitmq 需要安裝 amqp 擴展,但是安裝 amqp 擴展前需要安裝 rabbitmq-c。

rabbitmq-c是一個用于C語言的,與AMQP server進行交互的client庫,AMQP協(xié)議為版本0-9-1。rabbitmq-c與server進行交互前需要首先進行l(wèi)ogin操作,在操作后,可以根據(jù)AMQP協(xié)議規(guī)范,執(zhí)行一系列操作。 我個人理解就是 php 底層是 C 語言, 而rabbitmq 是基于 erlang 語言,所以abbitmq-c擴展就是用于php與erlang的交互。

①、安裝 rabbitmq-c 擴展

rabbitmq-c 擴展下載地址。

cd /usr/local

git clone https://github.com/alanxz/rabbitmq-c.git

cd /usr/local/rabbitmq-c

mkdir build && cd build \

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/rabbitmq-c ..

cmake --build . --target install

cd /usr/local/rabbitmq-c/lib64

cp /usr/local/rabbitmq-c/lib64/librabbitmq.so /usr/lib

cp /usr/local/rabbitmq-c/lib64/librabbitmq.so.4 /usr/lib

echo "include /usr/local/lib" >> /etc/ld.so.conf

ldconfig

如果openssl版本過低,下載不了,就直接瀏覽器下載,SCP上傳一下

[root@VM-0-12-centos local]# wget -c https://github.com/alanxz/rabbitmq-c/archive/refs/tags/v0.13.0.tar.gz

[root@VM-0-12-centos local]# tar zxf v0.13.0.tar.gz

[root@VM-0-12-centos local]# cd /usr/local/rabbitmq-c-0.13.0/

[root@VM-0-12-centos rabbitmq-c-0.13.0]# mkdir build && cd build

[root@VM-0-12-centos build]# ls

CMakeCache.txt CMakeFiles

[root@VM-0-12-centos build]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/rabbitmq-c ..

...

[root@VM-0-12-centos build]# cmake --build . --target install

...

[root@VM-0-12-centos build]# cd /usr/local/rabbitmq-c/lib64/

[root@VM-0-12-centos lib64]# cp /usr/local/rabbitmq-c/lib64/librabbitmq.so /usr/lib

[root@VM-0-12-centos lib64]# cp /usr/local/rabbitmq-c/lib64/librabbitmq.so.4 /usr/lib

[root@VM-0-12-centos lib64]# echo "include /usr/local/lib" >> /etc/ld.so.conf

[root@VM-0-12-centos lib64]# ldconfig

[root@VM-0-12-centos lib64]#

遇到的問題

cmake 版本過低

[root@VM-0-12-centos build]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/rabbitmq-c ..

CMake Error at CMakeLists.txt:4 (cmake_minimum_required):

CMake 3.12...3.18 or higher is required. You are running version 2.8.12.2

-- Configuring incomplete, errors occurred!

[root@VM-0-12-centos build]# cmake --version

cmake version 2.8.12.2

解決方法:

打開 這里,下載高版本的cmake,我選擇的是 cmake-3.12.4.tar.gz:[root@VM-0-12-centos ~]# wget https://cmake.org/files/v3.12/cmake-3.12.4.tar.gz

[root@VM-0-12-centos ~]# tar zxf cmake-3.12.4.tar.gz

[root@VM-0-12-centos ~]# cd cmake-3.12.4/

[root@VM-0-12-centos cmake-3.12.4]# ./bootstrap

...

[root@VM-0-12-centos cmake-3.12.4]# make && make install

...

[root@VM-0-12-centos cmake-3.12.4]# cmake --version

cmake version 3.12.4

CMake suite maintained and supported by Kitware (kitware.com/cmake).

[root@VM-0-12-centos cmake-3.12.4]#

openssl版本過低

解決辦法:

升級openssl:[root@VM-0-12-centos local]# wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz

[root@VM-0-12-centos local]# tar -zxf openssl-1.1.1g.tar.gz

[root@VM-0-12-centos local]# cd openssl-1.1.1g

[root@VM-0-12-centos openssl-1.1.1g]# ./config --prefix=/usr/local/openssl shared zlib

...

[root@VM-0-12-centos openssl-1.1.1g]# make depend

[root@VM-0-12-centos openssl-1.1.1g]# make && make install

...

[root@VM-0-12-centos openssl-1.1.1g]# ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl

[root@VM-0-12-centos openssl-1.1.1g]# ln -s /usr/local/openssl/include/openssl /usr/include/openssl

[root@VM-0-12-centos openssl-1.1.1g]# echo "/usr/local/ssl/lib" >> /etc/ld.so.conf # 更新動態(tài)鏈接庫數(shù)據(jù)

[root@VM-0-12-centos openssl-1.1.1g]# ldconfig -v # 重新加載動態(tài)鏈接庫

[root@VM-0-12-centos openssl-1.1.1g]# ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib

[root@VM-0-12-centos openssl-1.1.1g]# ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib

[root@VM-0-12-centos openssl-1.1.1g]# openssl version

OpenSSL 1.1.1g 21 Apr 2020

[root@VM-0-12-centos lib]#

②、安裝amqp擴展

wget或者直接下載使用SCP上傳:

[root@VM-0-12-centos ~]# wget http://pecl.php.net/get/amqp-1.11.0.tgz

[root@VM-0-12-centos ~]# tar -zxf amqp-1.11.0.tgz

[root@VM-0-12-centos ~]# cd amqp-1.11.0/

[root@VM-0-12-centos amqp-1.11.0]# ls

amqp_basic_properties.c amqp_envelope.c amqp_type.h

amqp_basic_properties.h amqp_envelope.h benchmark.php

amqp.c amqp_exchange.c config.m4

amqp_channel.c amqp_exchange.h config.w32

amqp_channel.h amqp_methods_handling.c CREDITS

amqp_connection.c amqp_methods_handling.h LICENSE

amqp_connection.h amqp_queue.c php5_support.h

amqp_connection_resource.c amqp_queue.h php7_support.h

amqp_connection_resource.h amqp_timestamp.c php_amqp.h

amqp_decimal.c amqp_timestamp.h stubs

amqp_decimal.h amqp_type.c tests

[root@VM-0-12-centos amqp-1.11.0]#

解壓后,使用phpize安裝擴展,下面的路徑換成自己的:

[root@VM-0-12-centos amqp-1.11.0]# find / -name phpize

/usr/local/php/bin/phpize

/usr/bin/phpize

[root@VM-0-12-centos amqp-1.11.0]# /usr/local/php/bin/phpize

[root@VM-0-12-centos amqp-1.11.0]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-amqp --with-librabbitmq-dir=/usr/local/rabbitmq-c

...

[root@VM-0-12-centos amqp-1.11.0]# make && make install

...

Build complete.

Don't forget to run 'make test'.

Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20190902/

[root@VM-0-12-centos amqp-1.11.0]#

修改配置文件php.ini,追加以下內(nèi)容:

extension = amqp.so

重啟php-fpm,查看是否安裝成功:

[root@VM-0-12-centos sockets]# php -m

[PHP Modules]

amqp

bcmath

Core

ctype

...

Windows 系統(tǒng)下 sockets 擴展是默認關(guān)閉的,但是Linux下 sockets 擴展是開啟的,查看是否啟用:

[root@VM-0-12-centos sockets]# php -m

[PHP Modules]

amqp

bcmath

Core

ctype

curl

date

dom

fileinfo

filter

ftp

gd

gettext

hash

iconv

intl

json

libxml

mbstring

mysqli

mysqlnd

openssl

pcntl

pcre

PDO

pdo_mysql

pdo_sqlite

Phar

posix

Reflection

session

shmop

SimpleXML

soap

sockets

SPL

sqlite3

standard

sysvsem

tokenizer

xml

xmlreader

xmlrpc

xmlwriter

xsl

zip

zlib

[Zend Modules]

[root@VM-0-12-centos sockets]#

③、composer安裝rabbitmq

root@VM-0-12-centos ~]# cd /home/wwwroot/laravel/

[root@VM-0-12-centos laravel]# composer require vladimir-yuldashev/laravel-queue-rabbitmq

Cannot use vladimir-yuldashev/laravel-queue-rabbitmq's latest version v13.3.0 as it requires php ^8.0 which is not satisfied by your platform.

./composer.json has been updated

Running composer update vladimir-yuldashev/laravel-queue-rabbitmq

Loading composer repositories with package information

Updating dependencies

Lock file operations: 5 installs, 0 updates, 0 removals

- Locking paragonie/constant_time_encoding (v2.6.3)

- Locking paragonie/random_compat (v9.99.100)

- Locking php-amqplib/php-amqplib (v3.5.2)

- Locking phpseclib/phpseclib (3.0.19)

- Locking vladimir-yuldashev/laravel-queue-rabbitmq (v11.3.0)

Writing lock file

Installing dependencies from lock file (including require-dev)

Package operations: 5 installs, 0 updates, 0 removals

- Installing paragonie/random_compat (v9.99.100): Extracting archive

- Installing paragonie/constant_time_encoding (v2.6.3): Extracting archive

- Installing phpseclib/phpseclib (3.0.19): Extracting archive

- Installing php-amqplib/php-amqplib (v3.5.2): Extracting archive

- Installing vladimir-yuldashev/laravel-queue-rabbitmq (v11.3.0): Extracting archive

4 package suggestions were added by new dependencies, use `composer suggest` to see details.

Package fruitcake/laravel-cors is abandoned, you should avoid using it. No replacement was suggested.

Package swiftmailer/swiftmailer is abandoned, you should avoid using it. Use symfony/mailer instead.

Generating optimized autoload files

> Illuminate\Foundation\ComposerScripts::postAutoloadDump

> @php artisan package:discover --ansi

Discovered Package: facade/ignition

Discovered Package: fruitcake/laravel-cors

Discovered Package: laravel/sail

Discovered Package: laravel/sanctum

Discovered Package: laravel/tinker

Discovered Package: nesbot/carbon

Discovered Package: nunomaduro/collision

Discovered Package: vladimir-yuldashev/laravel-queue-rabbitmq

Package manifest generated successfully.

78 packages you are using are looking for funding.

Use the `composer fund` command to find out more!

> @php artisan vendor:publish --tag=laravel-assets --ansi --force

No publishable resources for tag [laravel-assets].

Publishing complete.

No security vulnerability advisories found

Using version ^11.3 for vladimir-yuldashev/laravel-queue-rabbitmq

[root@VM-0-12-centos laravel]#

⑵、Windows安裝擴展

①、安裝amqp擴展

根據(jù)我的環(huán)境是 php7.3,選擇的是64位NON Thread Safe(TS),不知道選擇TS 還是 NTS的下面。

TS和NTS

TS指Thread Safety,即線程安全,一般在IIS以ISAPI方式加載的時候選擇這個版本。NTS即None-Thread Safe,一般以fast cgi方式運行的時候選擇這個版本,具有更好的性能。

???????從2000年10月20日發(fā)布的第一個Windows版的PHP3.0.17開始的都是線程安全的版本,這是由于與Linux/Unix系統(tǒng)是采用多進程的工作方式不同的是Windows系統(tǒng)是采用多線程的工作方式。如果在IIS下以CGI方式運行PHP會非常慢,這是由于CGI模式是建立在多進程的基礎(chǔ)之上的,而非多線程。一般我們會把PHP配置成以ISAPI的方式來運行,ISAPI是多線程的方式,這樣就快多了。但存在一個問題,很多常用的PHP擴展是以Linux/Unix的多進程思想來開發(fā)的,這些擴展在ISAPI的方式運行時就會出錯搞垮IIS。因此在IIS下CGI模式才是 PHP運行的最安全方式,但CGI模式對于每個HTTP請求都需要重新加載和卸載整個PHP環(huán)境,其消耗是巨大的。

???????為了兼顧IIS下PHP的效率和安全,微軟給出了FastCGI的解決方案。FastCGI可以讓PHP的進程重復利用而不是每一個新的請求就重開一個進程。同時FastCGI也可以允許幾個進程同時執(zhí)行。這樣既解決了CGI進程模式消耗太大的問題,又利用上了CGI進程模式不存在線程安全問題的優(yōu)勢。 ???????因此,如果是使用ISAPI的方式來運行PHP就必須用Thread Safe(線程安全)的版本;而用FastCGI模式運行PHP的話就沒有必要用線程安全檢查了,用None Thread Safe(NTS,非線程安全)的版本能夠更好的提高效率。

下載解壓后如下: 打開自己的php安裝目錄,因為我用的是phpstudy,安裝了多個PHP環(huán)境,這里我以php7.3.4為例:

Admin@DESKTOP-CSH3FGN MINGW64 ~/Desktop

$ php -v

PHP 7.3.4 (cli) (built: Apr 2 2019 21:57:22) ( NTS MSVC15 (Visual C++ 2017) x64

)

Copyright (c) 1997-2018 The PHP Group

Zend Engine v3.3.4, Copyright (c) 1998-2018 Zend Technologies

with Xdebug v2.9.6, Copyright (c) 2002-2020, by Derick Rethans

Admin@DESKTOP-CSH3FGN MINGW64 ~/Desktop

$

接下來需要把解壓后的 php_amqp.dll 和 rabbitmq.4.dll,放到對應(yīng)的目錄:

php_amqp.dll 放到 E:\phpstudy_pro\Extensions\php\php7.3.4nts\ext 目錄下; rabbitmq.4.dll 放到 php.exe 同級目錄,即 E:\phpstudy_pro\Extensions\php\php7.3.4nts; php.ini 配置文件中添加擴展 extension=php_amqp.dll,并重啟php: phpinfo查看是否安裝成功:

②、啟用sockets擴展

除了amqp 擴展,還需要啟用 sockets 擴展,這個php自帶的但是沒有啟用,刪除配置文件的注釋重啟php就好;

重啟PHP。

③、composer安裝rabbitmq

方式一:

composer require vladimir-yuldashev/laravel-queue-rabbitmq

方式二:

"require": {

"vladimir-yuldashev/laravel-queue-rabbitmq": "^11.3"

},

composer install

E:\work\laravel>composer require vladimir-yuldashev/laravel-queue-rabbitmq

Using version ^11.3 for vladimir-yuldashev/laravel-queue-rabbitmq

./composer.json has been updated

Running composer update vladimir-yuldashev/laravel-queue-rabbitmq

Loading composer repositories with package information

Updating dependencies

Lock file operations: 5 installs, 0 updates, 0 removals

- Locking paragonie/constant_time_encoding (v2.6.3)

- Locking paragonie/random_compat (v9.99.100)

- Locking php-amqplib/php-amqplib (v3.5.2)

- Locking phpseclib/phpseclib (3.0.19)

- Locking vladimir-yuldashev/laravel-queue-rabbitmq (v11.3.0)

Writing lock file

Installing dependencies from lock file (including require-dev)

Package operations: 5 installs, 0 updates, 0 removals

- Downloading paragonie/random_compat (v9.99.100)

- Downloading paragonie/constant_time_encoding (v2.6.3)

- Downloading phpseclib/phpseclib (3.0.19)

- Downloading php-amqplib/php-amqplib (v3.5.2)

- Downloading vladimir-yuldashev/laravel-queue-rabbitmq (v11.3.0)

- Installing paragonie/random_compat (v9.99.100): Extracting archive

- Installing paragonie/constant_time_encoding (v2.6.3): Extracting archive

- Installing phpseclib/phpseclib (3.0.19): Extracting archive

- Installing php-amqplib/php-amqplib (v3.5.2): Extracting archive

- Installing vladimir-yuldashev/laravel-queue-rabbitmq (v11.3.0): Extracting archive

5 package suggestions were added by new dependencies, use `composer suggest` to see details.

Package fruitcake/laravel-cors is abandoned, you should avoid using it. No replacement was suggested.

Package swiftmailer/swiftmailer is abandoned, you should avoid using it. Use symfony/mailer instead.

Generating optimized autoload files

> Illuminate\Foundation\ComposerScripts::postAutoloadDump

> @php artisan package:discover --ansi

Discovered Package: facade/ignition

Discovered Package: fruitcake/laravel-cors

Discovered Package: laravel/sail

Discovered Package: laravel/sanctum

Discovered Package: laravel/tinker

Discovered Package: nesbot/carbon

Discovered Package: nunomaduro/collision

Discovered Package: vladimir-yuldashev/laravel-queue-rabbitmq

Package manifest generated successfully.

77 packages you are using are looking for funding.

Use the `composer fund` command to find out more!

> @php artisan vendor:publish --tag=laravel-assets --ansi --force

No publishable resources for tag [laravel-assets].

Publishing complete.

E:\work\laravel>

⑶、rabbitmq連接測試

參考:Hello World。

①、創(chuàng)建composer.json文件

composer.json 內(nèi)容:

{

"require": {

"php-amqplib/php-amqplib": "2.6.1"

}

}

加載依賴:

composer install

②、創(chuàng)建send.php、receive.php

send.php 內(nèi)容:

require_once __DIR__ . '/vendor/autoload.php';

use PhpAmqpLib\Connection\AMQPStreamConnection;

use PhpAmqpLib\Message\AMQPMessage;

$connection = new AMQPStreamConnection('localhost', 5672, 'guest', 'guest');

$channel = $connection->channel();

$channel->queue_declare('hello', false, false, false, false);

$msg = new AMQPMessage('Hello World!');

$channel->basic_publish($msg, '', 'hello');

echo " [x] Sent 'Hello World!'\n";

$channel->close();

$connection->close();

?>

receive.php 內(nèi)容:

require_once __DIR__ . '/vendor/autoload.php';

use PhpAmqpLib\Connection\AMQPStreamConnection;

$connection = new AMQPStreamConnection('localhost', 5672, 'guest', 'guest');

$channel = $connection->channel();

$channel->queue_declare('hello', false, false, false, false);

echo " [*] Waiting for messages. To exit press CTRL+C\n";

$callback = function ($msg) {

echo ' [x] Received ', $msg->body, "\n";

};

$channel->basic_consume('hello', '', false, true, false, false, $callback);

while ($channel->callbacks) {

$channel->wait();

}

$channel->close();

$connection->close();

?>

③、測試

發(fā)送: 接收:

至此安裝成功,接下來就開始繼續(xù)學習rabbitmq的更多用法。

柚子快報激活碼778899分享:php RabbitMQ 安裝

http://yzkb.51969.com/

精彩鏈接

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/18000930.html

發(fā)布評論

您暫未設(shè)置收款碼

請在主題配置——文章設(shè)置里上傳

掃描二維碼手機訪問

文章目錄