1. 程式人生 > >Windows 下 Swoole開發環境配置

Windows 下 Swoole開發環境配置

... jet 圖片 firewall community windows .so 多個 新建

一直停留在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相應的目錄開始吧
【優點】

  • windows10 自帶,安裝無腦
  • 完整的 ubuntu 環境,自由度較高

【缺點】

  • 權限問題,要不停的 sudo(好吧可能是我被root慣壞了)
  • 怎麽開多個shell窗口?

Docker on Windows

Docker 是什麽就不贅述了,不管是開發調試還是線上運行都是很贊的沙盒容器。
我是windows10系統,直接選了官方的 DockerForWindows CE
其他windows版本的 docker 沒有研究。前後在兩臺windows上安裝部署docker+swoole鏡像,一臺部署成功後重啟就掛掉了。一臺部署成功運行ok。這裏講一下掛掉那臺的歷程:

  1. 安裝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開發環境配置