首頁>技術>

一、關於 PHP 開發環境的選擇

1、作業系統的選擇

​PHP 執行環境從作業系統上來說肯定是 Linux 最好,在生產環境的伺服器中都是使用 Linux 系統。但是 Linux 日常使用軟體不夠豐富,只能做為開發使用,Linux 中的桌面版比如 Ubuntu、深度 deepin linux 做為軟體開發使用時也有人稱之為免費版的 MacOS,當然,反過來看用 Linux 做開發使用不能安裝一些娛樂軟體特別是遊戲等軟體,可以更好的把注意力集中在開發上,也可以算是優點吧。日常做開發 MacOS 系統軟體豐富,對 PHP 支援友好,可以獲得完整的開發體驗,能很好的兼顧日常應用和軟體開發。Windows 對 PHP 執行環境相容性差,但是佔用率高,學習成本低,軟體豐富,日常辦公等應用方便。

2、整合環境

(1)圖形化管理介面的整合環境,常見有的 XAMPP 、phpStudy 等,推薦使用 寶塔面板(http://www.bt.cn),有Linux 版和 Windows 版,可用於線下,也可用於線上,安裝成功後預設就會安裝一個 apache 服務、埠888,執行 web 管理面板,可以很方便的管理 php 執行環境。

(2)集成了許多PHP相關軟體包的安裝指令碼,線上下載編譯安裝,相對比較可靠,可用於生產環境。例如:OneinStack(https://oneinstack.com/),只能用於Linux 系統,安裝時可自由選擇各個軟體及版本。

3、Laravel Homestead

Vagrant 是一個部署虛擬機器環境的工具,使用Ruby開發,可以建立、配置、管理、自動安裝、打包及分發虛擬機器。常見的虛擬機器有 VirtualBox、VMWare 以及 Micrsoft 的 Hyper-V,但是隻有 VirtualBox 是開源的,並且是免費的。早期 Vagrant 只支援 VirtualBox,後來才加入了 VMWare,Parallels,Hyper-V 的支援,最常見的還是 Vagrant + VirtualBox 組合。Laravel Homestead 就是一個打包好各種 Laravel 開發所需軟體和工具的 Vagrant 盒子,也是 Laravel 推薦的開發環境,具體安裝見官方文件 中文文件 英文文件 。

4、Laradock

Laradock是 laravel + docker的縮寫,最早是為 laravel 打造的,現在已成為廣泛使用的一套基於 Docker 的 PHP 開發環境,提供了多個預先配置和打包的 Docker 映象。

5、Vagrant 還是 Laradock ?

這個選擇其實就是傳統的虛擬機器和 Docker 之間的選擇,虛擬機器是硬體級的,就像一臺獨立的計算機一樣,可以實現完整的 Linux 系統體驗,相比 Docker 而言相容性較好。Docker 是服務容器,就像“沙箱”一樣,是運行於作業系統之上的,系統隔離的,相對於虛擬機器而言 Docker 效能損失較少。

在網路伺服器中使用的那些 VPS、雲主機基本都是虛擬機器,在這些雲主機中是可以部署 Docker 的,因此如果開發環境部署了 Docker ,很容易遷移到生產環境。

二、Win10中 Laradock 安裝前的準備

1、確認軟硬體環境滿足要求:

64位的Windows 10 Pro專業版,Enterprise企業版或Education教育版(1607週年更新,Build 14393或更高版本)在 BIOS 開啟硬體虛擬化:Virtualization is enabledCPU 支援 SLAT 功能4G以上的記憶體

官方文件見:https://docs.docker.com/docker-for-windows/install/

(1)在系統桌面“此電腦”上按右鍵,開啟 屬性,可以確認系統的版本、記憶體大小。要求系統必須是64位的 Win10,不能用家庭版,記憶體4G以上。如下圖所示:

如果是 Win10 以下版本就需要下載 Docker Toolbox工具再安裝,也就不能用 Hyper-V 虛擬機器,而是使用 Oracle VirtualBox 虛擬機器。

(2)開啟 工作管理員 ,切換到 效能 ,檢視 CPU ,如果在 虛擬化 旁顯示 已啟用 ,則說明 CPU 主機板 BIOS 都是支援虛擬化的,並且已經開啟,可以使用。

2、如果虛擬化未啟用,進一步確認是 CPU不支援,還是主機板 BIOS 中未開啟。

(2.1)CPU是否支援 SLAT 功能,一般可用 CPU-Z 軟體檢視指令集,Intel 的 CPU 看有沒有 VT-X 這個指令集,AMD 的 CPU 看有沒有 AMD-V 指令集。或者 根據 CPU 型號,如果是 Intel 的訪問 Intel ARK ,如果是AMD 的 CPU 訪問 desktop CPU page ,檢視自己的 CUP 型號,如果 INTEL 的具有 Intel® VT-x with Extended Page Tables (EPT) 功能,AMD的具有 AMD Virtualization Technology 功能,說明此CPU是具備 SLAT 虛擬化技術的。

(2.2)進入 BIOS 檢視是否有 Virtualization Technology(VT) 虛擬化技術的相關選項,不同的主機板略有差異,通常在電腦啟動時按 F2 ,進入 bios 選單中 advanced(高階)—— CPU configuration(處理器配置)—— Intel(R) Virtualization teachnology (虛擬化技術),設定為 Eenabled 即可。

完成了以上兩步之後,再次開啟 工作管理員 ,切換到 效能 ,檢視 CPU 是否已開啟虛擬化。

3、確認沒有安裝過虛擬機器軟體,如VMware Workstation 、Virtual Box 等,如果安裝過一定要將其解除安裝,否則可能會出現衝突,因為 Win10 中安裝 docker 時會啟用Winn10 自帶的 Hyper-V 虛擬機器。

4、下載 Docker 進行安裝,因網路問題,下載可能比較慢。

https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.exe

三、Win10中安裝 Docker

1、執行下載的 Docker 安裝程式,在如下介面中,預設會使用 Linux 容器。第二個選項是使用 windows 容器,一定不要勾選,因為我們安裝 Docker的目的是為了使用 Laradock 配置 PHP 環境,Laradock需要在Linux 中安裝,如果使用了 Windows 容器,那 Docker 中就只能安裝 Windows 的軟體了。

Docker for win10安裝

2、在安裝過程中最好退出 360安全衛士 類軟體,如果出現被攔截情況,要 允許操作。

Docker for win10安裝

3、安裝完成,點 Close and log out ,會登出系統,然後重新登入系統。

Docker for win10安裝

5、系統重啟之後,在右下角通知欄就會出現一個 Docker 的小圖示,會顯示 Docker desktop is runing,說明Docker 已成功運行了。在圖示上按右鍵,選擇 Settings ,切換到 Advanced ,如下圖:

Docker for win10安裝

可以看到,Docker 實際上是啟用了一個虛擬機器,虛擬盤名稱是:MobyLinuxVM.vhdx,宿主機CPU 一共4核,給虛擬機器分配了 2核,記憶體分配了2G。現在開啟 Hyper-V 管理器,能看到名稱為 MobyLinuxVM 的虛擬機器正在執行。也就是說,Docker 在 Windows 中,先運行了個定製的輕量的 Linux 虛擬機器,再在這個虛擬機器中執行各種功能的Docker容器。如圖:

MobyLinuxVM虛擬機器

6、將 Docker 設定切換到 Daemon ,在 Registry mirrors 中填入國內的 Docker 映象加速地址:https://registry.docker-cn.com 。如果有阿里雲的賬號,也可以申請一個阿里雲的 Docker 容器加速器。

7、如下圖,選擇要共享的盤,掛載宿主機的目錄。

掛載目錄也可以使用 docker run -v 或 mount 命令。圖中給出的 PowerShell 命令: docker run --rm -v c:/Users:/data alpine ls /data 只是示例,不明白意思的不要隨便執行。

四、測試 Docker

1、在開始選單圖示上按右鍵,開啟 Windows Shell ,輸入以下命令檢視Docker版本:

#檢視docker版本資訊docker version#檢查Docker,Compose和Machine的版本docker --versiondocker-compose --versiondocker-machine --version

2、在windows shell 中執行下面的命令,將映象檔案從倉庫抓取到本地。hello-world 是官方的一個最基本的映象,只有1.85kB

docker pull library/hello-world#顯示結果:Using default tag: latestlatest: Pulling from library/hello-world1b930d010525: Pull completeDigest: sha256:2557e3c07ed1e38f26e389462d03ed943586f744621577a99efb77324b0fe535Status: Downloaded newer image for hello-world:latest

3、檢視宿主機上的映象

docker images#顯示結果REPOSITORY TAG IMAGE ID CREATED SIZEhello-world latest fce289e99eb9 6 weeks ago 1.84kB

4、執行這個映象,如能正常顯示說明資訊,表示 Docker 執行正常。

docker run hello-world#顯示結果Hello from Docker!This message shows that your installation appears to be working correctly....

5、檢視容器 ,注意容器ID

docker ps -a#顯示結果CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESf657e13f1a25 hello-world "/hello" 13 minutes ago Exited (0) 13 minutes ago brave_morse

6、刪除容器(如果要刪除映象先要刪除容器)

docker rmi hello-world#顯示結果:Untagged: hello-world:latest......

至此,測試結束,Docker 執行正常。

五、安裝 Laradock

參考官方文件:https://laradock-docs.linganmin.cn/zh/getting-started/

1、下載或克隆 Laradock 專案到本地,例如,開啟 Windows Shell ,進入C:\\WWW 目錄中,執行git 命令:

git clone https://github.com/laradock/laradock.git

2、進入laradock資料夾並複製 env-example 為 .env,mysql 配置 賬號密碼在.env中,可修改。

cd laradockcp env-example .env

3、修改 .env 檔案,啟用 xDebug。預設的 .env 檔案沒有啟用 xDebug 。

(1)現在開啟 .env 檔案,搜尋 XDEBUG ,將 WORKSPACE_INSTALL_XDEBUG 設定為 true ,將 PHP_FPM_INSTALL_XDEBUG 設定為 true 。

(2)開啟 laradock/workspace/xdebug.ini 和 laradock/php-fpm/xdebug.ini 修改以下配置:

...xdebug.remote_autostart = 1xdebug.remote_enable = 1xdebug.cli_color = 1...

這樣修改配置之後,在構建環境時就會在 php-fpm 和 workspace 兩個容器中安裝 XDEBUG ,詳見官方文件:http://laradock.io/documentation/#install-xdebug

4、執行docker-compose來構建環境:

docker-compose up -d nginx mysql

以上命令就會構建 nginx mysql 兩個容器,同時還會自動構建 php-fpm 和 workspace 兩個容器。

由於網路原因,時間可能會比較長,因為 Laradock 中的 linux 軟體源都是預設的,並沒有為國內網路優化。在github 上也有國內做的修改版的,使用了國內的軟體源。不過一般在雲主機中網路條件都比較好,安裝時會比本地安裝要快。如果因為網路原因構建不成功,那就重新執行一次命令。我本人在本地安裝時用了3個多小時。

5、構建其它可選容器

docker-compose up -d redis beanstalkd phpmyadmin

6、至此,laradoc環境已經構建完成,以後在win10系統每次開機重啟後,會自動啟動 docker ,只要開啟 PowerShell 切換到 laradoc 目錄,執行上述兩條命令即可啟動相應的容器服務。

-- 待續 --

最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • Vue元件component基本用法