- 环境依赖
- PHP版本依赖
- ARM平台(树莓派Raspberry PI)
- MIPS平台(OpenWrt路由器)
- Cygwin环境支持(Windows系统)
- BashOnWindows
- DockerOnWindows
环境依赖
- 仅支持
Linux、FreeBSD、MacOS三种操作系统 - 在
Windows平台,可使用CygWin或WSL(Windows Subsystem for Linux) Linux内核版本2.3.32以上gcc4.4以上版本或者clang4.x版本起需要gcc-4.8或更高版本, 编译失败请先尝试升级gcc- 编译为
libswoole.so作为C/C++库时需要使用cmake-2.4或更高版本
建议使用Ubuntu14、CentOS7或更高版本的操作系统 低版本系统(如CentOS 6)可以使用RedHat提供的devtools编译,参考文档
PHP版本依赖
Swoole-1.x需要PHP-5.3.10或更高版本Swoole-4.x需要PHP-7.0.0或更高版本- 不依赖
PHP的stream、sockets、pcntl、posix、sysvmsg等扩展。PHP只需安装最基本的扩展即可 - 对
PHP版本支持和PHP官方维护版本保持一致,参考PHP版本支持时间表
PHP-7.3 版本的 pcre.jit 存在 bug,可能会导致进程持续崩溃,请修改 php.ini 设置 pcre.jit=0
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 操作失败 目前提供 Cygwin 二进制包,可以在官网进行下载:https://www.swoole.com/page/download ,如有问题请反馈至开发组邮箱 team@swoole.com
BashOnWindows
Windows 10 系统增加了 Linux 子系统支持,BashOnWindows 环境下也可以使用 swoole。安装命令
apt-get install php7.0 php7.0-curl php7.0-gd php7.0-gmp php7.0-json php7.0-mysql php7.0-opcache php7.0-readline php7.0-sqlite3 php7.0-tidy php7.0-xml php7.0-bcmath php7.0-bz2 php7.0-intl php7.0-mbstring php7.0-mcrypt php7.0-soap php7.0-xsl php7.0-zippecl install swooleecho 'extension=swoole.so' >> /etc/php/7.0/mods-available/swoole.inicd /etc/php/7.0/cli/conf.d/ && ln -s ../../mods-available/swoole.ini 20-swoole.inicd /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 Drives 选项里共享代码所在磁盘。然后使用如下命令来快速启动 Docker 容器。
docker run --rm -t -i --name myapp -p 9501:9501 -v e:/path/to:/app:rw xutongle/php:7.1-fpm /bin/bash
e:/path/to为源码所在路径/app为容器内路径- 在
bash里执行cd /app && php server.php
