一直停留在windows,入了 jetbrains 的全家桶。準備入門 Swoole,不可能每作一點修改就
git push
運行一下。所以要在windows
上配置swoole
運行環境。對比了幾種 windows 下 linux環境 的搭建php
須要 windows 10
安裝很簡單,參考bash on windows 安裝教程(win 10)
可能因爲windows升級,個人版本在 CMD 輸入 bash
後只提示去應用商店下載,沒有 [Y/N] 選項。打開應用商店搜索下載 UBUNTU
就好了。linux
# 先升級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
git
BashOnWindows 環境下必須關閉 daemonize 選項
須要修改 config.h 關閉 HAVE_SIGNALFDdocker
# install 改成 download,由於須要手動修改一個配置 pecl download swoole # 解壓 cd 進 swoole 目錄 vi config.M4 #找到 HAVE_SIGNALFD 那一行,刪掉 # 編譯 phpize ./configure make make install
【優勢】shell
【缺點】ubuntu
sudo
(好吧多是我被root慣壞了)Docker 是什麼就不贅述了,不論是開發調試仍是線上運行都是很讚的沙盒容器。
我是windows10系統,直接選了官方的 DockerForWindows CE
其餘windows版本的 docker 沒有研究。先後在兩臺windows上安裝部署docker+swoole鏡像,一臺部署成功後重啓就掛掉了。一臺部署成功運行ok。這裏講一下掛掉那臺的歷程:windows
安裝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 運行你的鏡像,而且綁定端口,掛載本地文件夾到容器中。
而後問題來了bash
firewall is blocking file Sharing between Windows and the containers.
swoole
一看到防火牆就想固然的去擺弄防火牆設置,搜了一大堆解決方法。網絡
windows文件夾和打印機共享協議
。(歧途3,實際上已經摸到邊了)【解決過程】
Docker 的圖標有個 setting
,裏面能夠設置共享的盤符。
經過這麼多的百度大體瞭解docker和windows是經過虛擬網卡(Hyper-V)來創建網絡鏈接。
那麼要在Docker容器中掛載windows文件,須要經過 網絡文件夾共享
。這也是爲何那麼多的解決方式是告訴我從新安裝 windows文件夾和打印機共享
協議就解決了問題。
因此問題緣由最終是由於,
點開文件夾屬性 -> 共享。docker -> setting -> 勾選要共享的盤。而後運行容器,well done!
【萬劫不復】
由於前面嘗試各類解決方法的時候,【修改過註冊表】,【刪除了Hyper-V虛擬網卡】,機器重啓以後Docker 沒法啓動,查看日誌大概是在NAT-switch的時候建立失敗。查看Hyper-V管理器,【虛擬交換機管理】已經沒法打開。屢次卸載重裝無果,最終放棄了DockerForWindows.
後來在家本身的windows10安裝,一切順利。
【優勢】
【缺點】
cygwin這裏不作介紹了。 其餘的docker on windows 沒嘗試過。