摘要:安裝命令環(huán)境下必須關(guān)閉選項需要修改關(guān)閉在下開發(fā)可以使用來方便的開發(fā)應(yīng)用,安裝好后再里的選項里共享代碼所在磁盤。為源碼所在路徑為容器內(nèi)路徑在里執(zhí)行編譯安裝擴(kuò)展是按照標(biāo)準(zhǔn)擴(kuò)展構(gòu)建的。
環(huán)境依賴
僅支持 Linux、FreeBSD、MacOS 三種操作系統(tǒng)
在Windows平臺,可使用CygWin或WSL(Windows Subsystem for Linux)
Linux 內(nèi)核版本 2.3.32 以上
gcc4.4 以上版本或者clang
4.x版本起需要gcc-4.8或更高版本, 編譯失敗請先嘗試升級gcc
編譯為 libswoole.so 作為 C/C++ 庫時需要使用 cmake-2.4 或更高版本
建議使用 Ubuntu14、CentOS7、MAC10.14.0或更高版本的操作系統(tǒng)PHP版本依賴
Swoole-4.x需要 PHP-7.1.0 或更高版本
不依賴 PHP 的 stream、sockets、pcntl、posix、sysvmsg 等擴(kuò)展。PHP 只需安裝最基本的擴(kuò)展即可
ARM平臺(樹莓派Raspberry PI)請使用 1.7.10 或更高版本
使用 GCC 交叉編譯
在編譯 Swoole 時,需要手工修改 Makefile 去掉 -O2 編譯參數(shù)
MIPS平臺(OpenWrt路由器)請使用 swoole-1.7.21 或更高版本
使用 GCC 交叉編譯
CygWin環(huán)境支持(Windows系統(tǒng))swoole-1.7.7 增加了對 cygwin 環(huán)境的支持,在 Windows 環(huán)境下,可以直接使用 cygwin + php 來跑 swoole 程序。
安裝 cygwin,并安裝 gcc、make、autoconf、php 4個包
下載swoole源碼,在 cygwin-shell 中進(jìn)行 phpize/configure/make/make install
修改 php.ini,加入 swoole.so
cygwin 模式下需要對 PHP 進(jìn)行簡化,去掉不使用的擴(kuò)展,避免進(jìn)程占用內(nèi)存過大,導(dǎo)致 Fork 操作失敗BashOnWindows
Windows 10 系統(tǒng)增加了 Linux 子系統(tǒng)支持,BashOnWindows 環(huán)境下也可以使用 swoole。安裝命令
pecl install swoole echo "extension=swoole.so" >> /etc/php/7.0/mods-available/swoole.ini cd /etc/php/7.0/cli/conf.d/ && ln -s ../../mods-available/swoole.ini 20-swoole.ini cd /etc/php/7.0/fpm/conf.d/ && ln -s ../../mods-available/swoole.ini 20-swoole.ini
BashOnWindows 環(huán)境下必須關(guān)閉 daemonize 選項
需要修改 config.h 關(guān)閉 HAVE_SIGNALFD
DockerOnWindows在 Windows 下開發(fā)可以使用 Hyper-V+Docker 來方便的開發(fā) Swoole 應(yīng)用,安裝好 Docker 后再 Settings 里的 Shared Droves 選項里共享代碼所在磁盤。然后使用如下命令來快速啟動 Docker 容器。
e:/path/to 為源碼所在路徑
/app 為容器內(nèi)路徑
在 bash 里執(zhí)行 cd /app && php server.php
編譯安裝Swoole擴(kuò)展是按照PHP標(biāo)準(zhǔn)擴(kuò)展構(gòu)建的。使用phpize來生成編譯檢測腳本,./configure來做編譯配置檢測,make進(jìn)行編譯,make install進(jìn)行安裝。
請下載releases版本的swoole,直接從github主干上拉取最新代碼可能會編譯不過
如無特殊需求, 請務(wù)必編譯安裝swoole的最新版本
如果當(dāng)前用戶不是root,可能沒有PHP安裝目錄的寫權(quán)限,安裝時需要sudo或者su
如果是在git分支上直接git pull更新代碼,重新編譯前務(wù)必要執(zhí)行make clean
安裝準(zhǔn)備PHP 7.0或更高版本[7.2.9]
Swoole 4.x.0以上版本[4.2.8]
redis[4.2.0]
mysqli
pdo
hiredis
sockets
mysqlnd
編譯示例cd swoole sudo phpize (找不到,需要指定php的bin下的phpize) sudo ./configure --with-php-config=php的bin下的php-config --enable-sockets --enable-http2 --enable-async-redis --enable-mysqlnd sudo make && make install配置php.ini
編譯安裝成功后,修改php.ini加入 extension=swoole.so 重啟php-fpm 通過php -m或phpinfo()來查看是否成功加載了swoole.so,如果沒有可能是php.ini的路徑不對,可以使用php --ini來定位到php.ini的絕對路徑。hiredis安裝
github地址:https://github.com/redis/hiredis
cd /deps/hiredis sudo make && make install sudo mkdir /usr/lib/hiredis sudo cp libhiredis.so /usr/lib/hiredis //將動態(tài)連接庫libhiredis.so至/usr/lib/hiredis sudo mkdir /usr/include/hiredis sudo cp hiredis.h /usr/include/hiredishttp2
依賴nghttp2庫 mac安裝:brew install nghttp2nginx配置
看個人喜好,可選擇不配置
server { listen 80; root WORKERDIR/swoole/; server_name swoole-test.cn; location / { #如果$uri對應(yīng)的文件存在,在nginx處理,否則把請求交給swoole處理 try_files $uri @swoole; } location @swoole { proxy_http_version 1.1; proxy_redirect off; proxy_set_header Connection "keep-alive"; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; if (!-e $request_filename) { proxy_pass http://127.0.0.1:9501; } if (!-f $request_filename) { proxy_pass http://127.0.0.1:9501; } proxy_connect_timeout 300s; proxy_send_timeout 300s; proxy_read_timeout 300s; proxy_set_header Host $host; } fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300;
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/29714.html
摘要:使用改造應(yīng)用標(biāo)簽空格分隔概述介紹是為開發(fā)的生產(chǎn)級異步編程框架。然后你可以看到以下信息現(xiàn)在可以通過訪問來進(jìn)入應(yīng)用。 使用swoole改造laravel應(yīng)用 標(biāo)簽(空格分隔): php 1. 概述 1.1 swoole介紹 Swoole 是為 PHP 開發(fā)的生產(chǎn)級異步編程框架。 他是一個純 C 開發(fā)的擴(kuò)展, 他允許 PHP 開發(fā)者在 PHP 中寫 高性能,可擴(kuò)展的并發(fā) TCP, UDP,...
摘要:初識協(xié)程執(zhí)行結(jié)果協(xié)程與同步模式比較我們一直在說協(xié)程適合用于密集場景,在同樣的硬件配置環(huán)境下,它會比傳統(tǒng)的同步模式承載更多的訪問量。假設(shè)一次查詢?yōu)?,在傳統(tǒng)同步模式下,當(dāng)前進(jìn)程在這的時間里,是不能做其它操作的。同步模式,耗費左右的是。 如果說數(shù)組是 PHP 的精髓,數(shù)組玩得不6的,根本不能算是會用PHP。那協(xié)程對于 Swoole 也是同理,不理解協(xié)程去用 Swoole,那就是在瞎用。 首先...
摘要:對于這一問題企業(yè)一般多會采用其他技術(shù),比如使用或者其他語言。但是有了之后,由于底層全是用語言實現(xiàn),其出色的性能深受追捧。由于以前適用場景的局限性比較大,所以會有說重新定義了的說法。到這里的環(huán)境已經(jīng)搭建完成了。 Swoole 是一個 php 的擴(kuò)展,它的核心目標(biāo)就是解決 php 在實現(xiàn)一些高訪問 server 服務(wù)中可能遇到的一系列問題,這些問題用原生的 php 往往并不能很方便高效的解...
摘要:一閱前熱身為了更加形象的說明同步異步阻塞非阻塞,我們以小明去買奶茶為例。等奶茶做好了,店員喊一聲小明,奶茶好了,然后小明去取奶茶。將響應(yīng)結(jié)果發(fā)給相應(yīng)的連接請求處理完成因為基于,所以每個可以處理無數(shù)個連接請求。如此,就輕松的處理了高并發(fā)。 一、閱前熱身 為了更加形象的說明同步異步、阻塞非阻塞,我們以小明去買奶茶為例。 1、同步與異步 ①同步與異步的理解 同步與異步的重點在消息通知的方式上...
閱讀 2492·2021-09-29 09:34
閱讀 3353·2021-09-23 11:21
閱讀 2528·2021-09-06 15:00
閱讀 1148·2019-08-30 15:44
閱讀 2052·2019-08-29 17:23
閱讀 3025·2019-08-29 16:44
閱讀 3082·2019-08-29 13:13
閱讀 1964·2019-08-28 18:12