Laradock 快速搭建PHP開發環境
可能你並不清楚Docker
是什麼,更不瞭解Laradock
是什麼,送上語句自己特別喜歡的一句話Use Docker First And Learn About It Later
大概意思就是先去使用它,然後再去學習它
,
要求
附帶一個安裝參考教程騰訊雲課堂地址,
安裝
選擇最適合您需要的設定。
A) 單個專案的設定
(如果您希望每個專案都有單獨的Docker環境,請按照以下步驟操作)
A.1) 已經有一個 PHP 專案:
1 - 在專案根目錄中克隆laradock:
git submodule add https://github.com/Laradock/laradock.git
注意:如果您尚未將 Git 用於專案,則可以使用git clone
而不是git submodule
。
為了跟蹤您的Laradock更改,您的專案之間,並保持Laradock更新檢查這些文件
您的資料夾結構應如下所示:
+ project-a + laradock-a + project-b + laradock-b
(如果要為每個專案執行 laradock,重要的是將 laradock 資料夾重新命名為每個專案中的唯一名稱)。
現在跳到用法部分。
A.2) 還沒有 PHP 專案::
1 - 在您的計算機上的任何位置克隆此儲存庫:
git clone https://github.com/laradock/laradock.git
您的資料夾結構應如下所示:
+ laradock
+ project-z
2 - 編輯Web伺服器站點配置。
我們現在需要跳到用法章節的第1步,用於實現這一點。
cp env-example .env
在頂部,將 APPLICATION
變數更改為專案路徑。
APPLICATION=../project-z/
確保替換 project-z
為專案資料夾名稱。
現在跳轉到 用法 章節。
B) 多個專案的設定:
(如果您想為所有專案使用單個Docker環境,請執行以下步驟)
1 - 在您的機器上的任何位置克隆此倉庫 (類似於 上面A.2步驟):
git clone https://github.com/laradock/laradock.git
您的資料夾結構應如下所示:
+ laradock
+ project-1
+ project-2
2 - 訪問nginx/sites
並建立配置檔案,在訪問不同的域時指向不同的專案目錄。
Laradock 預設包含 app.conf.example
,laravel.conf.example
並 symfony.conf.example
作為工作樣本。
3 - 更改預設名稱*.conf
:
您可以隨意重新命名配置檔案、專案資料夾和域,只需確保配置檔案中的“根”指向正確的專案資料夾名稱。
4 - 將域新增到 hosts 檔案。
127.0.0.1 project-1.test
127.0.0.1 project-2.test
...
如果您使用的是Chrome 63或以上,請不要使用.dev。為什麼?。相反,可以使用.localhost
、.invalid
、.test
或.example
。
現在跳轉到用法 章節。
用法
開始之前:
如果您正在使用Docker Toolbox (VM),請執行以下操作:
- 升級到 Docker 本機的 Mac/Windows (推薦)。檢視升級 Laradock
- 使用Laradock v3.*。參觀Laradock-ToolBox分支。(已過時,不推薦)
我們建議使用比1.13更新的 Docker 版本。
警告: 如果您使用舊版本的Laradock,強烈建議您 重建需要使用的容器,瞭解如何重建容器以防止儘可能多的錯誤。
1 - 輸入laradock資料夾並複製 env-example
到 .env
cp env-example .env
您可以編輯該.env文
件以選擇要在您的環境中安裝的軟體。您始終可以參考該docker-compose.yml
檔案以檢視這些變數的使用方式。
根據主機的作業系統,您可能需要更改給定的值COMPOSE_FILE
。在 Mac OS 上執行 Laradock 時,要使用的檔案分隔符是正確的:
。從 Windows 環境執行Laradock時,必須用多個檔案分隔;
。
預設情況下,將建立的容器具有當前目錄名稱作為字尾(例如laradock_workspace_1
)。如果在多個專案中使用 laradock,這可能會導致容器卷內的資料混合。在這種情況下,請閱讀多個專案的指南或將變數更改為COMPOSE_PROJECT_NAME
與專案名稱相同的唯一內容。
2 - 構建環境並使用它執行 docker-compose
在這個例子中,我們將看到如何執行NGINX(Web伺服器)和MySQL(資料庫引擎)來託管PHP Web指令碼:
docker-compose up -d nginx mysql
注意: 所有Web伺服器容器nginx
,apache
..依賴於php-fpm
,這意味著如果您執行其中任何一個,它們將自動php-fpm
為您啟動容器,因此無需在 up 命令中明確指定它。如果必須這樣做,您可能需要按如下方式執行它們:docker-compose up -d nginx php-fpm mysql
。
您可以從此列表中選擇自己的容器組合。
請注意,有時我們忘記更新文件,因此請檢查 docker-compose.yml
檔案以檢視所有可用容器的更新列表)。
3 - 進入Workspace容器,執行命令,如(Artisan,Composer,PHPUnit,Gulp,...)
docker-compose exec workspace bash
或者,對於Windows PowerShell使用者:執行以下命令以輸入任何正在執行的容器:
docker exec -it {workspace-container-id} bash
注意: 您可以新增--user=laradock
以將檔案建立為主機的使用者。例:
docker-compose exec --user=laradock workspace bash
您可以從.env
檔案中更改PUID(使用者ID)和PGID(組ID)變數)
4 - 更新專案配置使其可以使用資料庫
開啟PHP專案的 .env
檔案或您正在讀取的任何配置檔案,並將資料庫主機 DB_HOST
設定為 mysql
:
DB_HOST=mysql
```
如果要安裝
Laravel
框架作為PHP專案,請參閱如何在Docker容器中安裝Laravel。
5 - 開啟瀏覽器並訪問您的本地主機地址http://localhost/
。如果您按照多個專案設定,您可以訪問http://project-1.test/
和http://project-2.test/
。