环境依赖

  • 仅支持 LinuxFreeBSDMacOS 三种操作系统
  • Windows平台,可使用CygWinWSL(Windows Subsystem for Linux)
  • Linux 内核版本 2.3.32 以上
  • gcc4.4 以上版本或者clang
  • 4.x版本起需要gcc-4.8或更高版本
  • 编译为 libswoole.so 作为 C/C++ 库时需要使用 cmake-2.4 或更高版本

建议使用 Ubuntu14CentOS7 或更高版本的操作系统

PHP版本依赖

  • Swoole-1.x需要 PHP-5.3.10 或更高版本
  • Swoole-2.x需要 PHP-7.0.0 或更高版本
  • 不依赖 PHPstreamsocketspcntlposixsysvmsg 等扩展。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。安装命令

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-zip
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 容器。

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

  • 用户upwm92h4p3

    pecl install swoole downloading swoole-1.7.8.tgz ... Starting to download swoole-1.7.8.tgz (412,906 bytes) ....................................................................................done: 412,906 bytes could not extract the package.xml file from "/build/buildd/php5-5.5.9+dfsg/pear-build-download/swoole-1.7.8.tgz" Download of "pecl/swoole" succeeded, but it is not a valid package archive Error: cannot download "pecl/swoole" Download failed install failed 求帮助

  • Rango-韩天峰

    请使用sudo

  • 用户upwm92h4p3

    谢谢,原因是没有先运行这个 apt-get install libpcre3 libpcre3-dev 我是直接用的root用户

  • 天涯

    我整个swoole.so都编译好了,phpinfo也能打印出swoole相关。测试官方的demo报错 swoole_server找不到类。swoole_client类也找不到。

  • www

    php.ini extension = swoole.so

  • 姜思

    为何只能 cli模式运行,通过web http 请求 不行了

  • 倪鹤翔

    Zend Guard Loader requires Zend Engine API version 220090626. The Zend Engine API version 220121212 which is installed, is newer. Contact Zend Technologies at http://www.zend.com/ for a later version of Zend Guard Loader 我php版本5.5.23版本,既然又提示这个,哎,这个c底层编译问题不少啊

  • Rango-韩天峰

    这个显然是Zend Guard Loader 报错,与swoole无关。

  • dio

    PHP Warning: PHP Startup: Unable to load dynamic library 'c:/wamp/bin/php/php5.3.10/ext/swoole.dll' - %1 \xb2\xbb\xca\xc7\xd3\xd0\xd0\xa7\xb5\xc4 Win32 \xd3\xa6\xd3\xc3\xb3\xcc\xd0\xf2\xa1\xa3\r\n in Unknown on line 0

    我想问一下这个是什么鬼? win7+cygwin编译完的swoole.dll,也放在了php的extension目录下

  • denfils

    windows 下面安装 Makefile:180: recipe for target 'swoole.lo' failed 这个错误是什么意思? 求助

  • 范文剑

    In file included from /opt/swoole-src-swoole-1.7.19-stable/swoole.c:271:0: /usr/include/php5/ext/mysqli/php_mysqli_structs.h:63:23: fatal error: my_global.h: No such file or directory

  • 王志林

    可以安装的啊,只是跟有关

  • Giraffe

    CentOS 5.8 环境下安装成功。可以使用。没有用于生产环境。

  • peng

    我给openwrt编译的时候,提示libtool版本太新,但是给x86平台编译的时候,libtool的2.4.6的版本也是可以用的,不知道这个问题怎么解决

  • 听见你的声音

    ubuntu安装swoole成功了,也添加了swoole.so但是php -m 就是看不到swoole,phpinfo()里可以看到,不知道为什么?

  • 天风无边

    你好,差不多的问题,影响使用吗?ubuntu 14.04

  • Jakwin

    能原生支持windows平台吗?

  • wem

    为什么我用cygwin来安装总是失败呢?都安装了gcc、make、autoconf、php 和pcre-devel,仍然失败

  • 饿狼狼窝

    php -m 使用的 cli, phpinfo 使用的是 php-fpm , 它们加载php.ini不是一个, 可以使用php -i | grep php.ini查看一下Php.ini 的路径, 在里面加上swoole.so 就可以了

  • 高

    php-fpm server 没有配置扩展

  • Hades

    你要看cli模式下加载的是哪个php.ini

  • 李朋飞

    今天在bash on ubuntu on windows 上装了swoole,准备尝试一下

  • 风华尽去

    我也遇到这个问题,不知道是啥没装。

  • 什么时候发布纯Windows版本?

  • 唐建-六艺土鳖开源

    Windows 10系统增加了Linux子系统支持,BashOnWindows环境下也可以使用swoole。安装命令 apt-get install libpcre3 libpcre3-dev php php-dev php-cli php-fpm php-curl php-mysql php-intl php-xmlrpc php-geoip php-mysqlnd php-mcrypt php-memcached php-redis php-tidy php-sqlite php-json php-gmp php-gd php-readline php*-imagick

  • Nixus

    有使用 CentOS 5.1.1 可用的吗?

  • .
    .

    " BashOnWindows 环境下必须关闭 daemonize 选项 " -- 没理解在哪里关...

  • Veitor_424

    心累,公司都是windows开发,想用swoole却用不了。。装虚拟机又要把现有的PHP环境破坏。

  • marhone

    我的是win10, linux子系统是ubuntu16.04, 安装swoole是从github下载的源码编译, 当前release是v1.10.1, 解压后打开config.m4文件,找到含有 HAVE_SIGNALFD 那行, 把它直接删掉

  • 风兮清扬

    希望能放出个 windows PHP的.dll版本.

  • 大浪淘沙

    请教各位大神一个问题:系统:ubuntu16.04, 环境lamp ,php版本7.0 在编译安装执行make&make install时报错: Installing shared extensions: /usr/lib/php/20151012/ cp: cannot create regular file '/usr/lib/php/20151012/#INST@12714#': Permission denied Makefile:88: recipe for target 'install-modules' failed make: *** [install-modules] Error 1,,,请问这是什么情况?

  • Gliiiiiitchy

    实际上bash on windows没法用task workers?

  • 子山

    docker安装swoole2.2.0

    sudo docker run --privileged --restart=always -ti -v /var/www:/var/www -d -p 2221:22 -p 80:80 -p 443:443 -p 9501:9501 -p 9502:9502 -p 9503:9503 -p 9504:9504 -p 9505:9505 -p 9506:9506 --name php_swoole registry.cn-hangzhou.aliyuncs.com/louislivi/swoole /usr/sbin/init