apache2、ubuntu 14.04 无法加载 AMQP 库

apache2、ubuntu 14.04 无法加载 AMQP 库

我正在尝试在 Ubuntu 14.04 上安装 Rabbit MQ 和 php 库 AMQP,但在 apache 启动时收到错误(在 apache 错误日志中)

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20121212/amqp.so' - /usr/lib/php5/20121212/amqp.so: undefined symbol: amqp_error_string2 in Unknown on line 0

并且 AMQP 无法启动。

我遵循了这一点:https://github.com/pdezwart/php-amqp/issues/87

和...

locate librabbitmq.so

返回:

/usr/lib/librabbitmq.so.0
/usr/lib/librabbitmq.so.0.0.0

ls -al librabb* 返回:

/usr/lib/librabbitmq.so.0 -> librabbitmq.so.0.0.0  (root / root)
librabbitmq.so.0.0.0 (root / root)

在 /user/local/lib 中还有:

librabbitmq.so -> /usr/lib/librabbitmq.so.0 (root / root)

所有权限均为 root/root 和 755。

任何帮助,都非常感谢。

谢谢

答案1

通过 pecl 安装 amqp 对我来说不起作用,所以我不得不自己编译 RabbitMQ C AMQP 客户端库和 pecl amqp。

RabbitMQ C AMQP 客户端库可以在以下位置找到https://github.com/alanxz/rabbitmq-c/ 和来自的 Pecl amqphttp://pecl.php.net/package/amqp

以下是可以在 ubuntu 14.04 上执行此操作的命令列表:

#create a directory for sources
mkdir ~/kit
cd ~/kit

#download and install the rabbitmq c amqp lib
wget https://github.com/alanxz/rabbitmq-c/releases/download/v0.5.1/rabbitmq-c-0.5.1.tar.gz
tar -zxvf rabbitmq-c-0.5.1.tar.gz
cd rabbitmq-c-0.5.1/
./configure
make
sudo make install

cd ..

#download and compile the amqp
wget http://pecl.php.net/get/amqp-1.4.0.tgz
tar -zxvf amqp-1.4.0.tgz
cd amqp-1.4.0/
phpize && ./configure --with-amqp && make && sudo make install

#Add amqp extension to php mods-availabile directory
echo "extension=amqp.so" > /etc/php5/mods-available/amqp.ini

#Enabled it in cli
cd /etc/php5/cli/conf.d/
ln -s ../../mods-available/amqp.ini 20-amqp.ini
php -m | grep amqp

#Enabled it in cli
cd /etc/php5/apache2/conf.d/
ln -s ../../mods-available/amqp.ini 20-amqp.ini


#restart Apache and than check phpinfo on web
service apache2 restart

相关内容