我正在尝试在 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