在Windows机器上安装Swoole是否可行?

7

我已经在我的Windows机器上成功安装了使用php7的Laravel 5。

最近我知道了SWOOLE是PHP开发人员的一款有前途的工具!

不幸的是,我没有找到任何适用于Windows的SWOOLE安装程序。

如果可能,在Windows机器上安装SWOOLE有什么方法吗?

先感谢您的帮助。


2
不支持该功能,仅适用于Linux操作系统。 - Salman Zafar
1
@SalmanZafar 如果这是一个答案,请不要评论,只需添加一个新答案。 - fgamess
4个回答

5

不能直接实现,但可以使用Docker和WSL(Windows Subsystem for Linux)。

  1. 安装Docker (https://www.docker.com/products/docker-desktop)
  2. 设置WSL

以管理员身份打开PowerShell并运行:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

更新/安装WSL 2 Linux内核 (https://learn.microsoft.com/en-us/windows/wsl/wsl2-kernel)

  1. 在Docker(常规)中启用“启用基于实验性WSL 2的引擎”
  2. 构建Docker容器

重要提示!不要使用带有空格的路径,例如:

  • C:\Users\ {FIRSTNAME}[SPACEBAR]{LASTNAME}\Desktop\docker)

创建一个文件夹(D:\docker),并使用编辑器创建一个Dockerfile文件(D:\docker\Dockerfile)

FROM php:7.4.2-cli

RUN apt-get update && apt-get install vim -y && \
    apt-get install openssl -y && \
    apt-get install libssl-dev -y && \
    apt-get install wget -y && \
    apt-get install git -y && \
    apt-get install procps -y && \
    apt-get install htop -y

RUN cd /tmp && git clone https://github.com/swoole/swoole-src.git && \
    cd swoole-src && \
    git checkout v4.4.15 && \
    phpize  && \
    ./configure  --enable-openssl && \
    make && make install

RUN touch /usr/local/etc/php/conf.d/swoole.ini && \
    echo 'extension=swoole.so' > /usr/local/etc/php/conf.d/swoole.ini

RUN wget -O /usr/local/bin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v1.2.2/dumb-init_1.2.2_amd64
RUN chmod +x /usr/local/bin/dumb-init

RUN apt-get autoremove -y && rm -rf /var/lib/apt/lists/*

ENTRYPOINT ["/usr/local/bin/dumb-init", "--", "php"]

打开 PowerShell ,导航至你的文件夹(D:\docker),以构建 DockerImage。

docker build -f ./Dockerfile -t swoole-php .
  1. 将您的Swoole源代码添加

例如(D:\docker\server.php)。

<?php
$http = new Swoole\HTTP\Server("0.0.0.0", 9501);

$http->on('start', function ($server) {
    echo "Swoole http server is started at http://127.0.0.1:9501\n";
});

$http->on('request', function ($request, $response) {
    $response->header("Content-Type", "text/plain");
    $response->end("Hello World\n");
});

$http->start();
?>

使用PowerShell启动您的Swoole HTTP服务器
docker run --rm -p 9501:9501 -v D:/docker/:/app -w /app swoole-php server.php

4

3

目前,Swoole仅支持Linux和Mac操作系统。


1
在Windows子系统上Linux怎么样? - Attila Szeremi
1
@AttilaSzeremi 或许这个链接可以帮到你。http://www.codeblogbt.com/archives/152301 - Salman Zafar

1

目前,swoole仅支持Linux和Mac系统,但可以使用Cygwin

点击此链接进行跟进。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接