php swoole环境搭建,swoole入门3-swoole开发环境搭建

环境依赖

仅支持 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/hiredis

http2

依赖nghttp2库

mac安装:brew install nghttp2

nginx配置

看个人喜好,可选择不配置

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;

你可能感兴趣的:(php,swoole环境搭建)