环境依赖
最后更新于:2022-04-02 06:15:44
# 环境依赖
[TOC]
* 仅支持`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`或更高版本的操作系统
> 低版本系统(如`CentOS 6`)可以使用`RedHat`提供的`devtools`编译,[参考文档](https://blog.csdn.net/ppdouble/article/details/52894271)
## 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版本支持时间表](http://php.net/supported-versions.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](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-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 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`
';