摘要:安裝命令環境下必須關閉選項需要修改關閉在下開發可以使用來方便的開發應用,安裝好后再里的選項里共享代碼所在磁盤。為源碼所在路徑為容器內路徑在里執行編譯安裝擴展是按照標準擴展構建的。
環境依賴
僅支持 Linux、FreeBSD、MacOS 三種操作系統
在Windows平臺,可使用CygWin或WSL(Windows Subsystem for Linux)
Linux 內核版本 2.3.32 以上
gcc4.4 以上版本或者clang
4.x版本起需要gcc-4.8或更高版本, 編譯失敗請先嘗試升級gcc
編譯為 libswoole.so 作為 C/C++ 庫時需要使用 cmake-2.4 或更高版本
建議使用 Ubuntu14、CentOS7、MAC10.14.0或更高版本的操作系統PHP版本依賴
Swoole-4.x需要 PHP-7.1.0 或更高版本
不依賴 PHP 的 stream、sockets、pcntl、posix、sysvmsg 等擴展。PHP 只需安裝最基本的擴展即可
ARM平臺(樹莓派Raspberry PI)請使用 1.7.10 或更高版本
使用 GCC 交叉編譯
在編譯 Swoole 時,需要手工修改 Makefile 去掉 -O2 編譯參數
MIPS平臺(OpenWrt路由器)請使用 swoole-1.7.21 或更高版本
使用 GCC 交叉編譯
CygWin環境支持(Windows系統)swoole-1.7.7 增加了對 cygwin 環境的支持,在 Windows 環境下,可以直接使用 cygwin + php 來跑 swoole 程序。
安裝 cygwin,并安裝 gcc、make、autoconf、php 4個包
下載swoole源碼,在 cygwin-shell 中進行 phpize/configure/make/make install
修改 php.ini,加入 swoole.so
cygwin 模式下需要對 PHP 進行簡化,去掉不使用的擴展,避免進程占用內存過大,導致 Fork 操作失敗BashOnWindows
Windows 10 系統增加了 Linux 子系統支持,BashOnWindows 環境下也可以使用 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 環境下必須關閉 daemonize 選項
需要修改 config.h 關閉 HAVE_SIGNALFD
DockerOnWindows在 Windows 下開發可以使用 Hyper-V+Docker 來方便的開發 Swoole 應用,安裝好 Docker 后再 Settings 里的 Shared Droves 選項里共享代碼所在磁盤。然后使用如下命令來快速啟動 Docker 容器。
e:/path/to 為源碼所在路徑
/app 為容器內路徑
在 bash 里執行 cd /app && php server.php
編譯安裝Swoole擴展是按照PHP標準擴展構建的。使用phpize來生成編譯檢測腳本,./configure來做編譯配置檢測,make進行編譯,make install進行安裝。
請下載releases版本的swoole,直接從github主干上拉取最新代碼可能會編譯不過
如無特殊需求, 請務必編譯安裝swoole的最新版本
如果當前用戶不是root,可能沒有PHP安裝目錄的寫權限,安裝時需要sudo或者su
如果是在git分支上直接git pull更新代碼,重新編譯前務必要執行make clean
安裝準備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 //將動態連接庫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對應的文件存在,在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;
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/29714.html
摘要:使用改造應用標簽空格分隔概述介紹是為開發的生產級異步編程框架。然后你可以看到以下信息現在可以通過訪問來進入應用。 使用swoole改造laravel應用 標簽(空格分隔): php 1. 概述 1.1 swoole介紹 Swoole 是為 PHP 開發的生產級異步編程框架。 他是一個純 C 開發的擴展, 他允許 PHP 開發者在 PHP 中寫 高性能,可擴展的并發 TCP, UDP,...
摘要:初識協程執行結果協程與同步模式比較我們一直在說協程適合用于密集場景,在同樣的硬件配置環境下,它會比傳統的同步模式承載更多的訪問量。假設一次查詢為,在傳統同步模式下,當前進程在這的時間里,是不能做其它操作的。同步模式,耗費左右的是。 如果說數組是 PHP 的精髓,數組玩得不6的,根本不能算是會用PHP。那協程對于 Swoole 也是同理,不理解協程去用 Swoole,那就是在瞎用。 首先...
摘要:對于這一問題企業一般多會采用其他技術,比如使用或者其他語言。但是有了之后,由于底層全是用語言實現,其出色的性能深受追捧。由于以前適用場景的局限性比較大,所以會有說重新定義了的說法。到這里的環境已經搭建完成了。 Swoole 是一個 php 的擴展,它的核心目標就是解決 php 在實現一些高訪問 server 服務中可能遇到的一系列問題,這些問題用原生的 php 往往并不能很方便高效的解...
摘要:一閱前熱身為了更加形象的說明同步異步阻塞非阻塞,我們以小明去買奶茶為例。等奶茶做好了,店員喊一聲小明,奶茶好了,然后小明去取奶茶。將響應結果發給相應的連接請求處理完成因為基于,所以每個可以處理無數個連接請求。如此,就輕松的處理了高并發。 一、閱前熱身 為了更加形象的說明同步異步、阻塞非阻塞,我們以小明去買奶茶為例。 1、同步與異步 ①同步與異步的理解 同步與異步的重點在消息通知的方式上...
閱讀 2465·2021-09-29 09:34
閱讀 3301·2021-09-23 11:21
閱讀 2494·2021-09-06 15:00
閱讀 1123·2019-08-30 15:44
閱讀 2024·2019-08-29 17:23
閱讀 2996·2019-08-29 16:44
閱讀 3052·2019-08-29 13:13
閱讀 1932·2019-08-28 18:12