美文网首页
swoole 的安装

swoole 的安装

作者: 蛐蛐儿阳 | 来源:发表于2020-04-16 00:08 被阅读0次

    ok,上一篇我们安装了php7.4, 虽然在各个机子上安装了千百回了,下面我们开始安装swoole.
    https://wiki.swoole.com/#/
    上面是官网,学什么都是刷文档, 上方文档是必须刷一遍的。这篇文章是记录安装过程,我看下有没有什么坑。
    一,centos7 , php7.4 上面swoole的安装。
    一上来给了三个源码地址,先下载呗

    git clone https://github.com/swoole/swoole-src.git
    

    我选了第一个。

    好慢,发现phpize我没安装。

    yum install php74-php-devel
    

    然后phpize命令并不可用,找不到命令。

    find / -name phpize
    找到命令在
    /opt/remi/php74/root/usr/bin/phpize
    直接执行报错
    Cannot find config.m4.
    Make sure that you run '/opt/remi/php74/root/usr/bin/phpize' in the top level source directory of the module
    找了半天原因
    [https://www.jianshu.com/p/49e9c6b21ec4](https://www.jianshu.com/p/49e9c6b21ec4)
    
    

    就是说
    phpize 命令必须在扩展的文件夹内才可以使用

    先不管,我swoole下载好了, github慢,下次建议用csdn的快些。
    于是按照步骤

    cd swoole-src && \
    phpize && \
    ./configure && \
    make && sudo make install
    

    我进入目录后phpize果然可以执行了, 但不是直接phpize,是

    /opt/remi/php74/root/usr/bin/phpize
    想直接能执行,把文件放/usr/bin/就好了, 建一个软硬链接。我这里先不管。
    ./configure 时报错。
    configure: error: Cannot find php-config. Please use --with-php-config=PATH
    我们的目录
    /opt/remi/php74/root/usr/bin/php-config 我用find命令找到的。
    所以尝试命令
    ./configure --with-php-config=/opt/remi/php74/root/usr/bin/php-config
    

    我想起了我本地gcc版本,我查看下
    gcc -v 是 gcc 版本 4.8.5。将将符合需求,不管这个。

    make && sudo make install
    

    应该安装成功了。
    查看下php.ini位置

    php74 -i|grep php.ini
    

    然后 extension=swoole.so
    php -m 查看,已经有swoole模块了。
    总结来讲还是有坑的哈, 主要是我php安装不一样。
    安装到一半看见其实有命令 pecl install swoole , 就不用编译那么费劲了。
    官方给了一个docker官方镜像,可我根本打不开。我在本地docker, 开个php7.4容器。自己再编译安装下。

    我本地workeman 已经对应了 60001~60005端口。我们swoole就对应
    60010~60015端口吧。
    开容器

    docker run -itd -p 60010:60010 -p 60011:60011 -p 60012:60012 -v  /Users/guanliyang/php:/usr/share/nginx/html --name swoole4-php7.4 77cd7cd803b2
    

    只对应3个接口吧, 只用来学习够用了。进容器

    docker exec -it b7f9b5fc3b64 /bin/bash
    还挺麻烦的,主要啥都没有
    apt-get update
    apt-get install git
    git clone https://gitee.com/swoole/swoole.git
    咱们试试国内这个云地址是快些不,  牛,国内的确实秒速。
     只不过前两条命令要半个多小时,csdn不到10秒。
    gcc -v
    这个gcc version 8.3, 够新,放心。
    还是这几个命令
    cd swoole-src && \
    phpize && \
    ./configure && \
    make && sudo make install
    这里phpize有的,不用担心,make test 不用执行, 刚刚看视频说了,内置了test, 你执行也报一堆黄色错误,没啥用。
    

    我们和上面一样用find命令查找下php.ini位置, 发现没有。

    /usr/local/etc/php
    我们仿照这个copy一个
    cp php.ini-development php.ini
    有了。容器里真完蛋,我下载个vim用了一个小时。慢的要死。
    vim /usr/local/etc/php/php.ini
    添加 extension=swoole.so
    验证下
    php -m 
    哦,有了。
    

    到此我们安装成功了,至少看上去是这样。

    例子代码贴上去,端口改成60010 ,php 执行,不报错,证明安装成功。

    我们容器里安装两个命令。 ps 和 apt-get install telnet

    apt-get install telnet
    apt-get install procps
    ps 命令
    

    经过测试, 我mac宿主机去

    telnet 127.0.0.1 60010
    报错
    Escape character is '^]'.
    直接退出。
    docker里面安装了 telnet, 执行后, php 挂起程序输出
    Client: Connect.
    

    例子算半通,不管继续下面的学习。

    正好我搭建了两套环境, centos中我也测试了一下,结果一样。
    总之证明安装成功了,往下学习。

    思考一下

    例子中ip是127.0.0.1, 我在docker中开php进程, 在宿主机telnet 127.0.0.1 60010,并不通,
    还是docker老问题,mac上宿主机ping不通容器ip。
    我又测试了一下,centos上开php进程,
    mac上  telnet  192.168.1.4 9501  还是不通。
    证明不是这么玩的哈,其实workeman也不通,workeman ip
    写的是 0.0.0.0 就是所有ip都通的,写127.0.0.1 ,就只有在本机上,才telnet。
    至于开放端口,在哪都能通,我们还得往下看。
    

    安装成功,往下看,继续扫描文档。

    相关文章

      网友评论

          本文标题:swoole 的安装

          本文链接:https://www.haomeiwen.com/subject/lgzhvhtx.html