作為一款重新定義PHP的開源架構,Swoole讓PHP可以應用於更多的情境。
對於一位PHP程式員來說,通過Swoole可以瞭解以往不曾接觸過的編程方法。
眾所周知,搭建開發環境其實是很麻煩的一件事,經常會遇到各種各樣的問題。所以我用Docker搭建了一套Swoole環境,按照這篇教程,就可以非常簡單得開始Swoole之旅。
首先是安裝Docker,官網有詳細的安裝步驟: https://docs.docker.com/mac/step_one/
Mac使用者參考上述網址即可。對於其他系統的使用者來說,官網都有相應的方法。這裡不再細說。
以下的步驟也都是基於Mac系統來進行。
安裝完成後,在Launchpad裡會看到Docker Quickstart Terminal這個名字的應用,點擊後,會開啟系統預設的終端,然後等一會兒,就可以看到鯨魚的畫像出現了。
要注意終端裡的一條提示資訊:
docker is configured to use the default machine with IP 192.168.99.100
記住這個IP地址,我們訪問容器時會用到。
為了驗證Docker是否運行起來,在開啟的終端裡輸入下面的命令:
docker images
如果Docker沒有正確運行,會看到下面的錯誤提示:
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
確保Docker正確運行後,輸入下面的命令,擷取swoole鏡像:
docker pull koolob/swoole-docker
這個鏡像是基於php:5.6-cli的鏡像構建,包括swoole的最新版本1.8.4,預設使用了下面的編譯參數進行編譯:
--enable-async-redis --enable-async-httpclient --enable-openssl --enable-jemalloc
swoole的編譯參數說明:http://wiki.swoole.com/wiki/page/437.html
這個鏡像的Dockerfile是開源的,有需要搭建自訂環境的朋友可以參考我的Dockerfile檔案進行修改:Github
下載鏡像後,就可以運行一個容器,進入Swoole環境了。
輸入命令:
docker run -t -i koolob/swoole-docker /bin/bash
之後會進入到容器內。
再次輸入:
php -r 'echo swoole_version()."\n";'
可以看到輸出了1.8.4,也就是當前swoole的版本號碼。
這樣我們就有了一個通過Docker構建的Swoole環境。
接下來,我們可以把代碼和環境構建成一個鏡像來運行。依然有個樣本可以參考:
git clone https://github.com/koolob/swoole-docker-example.git
下載下來後,切換到目錄中,直接執行
./build.sh
然後瀏覽器訪問地址:http://192.168.99.100:8080/ 就可以看到結果了,同時在終端中也能看到程式輸出的內容。在終端裡使用Ctrl+C就可以退出容器。
192.168.99.100這個IP就是上文提到的終端提示的IP
我們啟動並執行是一個非常簡單的HTTP服務,代碼位於src檔案夾下:
$serv = new swoole_http_server("0.0.0.0", 8080);$serv->on('Request', function($request, $response) { var_dump($request->get); var_dump($request->post); var_dump($request->cookie); var_dump($request->files); var_dump($request->header); var_dump($request->server); $response->cookie("User", "Swoole"); $response->header("X-Server", "Swoole"); $response->end("Hello Swoole!
");});$serv->start();
build.sh指令碼做的事就是構建鏡像,並啟動一個容器。
新構建的鏡像也很簡單,基於koolob/swoole-docker,開放8080連接埠,將src目錄中的內容複寫到鏡像內,並在容器運行時,執行php代碼。
之後要做的事就是修改src中的代碼,執行build.sh指令碼,然後測試。
至此,我們的Swoole開發環境搭建完畢。