1. 程式人生 > >Laradock 快速搭建PHP開發環境

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.examplelaravel.conf.examplesymfony.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),請執行以下操作:


我們建議使用比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伺服器容器nginxapache..依賴於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/

原文地址:https://segmentfault.com/a/1190000016042715