前邊咱們介紹過怎麼安裝rabbitmq,可是想用php來調用rabbitmq但是沒那麼簡單了,整整搞了一個下午才搞定.... php
主要是兩個包 linux
1.rabbitmq-c的包 git
2.amqp的包 github
下載 apache
首先是rabbitmq-c-0.4.1.tar.gz包,能夠訪問https://github.com/alanxz/rabbitmq-c去下載最新的 vim
wget https://github.com/alanxz/rabbitmq-c/releases/download/v0.4.1/rabbitmq-c-0.4.1.tar.gz php-fpm
而後下載amqp-1.2.0.tgz,也能夠去下載最新的http://pecl.php.net/package/amqp 測試
wget http://pecl.php.net/get/amqp-1.2.0.tgz ui
安裝 .net
如今開始進行關鍵的操做了,在網上找的方法不少都有問題,這是個人安裝和配置方法,你能夠借鑑一下,可是不能保證每臺機器都可以正確的安裝哦~
先把兩個包全都解壓
tar zxvf rabbitmq-c-0.4.1.tar.gztar zxvf amqp-1.2.0.tgz
兩個是有前後順序的哦~
安裝rabbitmq-c-0.4.1
cd rabbitmq-c-0.4.1./configure --prefix=/usr/local/rabbitmq-c-0.4.1
最後顯示一下內容表示正常
rabbitmq-c build options:Host: x86_64-unknown-linux-gnuVersion: 0.4.1SSL/TLS: opensslTools: yesDocumentation: noExamples: yes
而後進行make和安裝了.
make && make install
若是沒有報錯,那就是安裝成功了,要是有錯誤,請在本文章下邊回覆,咱們一塊兒研究,嘿嘿~~
安裝amqp-1.2.0
cd amqp-1.2.0phpize
執行完phpize命令後你應該看到相似下邊的內容
Configuring for:PHP Api Version: 20100412Zend Module Api No: 20100525Zend Extension Api No: 220100525
要是沒有這個命令的話須要安裝一下
yum install php-devel
要是本身安裝的php的話 可能須要本身查找一下啦~~~
find / -name phpize
以上這兩步是沒有phpize這個命令的才須要執行哦~~~
而後是configure,這個要根據你我的環境本身修改內容,這裏展現的是個人
./configure --with-php-config=/usr/bin/php-config --with-amqp --with-librabbitmq-dir=/usr/local/rabbitmq-c-0.4.1/
PS:這裏解釋一下
--with-php-config=/usr/bin/php-config 這個php-config根據你裝的php而定,要是找不到請用find / -name php-config查找--with-librabbitmq-dir=/usr/local/rabbitmq-c-0.4.1/ 這個是指定你安裝的rabbitmq-c的目錄,我安裝的是/usr/local/rabbitmq-c-0.4.1/由於在安裝rabbitmq-c的 時候我本身指定了安裝目錄了.
而後進行make和安裝了
make && make install
這個應該不會出現什麼問題.
在make install完成後他會提示
Installing shared extensions: /usr/lib64/php/modules/
以上是正常狀況下,要是你本身編譯的php,那麼他會提示你別的路徑,此時你須要找到這個路徑裏邊的amqp.so文件,將他拷貝到/usr/lib64/php/modules/下.
最後安裝完amqp後還不算完,我們還要讓php加載這個擴展,這個挺簡單的,編輯php.ini文件添加一下內容
vim /etc/php.ini[rabbitmq]extension=amqp.so
這個隨便找一個位置就能夠了,以後我們重啓apache或者是php-fpm了
service httpd restartservice php-fpm restart
根據實際狀況選擇以上的命令.
php測試腳本
php測試rabbitmq的php擴展插件腳本
<?php$cnn = new AMQPConnection();$cnn->setHost('127.0.0.1');$cnn->setLogin('guest');$cnn->setPassword('guest');if($cnn->connect()){echo '鏈接成功';}?>
錯誤分析
PS:要是你在執行php測試文件的時候提示你一下信息,你須要看看你的amqp.so是否是在下面提示的文件夾中了,要是沒有那你須要看看你在make install完amqp後他提示的那個路徑,按照我上邊紅色的標識執行操做試試.
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/amqp.so' - /usr/lib64/php/modules/amqp.so: cannot open shared object file: No such file or directory in Unknown on line 0