因为用的是window电脑,安装swoole比较麻烦,所以装了虚拟机centos7,使用docker把swoole环
境跑起来。
1.安装docker
这里就不赘述了,已经有很多教程了
2.找一个docker镜像
我这利用的是cmptech/auto_cmp_php_docker_server
3.安装镜像
-
我是root登录的,家目录是/root,在这里新建文件swoole_server.php,代码就是swoole官网的例子
<?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".json_encode(['hello'=>'nihao'.time()])); }); $http->start();
-
运行命令
docker run -ti -p 9501:9501 -v `pwd`:/root/ -d cmptech/auto_cmp_php_docker_server
然后运行 docker ps ,查看是否运行成功,我这里是一直失败,提示
[root@localhost ~]# docker run -ti -p 9501:9501 -v `pwd`:/root/ -d cmptech/auto_cmp_php_docker_server /usr/bin/docker-current: Error response from daemon: No command specified. See '/usr/bin/docker-current run --help'.
在网上搜了下,发现要在命令后面加上 /bin/bash
[root@localhost ~]# docker run -ti -p 9501:9501 -v `pwd`:/root/ -d cmptech/auto_cmp_php_docker_server /bin/bash 133406c3e1370d33cccb365d0a2b8978d872f8271b24f14dc1d7fab626fe7867
这样就成功了,容器已经跑起来了
-
进入容器,运行命令
docker attach ID
,这个ID就是容器的ID,可以用命令docker ps
查看容器ID[root@localhost ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 133406c3e137 cmptech/auto_cmp_php_docker_server "/bin/bash" 2 minutes ago Up 2 minutes 0.0.0.0:9501->9501/tcp agitated_meitner [root@localhost ~]# docker attach 133 bash-4.3#
这样就已经进入容器了
-
运行
php7 /root/swoole_server.php
如果提示没有权限,执行setenforce 0
临时关闭selinuxbash-4.3# php7 /root/test_swoole.php Swoole http server is started at http://127.0.0.1:9501
在另一个窗口执行命令
curl http://127.0.0.1:9501
,会看到返回hello world,swoole安装成功了
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。