我使用命令提示符运行时使用相同的代码。但是当我尝试使用浏览器运行它时,它会抛出错误。
我使用过php-amqplib。我的代码简单地连接到RabbitMQ Queue并将消息发送到队列中。凭据是正确的,因为我能够在命令提示符下运行相同的文件。
注意:iconv_strlen():检测到输入字符串中的非法字符 在 /var/www/html/php-amqplib/vendor/symfony/polyfill-mbstring/Mbstring.php 在第338行
注意:iconv_strlen():检测到输入字符串中的非法字符 在 /var/www/html/php-amqplib/vendor/symfony/polyfill-mbstring/Mbstring.php 在第338行
注意:iconv_strlen():检测到输入字符串中的非法字符 在 /var/www/html/php-amqplib/vendor/symfony/polyfill-mbstring/Mbstring.php 在第338行
致命错误:未捕获PhpAmqpLib \ Exception \ AMQPRuntimeException: 读数据时出错。收到而不是预期的7个字节 /var/www/html/php-amqplib/PhpAmqpLib/Wire/IO/StreamIO.php:242 Stack 跟踪:
0 /var/www/html/php-amqplib/PhpAmqpLib/Wire/AMQPReader.php(149):phpAmqpLib \ Wire \ IO \ StreamIO-> read(7)
1 /var/www/html/php-amqplib/PhpAmqpLib/Wire/AMQPReader.php(106):PhpAmqpLib \ Wire \ AMQPReader-> rawread(7)
2 /var/www/html/php-amqplib/PhpAmqpLib/Connection/AbstractConnection.php(508):
PhpAmqpLib \电线\ AMQPReader->读取(7)
3 /var/www/html/php-amqplib/PhpAmqpLib/Connection/AbstractConnection.php(555):
PhpAmqpLib \连接\ AbstractConnection-> wait_frame(0)
4 /var/www/html/php-amqplib/PhpAmqpLib/Channel/AbstractChannel.php(217):
PhpAmqpLib \ Connection \ AbstractConnection-> wait_channel(0,0)
5 /var/www/html/php-amqplib/PhpAmqpLib/Channel/AbstractChannel.php(328):
PhpAmqpLib \频道\ AbstractChannel-> next_frame(0)
6 /var/www/html/php-amqplib/PhpAmqpLib/Connection/AbstractConnection.php(205):
PhpAmqpLib \ Channel \ AbstractChannel-> w in 第242行/var/www/html/php-amqplib/PhpAmqpLib/Wire/IO/StreamIO.php
答案 0 :(得分:5)
我在运行命令时发现了问题(和解决方案):
php composer.phar install
我收到了这些错误:
Problem 1
- php-amqplib/php-amqplib v2.6.3 requires ext-bcmath * -> the requested PHP extension bcmath is missing from your system.
Problem 2
- php-amqplib/php-amqplib v2.6.3 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
- Installation request for php-amqplib/php-amqplib v2.6.3 -> satisfiable by php-amqplib/php-amqplib[v2.6.3].
我的问题 - 从我的系统中缺少PHP扩展(bcmath,mbstring) - 只需安装它们即可解决:
sudo apt-get install php-bcmath php-mbstring
这些扩展由Rabbit消费者调用的一些代码使用。
答案 1 :(得分:0)
我通过将心跳值从0改为60秒来解决这个问题。