是否可以在Windows计算机中安装Swoole?

时间:2018-07-01 11:37:05

标签: php windows swoole

我已经用php7安装了Laravel 5,并且在我的 Windows 机器上可以正常工作。 最近,我知道 SWOOLE 对于PHP开发人员来说是一个很有前途的工具!

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

是否可以在Windows计算机上安装SWOOLE?

谢谢。

4 个答案:

答案 0 :(得分:3)

不是直接使用,而是使用Docker和WSL(Linux的Windows子系统)。

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

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

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

更新/安装WSL 2 Linux内核(https://docs.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. 添加您的woo源代码

例如(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();
?>
  1. 使用PowerShell启动woo http服务器
docker run --rm -p 9501:9501 -v D:/docker/:/app -w /app swoole-php server.php

答案 1 :(得分:2)

我认为您正在寻找Cygwin和教程how to use it with Swoole

更新2020年6月

您还可以使用Microsoft Windows Subsystem for Linux (WSL)

答案 2 :(得分:1)

否。目前仅Linux和Mac支持swoole。

答案 3 :(得分:1)

目前,只有Linux和Mac支持swool。但是请使用 Cygwin

follow this link