# Windows建立Docker的Laravel伺服器 >Docker練習以及建立一個不汙染作業系統的開發環境,的簡單紀錄。 ## 環境介紹 - Windows10 - 中華電信H660WM ## Docker安裝 [下載docker的安裝檔案](https://hub.docker.com/editions/community/docker-ce-desktop-windows) ![](https://i.imgur.com/EUIvRGQ.jpg) >確認是否有開啟Hyper-V![](https://i.imgur.com/0ipT03m.jpg) ## 使用Laradock來建置環境 [Laradock](https://laradock.io/) ![https://laradock.io/](https://i.imgur.com/4zLNwst.jpg) 我是使用 所有專案共用一個 Laradock 檔案結構如下 \+ Laradock \+ ProjectA \+ ProjectB ![](https://i.imgur.com/CRfisbC.jpg) ### 下載laradock檔案 >有2種方法 >>直接使用GIT直接拉取 >>1.開啟DOS切換至想要存放的位子(我自己是放在J槽) >>![](https://i.imgur.com/tPzVNNo.jpg) >>git clone https://github.com/laradock/laradock.git Laradock > > >>直接去[https://github.com/laradock/laradock](https://github.com/laradock/laradock) >>![](https://i.imgur.com/9YNKsr2.jpg) >>下載後解壓縮到Laradock內效果會跟GIT拉取一樣 > >完成後的Laradock資料夾 >![](https://i.imgur.com/ELSreLi.jpg) ### Laradock環境設定檔 將laradock資料夾中的複製env-example更名為.env ![](https://i.imgur.com/8PLBa7L.jpg) 或是直接使用指令 > cp env-example .env ### 啟用Laradock的docker container > docker-compose up -d nginx mysql workspace ![](https://i.imgur.com/C9wuS3F.jpg) 第一次啟動時會下載與安裝images會花比較久的時間 完成後會出現 ![](https://i.imgur.com/hXe0jwL.png) 就完成了 ### 設定Laradock 如上方的資料夾結構建立 \+ Laradock \+ webtest 接著打開laradock中的.env ![](https://i.imgur.com/PhJ1IuY.jpg) 將APP_CODE_PATH_HOST修改為../testweb/存檔後離開 ![](https://i.imgur.com/atfipfs.jpg) ### 進入Workspace建立Laravel專案 進入Workspace中 > docker-compose exec workspace bash >會看到![](https://i.imgur.com/Ras5IqF.jpg) >登入後預設的工作目錄是在/var/www底下,而裡面的內容就是我們本機/webtest的內容。 建立Laravel專案 >composer create-project --prefer-dist laravel/laravel mylaravel >--prefer-dist 會從Github上下載.zip壓縮包。 [laravel/laravel](https://github.com/laravel/laravel) >mylaravel 建立的專案名稱 >執行後會開始下載,中間如果出現![](https://i.imgur.com/a98eZFX.jpg) >請到`https://github.com/settings/tokens`建立一個token(不用做任何設定直接到最下面產生Token)![](https://i.imgur.com/UXVsKHQ.jpg) >會得到一組token把它複製起來直接在workspace上右鍵貼上(直接右鍵就會貼上了 他不會顯示)![](https://i.imgur.com/OqmuHeP.jpg) >執行完後再等一下就完成了 >![](https://i.imgur.com/Eh3gZ58.jpg) >此時webtest終究會出現剛剛的專案了![](https://i.imgur.com/sFnOEi7.jpg) >輸入Exit離開回到DOS ### 建立Site 將新建的專案設定成一個 Nginx 的虛擬站台。使用Laradock 提供的 Nginx 站台樣板進行設定。 >開啟資料夾 laradock\nginx\sites >複製laravel.conf.example更名為ecommerce.conf >修改root是路徑 >修改server_name是站台的網址 (我是想要直接建立一個可以外部瀏覽的環境就直接使用實體IP) >![](https://i.imgur.com/kvLejDZ.jpg) >完成修改後儲存須重啟容器(因剛剛有修改設定) >>docker-compose down //Stop + Remove >>docker-compose up -d nginx mysql workspace //直接使用up會自動幫你build ![](https://i.imgur.com/X60axbx.jpg) ### 網路設定 >在此階段如上一步使用server_name的是網址(ex:webtest.com),只要在windows設定hosts file >>C:\Windows\System32\drivers\etc 中的hosts文件加入`127.0.0.1 webtest.com` >>就可以在瀏覽器網址列上輸入webtest.com就會看到了![](https://i.imgur.com/jOxLUhe.png) 但我想要讓外部的使用者也可以連線到WebServer所以還需要再多做中華電信H660WM的設定,在瀏覽器中 ![](https://i.imgur.com/9Mz7jhk.png) 輸入網址192.168.1.1會看到登入介面中華預設 >帳號:cht >密碼:60wm+MAC後4位(ex:60wm000e MAC是0A-00-27-00-00-0E)都輸入小寫 登入後就會看到設備的資訊![](https://i.imgur.com/xZMbYBK.jpg) 點選左邊的防火牆設定-NAT ![](https://i.imgur.com/euuq4qg.jpg) 將NAT Loopback開啟 >Original SIP Add/Mask這邊填寫你伺服器的IP和遮罩, >假設IP是192.168.1.100 MASK是255.255.255.0,那格子就填寫192.168.1.100/24 >Original DIP Address這邊填寫WAN1 PPPOE取得的IP >Original Dst Port就填寫你伺服器開的PORT >Translated DIP Address填寫你伺服器的IP >Translated Port填Original Dst Port的資料 ![](https://i.imgur.com/1o8cBo6.jpg) >套用後進入端口轉發設定轉發到將808轉發80port >![](https://i.imgur.com/VQ03JIX.jpg) >套用後就完成了 ### 輸入你設定的實體IP:808後即可看到結果 ![](https://i.imgur.com/3IRWnlt.jpg) 參考資料 --- - [Docker建置laravel環境](https://medium.com/@ms0680146/docker%E5%BB%BA%E7%BD%AElaravel%E7%92%B0%E5%A2%83-windows-636460c2ecb7) - [laradock文件](https://laradock.io/introduction/) - [中華電信的H660W的DDNS搭配Port Forwarding設定](https://www.mobile01.com/topicdetail.php?f=110&t=5442356&p=2) - [解决使用 Composer 的时候提示输入Token](https://getyii.com/topic/32) ###### tags: `Docker` `laradock` `H660WM`