Class 'AMQPConnection' 未找到; AMQP 已安装,但未显示在 phpinfo 中

Class 'AMQPConnection' not found; AMQP is installed, but not shown in phpinfo

我收到错误消息:

Fatal error: Class 'AMQPConnection' not found

我已经按照http://php.net/manual/fa/amqp.installation.php

安装了

和:

extension=amqp.so

已添加到主 php.ini 文件以及虚拟主机自己的文件中。

并且 Apache 已重新启动。

在 phpinfo 上,amqp 出现在 "Additional ini files parsed":

/etc/php5/cgi/conf.d/05-opcache.ini, /etc/php5/cgi/conf.d/10-pdo.ini, /etc/php5/cgi/conf.d/20-curl.ini, /etc/php5/cgi/conf.d/20-gd.ini, /etc/php5/cgi/conf.d/20-imap.ini, /etc/php5/cgi/conf.d/20-json.ini, /etc/php5/cgi/conf.d/20-mysql.ini, /etc/php5/cgi/conf.d/20-mysqli.ini, /etc/php5/cgi/conf.d/20-pdo_mysql.ini, /etc/php5/cgi/conf.d/20-readline.ini, /etc/php5/cgi/conf.d/25-amqp.ini

然而,配置下应该出现的主要 amqp 块不存在。

所以它几乎就像它已安装但未启动/安装正确。

重新启动 apache 时没有出现任何错误。所以我不确定在哪里寻找任何错误/它可能无法启动或加载到 phpinfo 的原因。

解决了。

我清除了所有在 /usr 中可以找到 -iname "rabbit" 的 librabbit 文件。

重新安装了 rabbitmq-c 和 amqp v 1.6 beta 3

然后在 apacge 启动日志中收到错误:

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20100525/amqp.so' - librabbitmq.so.4: cannot open shared object file: No such file or directory in Unknown on line 0

所以它似乎找不到 librabbit.so.4 所以我创建了一个符号链接到它正在寻找的地方,重新启动了 apache,问题就解决了。

谢谢