Windows 下 Swoole开发环境配置
一直停留在windows,入了 jetbrains 的全家桶。准备入门 Swoole,不可能每做一点修改就
git push运行一下。因此要在windows上配置swoole运行环境。对比了几种 windows 下 linux环境 的搭建
BashOnWindows
需要 windows 10
安装很简单,参考bash on windows 安装教程(win 10)
可能由于windows升级,我的版本在 CMD 输入 bash 后只提示去应用商店下载,没有 [Y/N] 选项。打开应用商店搜索下载 UBUNTU 就行了。
# 先升级apt-get ,不然很多包会找不到
sudo apt-get update
sudo apt-get install php7.0 php7.0-curl #... 所有其他你需要的扩展
# pecl 需要 php-pear
sudo apt install php-pear
# 可能提示 phpize 错误,需要 php-dev
pecl install swoole
# 按照提示安装 php7.0-dev
sudo apt install php7.0-dev
# 安装swoole
pecl install swoole
# 权限不够,直接 vi 新建
# 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
升级apt-get,保证可以找到最新的包
/mnt/ 挂载了所有盘符,直接cd相应的目录开始吧
**官方说 BashOnWindows 需要关闭 daemonize **
BashOnWindows 环境下必须关闭 daemonize 选项
需要修改 config.h 关闭 HAVE_SIGNALFD
# install 改为 download,因为需要手动修改一个配置
pecl download swoole
# 解压 cd 进 swoole 目录
vi config.M4
#找到 HAVE_SIGNALFD 那一行,删掉
# 编译
phpize
./configure
make
make install
【优点】
- windows10 自带,安装无脑
- 完整的 ubuntu 环境,自由度较高
【缺点】
- 权限问题,要不停的
sudo(好吧可能是我被root惯坏了) - 怎么开多个shell窗口?
Docker on Windows
Docker 是什么就不赘述了,不管是开发调试还是线上运行都是很赞的沙盒容器。
我是windows10系统,直接选了官方的 DockerForWindows CE
其他windows版本的 docker 没有研究。前后在两台windows上安装部署docker+swoole镜像,一台部署成功后重启就挂掉了。一台部署成功运行ok。这里讲一下挂掉那台的历程:
- 安装DockerForWindows,提示开启 Hyper-V 服务,重启。成功运行Docker,下载 swoole 镜像。运行镜像:
docker run --rm -t -i --name myapp -p 9501:9501 -v [windows路径如 e/workspace/swoole]:[挂载路径如/data]:rw [swoole image] /bin/bash
各种参数可以docker --help查到。这条命令的作用是开始在 docker 运行你的镜像,并且绑定端口,挂载本地文件夹到容器中。
然后问题来了
firewall is blocking file Sharing between Windows and the containers.
一看到防火墙就想当然的去摆弄防火墙设置,搜了一大堆解决方法。
- 研究防火墙规则(歧途1)
- 研究445端口(歧途2,导致后续一堆蝴蝶效应)
- 重新安装网络连接的
windows文件夹和打印机共享协议。(歧途3,实际上已经摸到边了)
【解决过程】
Docker 的图标有个 setting ,里面可以设置共享的盘符。
通过这么多的百度大致了解docker和windows是通过虚拟网卡(Hyper-V)来建立网络连接。
那么要在Docker容器中挂载windows文件,需要通过 网络文件夹共享。这也是为什么那么多的解决方式是告诉我重新安装 windows文件夹和打印机共享协议就解决了问题。
所以问题原因最终是因为,
我要共享的盘没开启网络共享
点开文件夹属性 -> 共享。docker -> setting -> 勾选要共享的盘。然后运行容器,well done!
【万劫不复】
因为前面尝试各种解决方法的时候,【修改过注册表】,【删除了Hyper-V虚拟网卡】,机器重启之后Docker 无法启动,查看日志大概是在NAT-switch的时候创建失败。查看Hyper-V管理器,【虚拟交换机管理】已经无法打开。多次卸载重装无果,最终放弃了DockerForWindows.
后来在家自己的windows10安装,一切顺利。
【优点】
- docker容器镜像资源很多,一键安装,无脑部署
- 顺便熟悉下docker的使用
- 没有权限问题
【缺点】
- 每次启动镜像要输一堆命令,共享盘符被坑了
非window10, cygwin,其他docker on windows
cygwin这里不做介绍了。
其他的docker on windows 没尝试过。
Windows 下 Swoole开发环境配置的更多相关文章
- 【Objective-C】Windows下Objective-C开发环境配置
[Objective-C]Windows下Objective-C开发环境配置 ftp://ftpmain.gnustep.org/pub/gnustep/binaries/windows/ 最近打 ...
- windows下spark开发环境配置
http://www.cnblogs.com/davidwang456/p/5032766.html windows下spark开发环境配置 --本篇随笔由同事葛同学提供. windows下spark ...
- Metabase在Windows下的开发环境配置
Metabase在Windows下的开发环境配置 */--> pre.src {background-color: #292b2e; color: #b2b2b2;} Metabase在Wind ...
- [傻瓜版] Redis在Windows下的开发环境配置步骤
redis默认运行在unix体系下,windows无法直接运行官方版.以下是几种解决方案, 一)Windows移植版.启动速度飞快,优先推荐使用. a) 2.6.12 是稳定版,我用64位版来做开发环 ...
- Android NDK学习(2)Windows下NDK开发环境配置
转:http://www.cnblogs.com/fww330666557/archive/2012/12/14/2817386.html 一.配置好Android开发环境 二.下载安装安卓NDK ...
- iDempiere 使用指南 windows下eclipse开发环境配置及打包下载
Created by 蓝色布鲁斯,QQ32876341,blog http://www.cnblogs.com/zzyan/ iDempiere官方中文wiki主页 http://wiki.idemp ...
- Windows下Android开发环境配置
最新更新,见我新博客http://www.hrwhisper.me/java-android-environment-genymotion-emulator/ 更新了使用使用genymotion神级模 ...
- Windows下GO开发环境配置
GO下载 https://golang.org/dl/ IDE-goland下载 http://www.jetbrains.com/go/ 本次安装go1.9.3 ...
- windows下前端开发环境配置
nvm安装 多媒体布局 前端自动化构建工具,gulp nvm管理node的版本,npm是node的包管理工具 下载nvm安装包 https://github.com/coreybutler/nvm-w ...
随机推荐
- [C++] 动态规划之矩阵连乘、最长公共子序列、最大子段和、最长单调递增子序列、0-1背包
一.动态规划的基本思想 动态规划算法通常用于求解具有某种最优性质的问题.在这类问题中,可能会有许多可行解.每一个解都对应于一个值,我们希望找到具有最优值的解. 将待求解问题分解成若干个子问题,先求解子 ...
- Day2-VIM(一):移动
基础 字符移动 k 上移 k h 左移 h l l 右移 j j 下移 你也可以使用键盘上的方向键来移动,但这么做h j k l的存在就失去了意义 之所以使用h j k l来控制方向,其主要目的是让你 ...
- QString 乱谈(1)
一个月前尝试写了一篇关于QStringLiteral,存盘时MoinMoin罢工了.吸取一点经验,还是写成短篇吧 可是,可是,QString不就是简简单单一个字符串么?能有什么可谈的.真的么... ( ...
- 机器学习:使用scikit-learn库中的网格搜索调参
一.scikit-learn库中的网格搜索调参 1)网格搜索的目的: 找到最佳分类器及其参数: 2)网格搜索的步骤: 得到原始数据 切分原始数据 创建/调用机器学习算法对象 调用并实例化scikit- ...
- java代码排序问题
总结: package com.ja; import java.util.Arrays; import java.util.Collections; public class mili { publi ...
- python window使用paramiko简单监控数据指标数据采集
#!/usr/bin/python #-*- coding: utf-8 -*- #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ...
- JVM中存储类信息的三个表格
摘自:<Java Performance>第三章 Internal Class Loading Data The HotSpot VM maintains three hash table ...
- 使用 Github 和 Hexo 快速搭建个人博客
导语 个人兴趣爱好特别广泛,喜欢捣鼓各种小东西自娱自乐.虽然都没能深入研究,但是自己的“孩子”还是很想拿出来遛遛得人一句夸奖的.所以刚学 Markdown 的时候很是有想过要搭个个人博客来玩玩,一来激 ...
- javascript——对象的概念——函数 3 (使用技巧)
1.回调函数:将函数A传给函数B,由函数B来执行A,则称A为回调函数. 例1: 例2 function addone(a){;}; //定义一个回调函数 function mulitiply(a,b, ...
- 问题:C#Chart控件自动添加Series;结果:图形组件Chart动态添加Series
Chart1.DataSource = dtb; string[] strcolor = new string[20]; strcolor[0] = "220, 224, 64, 10&qu ...
