
高效穩定、安全易用、線上實時驗證的全異步高性能網絡庫,通過PHP擴展方式提供。
遵循Apache協議,基於Swoole 1.8.5版本分支重構研發。
在此特別鳴謝Swoole開發組為PHP開源社區付出的努力和汗水。
Zan做了哪些事兒
- 大量模塊解耦拆分
- 修復大量Bug、邏輯缺陷(內存洩露、釋放邏輯)
- 內置通用連接池
- 支持時間輪算法
- 異步接口支持超時
- 增強Mysql client安全性(預處理、事務)
- Nova協議支持(RPC協議)
- 支持平滑重啟
- 接口單元測試覆蓋率100%
- 實時、全面的API文檔
- ...
編譯安裝步驟
master分支做了較大改動,還在內測階段,不建議上生產環境,如果要求穩定,可以下載release版本
git clone https://github.com/youzan/zan.git
cd zan-extension
phpize
./configure
make
make install
建議安裝配置項
phpize
./configure --enable-openssl
make
make install
Zan編譯安裝常見問題
- 使用async-redis客戶端及依賴sockets擴展默認打開,使用ssl功能默認不打開。
- 若不想使用async-redis客戶端,可在configure時採用選項
--disable-async-redis關閉。 - 使用async-redis客戶端需要安裝hiredis庫,當前默認已提供x86下linux/mac的hiredis庫。若需要支持arm等硬件平台,需要先安裝hiredis庫,然後在config.m4文件中添加
PHP_ADD_LIBRARY(hiredis, 1, ZAN_SHARED_LIBADD)將其編譯進ZAN擴展。 - 若想使用ssl功能,可在configure時採用選項
--enable-openssl開啟。
- 若執行phpize報xxx/sed: No such file,請重裝php或將/usr/bin/sed拷貝到xxx目錄下。
- 若執行phpize報Cannot find autoconf,請先安裝autoconf工具。
- 若執行configure時報錯libcurl not installed,請重新安轉curl庫,並保證庫與頭文件名稱與路徑正確。
- 如庫名稱與路徑/usr/lib/libcurl.so(通常帶版本號的libxxx.so.xxx會軟連接到libXXX.so供鏈接器識別),對應頭文件路徑則為/usr/include/curl。
- 確認curl庫正確安裝後,請務必重新phpize && configure以保證新的配置生效。
- 若按1)、2)操作後仍然報錯,則可修改config.m4中PHP_CURL的配置路徑為你安裝curl的路徑。
- 若執行configure時報錯enable sockets support, sockets extension installed incorrectly,請確認PHP版本及sockets擴展正確安裝。
- PHP版本需要在5.6以上版本。
- 在PHP的include路徑下應該包含頭文件ext/sockets/php_sockets.h。
- sockets擴展在zan之前加載(php.ini中的引入加載順序),以確保能引用符號表信息。
- 若執行configure時報錯Enable openssl support, require openssl library,請重新安裝openssl庫並保證能鏈接正確。
- 重新安裝openssl庫。
- 添加openssl庫路徑供鏈接器找lib,如將
-L/usr/local/opt/openssl/lib補充到config.m4中的LDFLAGS。 - 添加openssl庫依賴頭文件路徑,如將
-I/usr/local/opt/openssl/include添加到config.m4中的CPPFLAGS。 - 依然需要重新配置,按編譯擴展步驟安裝,見上方。
官方交流渠道
官網:點我進入
Zan 的文檔倉庫地址:zan-doc
在線查看文檔:http://zandoc.zanphp.io ✈
QQ群:115728122
常用鏈接
- 異步網絡模型
- PHP異步編程: 手把手教你實現co與Koa
- 深入理解PHP opcode優化
- Zan-Stats監控工具
捐贈我們
捐贈通道
License
Zan 框架基於Apache2.0 license 進行開源。