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相應的目錄開始吧
【優點】
- 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開發環境配置