1. 程式人生 > >rabbitMQ php實踐第一步,安裝與其中的坑

rabbitMQ php實踐第一步,安裝與其中的坑

摘要:經過了兩天的rabbitMQ的理論學習,決定開始實踐。本想著一箇中間件的安裝應該挺簡單的,沒想到也是大坑跌出,最終把經驗記錄一下 一、安裝rabbitMQ rabbitMQ(以下全部簡稱為rmq)是由erlang編寫的,在安裝rmq之前應該還要安裝erlang的環境。不過在mac上由於homebrew的存在就是這一切變得很簡單: $ brew update $ brew install rabbitmq 安裝完畢後就在 /usr/local/Cellar/rabbitmq/3.5.3/ 路徑下了, {PATH}/sbin/rabbitmq-server便是服務啟動程式了 二、安裝rabbitMQ-c 這是第一個坑,php使用amqp與rmq進行通訊,php擴充套件是C來寫的,而這個rabbitMQ-c就是一個c與rmq通訊庫,必須要安裝!下面是安裝命令以及資源地址:
$ git clone git://github.com/alanxz/rabbitmq-c.git $ mkdir build  && cd build $ cmake -DCMAKE_INSTALL_PREFIX=/usr/local .. $ cmake --build . --target install 安裝可以用cmake也可以用原始碼包來安裝,這個隨意。接下來就是一個巨坑了,花費了博主兩天時間才搞定。。。真是一口老血: # ./librabbitmq/amqp_openssl_hostname_validation.h:34:10: fatal error: 'openssl/x509v3.h' file not found
#include <openssl/x509v3.h> rmq依賴ssl進行通訊,但是make時找不到檔案。試了7-8種方案,baidu...google...stackoverflow,包括換資源包、從新安裝openssl、換cmake進行安裝等,最終問題根源與解決方案在下面: TA把mac出廠的openssl嚴格的保護了起來,homebrew安裝的openssl在編譯時根本沒派上用場,不想動原來的東西,又需要讓新的openssl派上用場,這裡需要用到link了$ brew link openssl # Warning: openssl is keg-only and must be linked with --force
# Note that doing so can interfere with building software. $ brew link openssl —force # inking /usr/local/Cellar/openssl/1.0.2e_1... 1556 symlinks created 成功了,在回去安裝一下rmq-c,可以編譯過了!!! 三、安裝php amqp擴充套件 常規的解壓縮,phpize,configure ,安裝,把.so檔案加入php.ini配置,重啟,OK! 附帶config引數: –with-php-config={PATH}/php-config –with-amqp 四、使用composer安裝client lib {
    "require": {
        "php-amqplib/php-amqplib"">=2.6.1"
    }
} 接下來就是最驚心動魄的,結合理論來實踐了! 總結: 以前碰到問題解決都是寫在evernote內給自己使用的,現在放到部落格上會多寫一些心得以供分享吧。 無論是寫程式本身、元件、系統都會碰到很多問題。有些疑難雜症在面前擋著,感覺就像進入了一道迷宮,眼前有好幾個可能可行的解決方案,不知道哪個才能解決問題,而汪汪每一個解決方案未必是一執行就能知道是否有效的,下面也許是更多新的分叉路,讓問題變得撲朔迷離。這是沒有辦法的事,但一定把問題真的搞清楚,吸收變成自己的經驗,即使當下很忙之後也要抽空去整理歸納,這樣才能把越來越多而疑難雜症變成小問題。