`php-amqp` 是 PHP 面向 RabbitMQ 的官方擴充套件,底層依賴 **librabbitmq** (C 語言客戶端庫) 進行 AMQP 協定通訊。
| 元件 | 建議版本 | 下載來源 |
|---|---|---|
| librabbitmq | 0.5.2 | https://github.com/alanxz/rabbitmq-c/releases |
| php-amqp | 1.4.0 | https://pecl.php.net/package/amqp |
版本不匹配會導致編譯失敗或執行時段錯誤,請嚴格對應。
# 1. 解壓 tar -xzvf rabbitmq-c-0.5.2.tar.gz cd rabbitmq-c-0.5.2 # 2. 生成 configure (若無) autoreconf -i # 3. 配置安裝路徑 (建議獨立目錄) ./configure --prefix=/usr/local/librabbitmq/0.5.2/ # 4. 編譯安裝 make && make install
# 1. 解壓 tar -xzvf amqp-1.4.0.tgz cd amqp-1.4.0 # 2. phpize (需對應目標 PHP 版本) /usr/local/php/bin/phpize # 3. 配置 (指定 php-config 與 librabbitmq 路徑) ./configure \ --with-php-config=/usr/local/php/bin/php-config \ --with-amqp \ --with-librabbitmq-dir=/usr/local/librabbitmq/0.5.2/ # 4. 編譯安裝 make && make install
# 1. 修改 php.ini echo "extension=amqp.so" >> /usr/local/php/etc/php.ini # 2. 重啟 PHP-FPM /usr/local/php/sbin/php-fpm restart # 3. 驗證 php -m | grep amqp # 或 php -r "print_r(amqp_version());"
$conn = new AMQPStreamConnection('localhost', 5672, 'guest', 'guest');
$channel = $conn->channel();
$channel->queue_declare('test_queue', false, true, false, false);
$channel->basic_publish(new AMQPMessage('Hello RabbitMQ!'), '', 'test_queue');
echo "Sent\n";
$channel->close();
$conn->close();