一匀泊、前言
最近由于工作需要优训,將應用里的部分功能需要推送系統(tǒng),發(fā)現(xiàn)PHP的一個擴展插件swoole各聘。由于經驗不足型宙,安裝遇到了不少的坑,決定記錄下來伦吠。
PHP的異步妆兑、并行、高性能網絡通信引擎毛仪,使用純C語言編寫搁嗓,提供了PHP語言的異步多線程服務器,異步TCP/UDP網絡客戶端箱靴,異步MySQL腺逛,異步Redis,數(shù)據庫連接池衡怀,AsyncTask棍矛,消息隊列,毫秒定時器抛杨,異步文件讀寫够委,異步DNS查詢。 Swoole內置了Http/WebSocket服務器端/客戶端怖现、Http2.0服務器端/客戶端茁帽。
Swoole底層內置了異步非阻塞玉罐、多線程的網絡IO服務器。PHP程序員僅需處理事件回調即可潘拨,無需關心底層吊输。與Nginx/Tornado/Node.js等全異步的框架不同,Swoole既支持全異步铁追,也支持同步季蚂。
除了異步IO的支持之外,Swoole為PHP多進程的模式設計了多個并發(fā)數(shù)據結構和IPC通信機制琅束,可以大大簡化多進程并發(fā)編程的工作癣蟋。其中包括了并發(fā)原子計數(shù)器,并發(fā)HashTable狰闪,Channel,Lock濒生,進程間通信IPC等豐富的功能特性埋泵。
Swoole從2.0版本開始支持了內置協(xié)程,可以使用完全同步的代碼實現(xiàn)異步程序罪治。PHP代碼無需額外增加任何關鍵詞丽声,底層自動進行協(xié)程調度,實現(xiàn)異步觉义。
Swoole可以廣泛應用于互聯(lián)網雁社、移動通信、企業(yè)軟件晒骇、網絡游戲霉撵、物聯(lián)網、車聯(lián)網洪囤、智能家庭等領域徒坡。 使用PHP+Swoole作為網絡通信框架,可以使企業(yè)IT研發(fā)團隊的效率大大提升瘤缩,更加專注于開發(fā)創(chuàng)新產品喇完。
二、Linux系統(tǒng)安裝swoole
源碼編譯安裝
(1). 下載你要安裝的軟件包剥啤,解壓得到目錄(如:swoole)
下載地址:
(2). 進入軟件包目錄(cd swoole-src-2.0.12)
(3). 執(zhí)行phpsize命令(/usr/local/php/bin/phpize)
注: 此圖為參考圖
(4). 進行配置(./configure --with-php-config=/usr/local/php/bin/php-config #指定安裝在哪個PHP)
注:如果系統(tǒng)缺少phpize命令锦溪,且你使用的是預編譯的RPM包,那么一定要安裝適當?shù)腜HP開發(fā)版本府怯,因為它們一般都包含phpize命令連同合適的頭文件來編譯PHP及其擴展刻诊。
(5). 編譯安裝
make
makeinstall
擴展存放位置:
(7). 修改PHP配置文件(vim /usr/local/php/etc/php.ini)
加入:extension = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/swoole.so";或直接: extension = "swoole.so";(注意前面不要加分號,如果已有extension_dir, 則不需要再寫)
(8). 重啟服務器
pkill-9 nginx 牺丙; /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
用phpinfo()在瀏覽器中查看PHP配置清單坏逢,ok, 到此安裝已完成。
PECL安裝
swoole項目已收錄到PHP官方擴展庫,除了手工下載編譯外是整,還可以通過PHP官方提供的pecl命令肖揣,一鍵下載安裝swoole
(1).一行命令就搞定
pecl install swoole
(2).配置php.ini
extension=swoole.so
注:以上都可以通過php -m或phpinfo()來查看是否成功加載了swoole,如果沒有可能是php.ini的路徑不對浮入,可以使用php -i |grep php.ini來定位到php.ini的絕對路徑龙优。
![image](http://upload-images.jianshu.io/upload_images/2449059-1a46d6a5f9874788.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240
三、win安裝swoole
Windows 下安裝 swoole 具體步驟:
Swoole,原本不支持在Windows下安裝的事秀,所以我們要安裝Cygwin來使用彤断。在安裝Cygwin下遇到了很多坑,百度經驗上的文檔不是很全易迹,所以我把自己安裝Cygwin和Swoole寫下來相當于對自己的沉淀吧宰衙。
首先準備工具:
Cygwin 官方地址:http://www.cygwin.com/
swoole 官方下載地址:https://github.com/swoole/swoole-src/releases
下載Swoole和Cygwin
下載Cygwin,我的是64位的(注意請檢查自己的版本)
1、安裝Cygwin
選 擇安裝的軟件包睹欲,這里需要安裝gcc供炼、php、php開發(fā)工具窘疮、autoconf袋哼、pcre-devel,其它默認闸衫,這里注意的是涛贯,在上方的搜索欄搜索 后,在下邊找到對應的軟件包選中蔚出,點擊下一步按鈕開始安裝弟翘。(注意:下方的截圖是我安裝后界面,點擊的位置一樣骄酗,后邊的圖標可能不一樣哦)
先在搜索gcc
php
pcre-devel
autoconf
最后一直下一步安裝就行
2衅胀、安裝Swoole
解壓swoole的源程序到Cygwin的家目錄,打開Cygwin軟件(注意:要是你的Cygwin也安裝在C盤酥筝,那你得注意了滚躯,安裝swoole的時候有可能報錯,解決辦法是右鍵管理員身份打開Cygwin)
此時的環(huán)境就好似linux的終端嘿歌,而根目錄就是Cygwin的安裝目錄掸掏,在界面輸入命令:cd /home/swoole-src,其中swool-src是解壓的源程序
此時的環(huán)境就好似linux的終端,而根目錄就是Cygwin的安裝目錄宙帝,在界面輸入命令:cd /home/swoole-src,其中swool-src是解壓的源程序
輸入命令:phpize丧凤,生成編譯的配置文件configure
輸入命令:./configure && make && make install
使用命令: php -i | grep php.ini,找到php cli使用的配置文件php.ini的路徑步脓,修改php.ini文件愿待,在文件中添加一行:extension=swoole.so浩螺,然后關閉退出
使用命令:php -m,查看加載的模塊,如果看到swoole仍侥,則擴展添加成功要出,到此環(huán)境搭建成功!
ok农渊,希望可以幫到大家;减濉!T椅伞传于!如果需要這安裝包或者文件,歡迎關注 醉顽,希望對你有所幫助沼溜,一枚程序員。