У меня есть простой код PHP, который отправляет сообщение в очередь RabbitMQ, когда я выполняю его прямо из консоли (#php script.php), сообщение публикуется правильно, но когда я пытаюсь открыть тот же сценарий, используя мой браузер (http://localhost/script.php) сообщение не отправлено. Все предыдущие строки выполняются, но страница застряла в строке
$connection = new AMQPConnection('$ipaddress', 5672, '$user', '$password');
Есть идеи, почему это происходит?
КОД: script.php
<?php
include_once('rabbitmq_function.php');
$result = rabbitmq_send("test");
print_r($result);
КОД: rabbitmq_function.php
<?php
require_once '/usr/share/php/PhpAmqpLib/autoload.php';
use PhpAmqpLib\Connection\AMQPStreamConnection;
use PhpAmqpLib\Connection\AMQPConnection;
use PhpAmqpLib\Message\AMQPMessage;
function rabbitmq_send($data)
{
print_r("Before AMQP Connection");
$connection = new AMQPConnection('10.0.0.8', 5672, 'guest', 'guest');
print_r("After AMQP Connection");
$channel = $connection->channel();
$channel->queue_declare('task_queue', false, true, false, false);
$msg = new AMQPMessage(
$data,
array('delivery_mode' => AMQPMessage::DELIVERY_MODE_PERSISTENT)
);
$channel->basic_publish($msg, '', 'task_queue');
$channel->close();
$connection->close();
return true;
}
Из CLI: я получаю два сообщения отладки (До и После) и возвращаемое значение «1». А также я вижу новое сообщение в руководстве RabbitMQ.
Из браузера: я получаю только распечатанное сообщение «Перед соединением AMQP», но в очереди нет новых сообщений