使用Laradock安裝Laravel環境

更新於 發佈於 閱讀時間約 8 分鐘

Environment: GCP
Linux version: CentOS 7

Laradock的初衷原是為了將Laravel環境容器化,但隨著時間的演進,慢慢包含了各種常用的工具了,如php-fpm, apache, nginx, mysql, phpmyadmin, redis等等這些常用的東西,可以透過指令決定要選用哪些。

Requirement:

需先安裝docker與docker-compose

安裝與設定Laradock:

若沒有git,先安裝:
$ yum install git

1. 將Laradock clone下來:
$ git clone https://github.com/Laradock/laradock.git Laradock

ls看一下,真的是包山包海呢!

raw-image

2. 配置環境設定

在Laradock資料夾內找到env-example,複製一份.env出來設定:
$ cp env-example .env

接著打開.env:
$ vim .env

raw-image


APP_CODE_PATH_HOST: 設定Laravel專案要放在local的哪個path
APP_CODE_PATH_CONTAINER: 設定專案要同步到container中的哪個path
DATA_PATH_HOST: 設定db, redis資料要放在哪個path


Note: .env中還有mysql, php, phpmyadmin相關配置,也設定一下:

raw-image
raw-image
raw-image

# phpmyadmin的預設使用者帳密:
PMA_USER=default
PMA_PASSWORD=secret


啟動 Laradock:

在Laradock folder下:
$ docker-compose up -d nginx mysql phpmyadmin

這邊可以自由放想啟動的服務,根據需求調整。
不用特別指定php-fpm,Laradock 會自己啟動php-fpm與workspace。

完成後會看到類似這些訊息,幫我們把容器都建好了:

raw-image
raw-image

Note: .env中有個COMPOSE_PROJECT_NAME,這是container name的prefix。

raw-image

建立Laravel專案:

進入workspace container:
$ docker-compose exec workspace bash

raw-image

進去後在/var/www目錄,則是對應到外部我們設定的../dev_project/。

直接來建立一個test的Laravel專案:
$ composer create-project laravel/laravel --prefer-dist test

接著記得修改.env中DB config:

raw-image

在docker世界裡,DB_HOST不再是127.0.0.1,要用container name。


開啟phpmyadmin:

由於在8081 port,需在GCP中開啟該port。
VPC網路 -> 防火牆 -> 建立防火牆規則

raw-image
raw-image

其中目標標記這個tag則要拿來VM這邊加入防火牆Rule。

raw-image

完成後即可在外部透過瀏覽器打開phpmyadmin:

raw-image

設定Nginx:

在Laradock/nginx/sites中,複製一份laravel.conf.example,根據喜好命名:
$ cp laravel.conf.example laravel.test.conf

接著打開laravel.test.conf設定一下server_name, root等等:

raw-image

重啟 laradock套用設定:
$ docker-compose down
$ docker-compose up -d nginx mysql phpmyadmin

raw-image

接著打開若出現這個error,需修改權限:

raw-image

進入workspace內修改project storage下的權限:
$ chown -R laradock:laradock storage/logs

後來發現又出現storage底下的framework也沒權限:
$ chown -R laradock:laradock storage/framework

raw-image
raw-image

後記:

程式執行過程若出現 chmod(): Operation not permitted 這種錯誤,把project owner改成laradock即可!
$ chown -R laradock:laradock project_path


若發生js code明明已經更新,瀏覽器cache也都清過了,但就是吃不到最新的code,這時需把nginx restart:
$ docker restart xxx_nginx

單純把laradock down再up是沒用的!


Note:

Laradock/.env中設定的nginx port是指expose到host的port,映射到container中的nginx port則是在Laradock/docker-compose.yml中設定(如下紅字):

raw-image

因此在Laradock/nginx/sites中設定的config,listen port要設定映射到container中的port。


Laradock設定開機自啟動:

在Laradock/docker-compose.yml中設定需要開機自啟動的service,加入restart: unless-stopped,下圖以nginx為例:

raw-image

以本文章為例,docker-compose up -d nginx mysql phpmyadmin,可以看到起了: php-fpm, workspace, nginx, mysql, phpmyadmin, docker-in-docker
這些東西! 因此這些service都要設上restart: unless-stopped。

raw-image


本筆記參考:
1. https://ithelp.ithome.com.tw/articles/10194127
2. https://medium.com/%E4%B8%80%E5%80%8B%E5%B0%8F%E5%B0%8F%E5%B7%A5%E7%A8%8B%E5%B8%AB%E7%9A%84%E9%9A%A8%E6%89%8B%E7%AD%86%E8%A8%98/laravel-docker-%E8%BC%95%E9%AC%86%E4%B8%8A%E6%89%8B-4cefeeb3febc
3. https://yeeinhole.github.io/2020/01/27/laradock/
4. http://laradock.io/
5. https://github.com/laradock/laradock/issues/1953
6. https://stackoverflow.com/questions/43671482/how-to-run-docker-compose-up-d-at-system-start-up
7. https://stackoverflow.com/questions/60490738/docker-compose-docker-at-the-startup

留言
avatar-img
留言分享你的想法!
avatar-img
Vic Lin的沙龍
21會員
161內容數
Vic Lin的沙龍的其他內容
2023/08/13
父元件 傳遞方法使用@ <template>    ...    <Login @modalClose="modalClose"/> ... </template> <script setup>     const _modal = ref();     function m
2023/08/13
父元件 傳遞方法使用@ <template>    ...    <Login @modalClose="modalClose"/> ... </template> <script setup>     const _modal = ref();     function m
2023/03/25
前情提要 由於我的筆電已經用了10年,無法再戰下去了,且有預算考量,加上使用電腦幾乎都是定點,只有偶爾回家的時候會需要攜帶,因此最終選擇了迷你電腦,體積小不占空間,又方便攜帶,剛好符合我的需求。 菜單 由於這台無法裝獨顯,所以CPU的部分選擇 AMD R5 3400G(含Vega 11內
Thumbnail
2023/03/25
前情提要 由於我的筆電已經用了10年,無法再戰下去了,且有預算考量,加上使用電腦幾乎都是定點,只有偶爾回家的時候會需要攜帶,因此最終選擇了迷你電腦,體積小不占空間,又方便攜帶,剛好符合我的需求。 菜單 由於這台無法裝獨顯,所以CPU的部分選擇 AMD R5 3400G(含Vega 11內
Thumbnail
2023/03/10
Nuxt3中可使用useFetch來獲取數據,不須再引用axios,相當方便: 本筆記參考: https://juejin.cn/post/7104071421160063012 https://juejin.cn/post/7086472647575339045
2023/03/10
Nuxt3中可使用useFetch來獲取數據,不須再引用axios,相當方便: 本筆記參考: https://juejin.cn/post/7104071421160063012 https://juejin.cn/post/7086472647575339045
看更多
你可能也想看
Thumbnail
大家好,我是一名眼科醫師,也是一位孩子的媽 身為眼科醫師的我,我知道視力發展對孩子來說有多關鍵。 每到開學季時,診間便充斥著許多憂心忡忡的家屬。近年來看診中,兒童提早近視、眼睛疲勞的案例明顯增加,除了3C使用過度,最常被忽略的,就是照明品質。 然而作為一位媽媽,孩子能在安全、舒適的環境
Thumbnail
大家好,我是一名眼科醫師,也是一位孩子的媽 身為眼科醫師的我,我知道視力發展對孩子來說有多關鍵。 每到開學季時,診間便充斥著許多憂心忡忡的家屬。近年來看診中,兒童提早近視、眼睛疲勞的案例明顯增加,除了3C使用過度,最常被忽略的,就是照明品質。 然而作為一位媽媽,孩子能在安全、舒適的環境
Thumbnail
提供一條簡單公式、一套盤點思路,幫助你快速算出去日本自助旅遊需要準備多少日幣現金!
Thumbnail
提供一條簡單公式、一套盤點思路,幫助你快速算出去日本自助旅遊需要準備多少日幣現金!
Thumbnail
Laravel是一個以MVC(參考:[設計模式]MVC)為架構的PHP Web框架。Laravel支援使用者身份驗證和授權,提供模組化套件系統。Laravel使用Blade模板系統將PHP程式碼與HTML網頁分離。 安裝環境 下載安裝composer https://getcomposer.o
Thumbnail
Laravel是一個以MVC(參考:[設計模式]MVC)為架構的PHP Web框架。Laravel支援使用者身份驗證和授權,提供模組化套件系統。Laravel使用Blade模板系統將PHP程式碼與HTML網頁分離。 安裝環境 下載安裝composer https://getcomposer.o
Thumbnail
GitLab不僅是一個源代碼管理工具,它還提供了一個統一的平台,將開發、運營和安全等流程整合在一起。通過GitLab,可以在單一的應用程序中進行專案計劃、源代碼管理、分支控制、CI/CD等操作。不論角色為何,GitLab提供了一個統一的資訊來源,讓你輕鬆地管理和追蹤整個開發流程。它消除了工具鏈的複雜
Thumbnail
GitLab不僅是一個源代碼管理工具,它還提供了一個統一的平台,將開發、運營和安全等流程整合在一起。通過GitLab,可以在單一的應用程序中進行專案計劃、源代碼管理、分支控制、CI/CD等操作。不論角色為何,GitLab提供了一個統一的資訊來源,讓你輕鬆地管理和追蹤整個開發流程。它消除了工具鏈的複雜
Thumbnail
前言 前篇把 Ubuntu 作業系統的安裝跟準備談完了,有需要可以跳回去看。接下來聊容器服務 Docker 的安裝與使用。 Docker 可以應用的場合很多,這次是會用它來模擬 Android 受測裝置
Thumbnail
前言 前篇把 Ubuntu 作業系統的安裝跟準備談完了,有需要可以跳回去看。接下來聊容器服務 Docker 的安裝與使用。 Docker 可以應用的場合很多,這次是會用它來模擬 Android 受測裝置
Thumbnail
簡介 因常會在新機器跑container,藉此紀錄安裝過程,順便寫下腳本安裝懶人包 安裝docker 檢查系統中是否已經安裝了docker 執行:ps -ef |grep docker 如上圖所示,說明系統中並沒有安裝docker 添加docker-ce倉庫 安裝yum倉庫管理工具 配置docker
Thumbnail
簡介 因常會在新機器跑container,藉此紀錄安裝過程,順便寫下腳本安裝懶人包 安裝docker 檢查系統中是否已經安裝了docker 執行:ps -ef |grep docker 如上圖所示,說明系統中並沒有安裝docker 添加docker-ce倉庫 安裝yum倉庫管理工具 配置docker
Thumbnail
Development environment of Laravel. Nginx, php, mysql and centos 7
Thumbnail
Development environment of Laravel. Nginx, php, mysql and centos 7
Thumbnail
欲在Laravel中使用MongoDB,首先要確認有安裝MongoDB PHP driver,接著再安裝Laravel MongoDB套件,才能開始使用CRUD。 1. 安裝MongoDB PHP driver (1) 到這邊下載MongoDB PHP driver (3) 檢查是否正常 後記:
Thumbnail
欲在Laravel中使用MongoDB,首先要確認有安裝MongoDB PHP driver,接著再安裝Laravel MongoDB套件,才能開始使用CRUD。 1. 安裝MongoDB PHP driver (1) 到這邊下載MongoDB PHP driver (3) 檢查是否正常 後記:
Thumbnail
圖片來自 Vincent PONTIER (本文譯自〈Docker for PHP Developers〉) 數年以來我都用 Vagarant  管理本地的開發伺服器,根據 Vagrant 網站所述,Vagrant  是用於創建、組態輕量的(light-weight)、可重製的(reproducib
Thumbnail
圖片來自 Vincent PONTIER (本文譯自〈Docker for PHP Developers〉) 數年以來我都用 Vagarant  管理本地的開發伺服器,根據 Vagrant 網站所述,Vagrant  是用於創建、組態輕量的(light-weight)、可重製的(reproducib
Thumbnail
Environment: GCP Linux version: CentOS 7 Laradock的初衷原是為了將Laravel環境容器化,但隨著時間的演進,慢慢包含了各種常用的工具了,如php-fpm, apache, nginx, mysql, phpmyadmin, redis等等這些常用的東
Thumbnail
Environment: GCP Linux version: CentOS 7 Laradock的初衷原是為了將Laravel環境容器化,但隨著時間的演進,慢慢包含了各種常用的工具了,如php-fpm, apache, nginx, mysql, phpmyadmin, redis等等這些常用的東
Thumbnail
本筆記紀錄如何在Linux(CentOS 8)安裝Nginx, MySQL, PHP環境。...
Thumbnail
本筆記紀錄如何在Linux(CentOS 8)安裝Nginx, MySQL, PHP環境。...
Thumbnail
Note: 本筆記使用的是Windows 10作業系統 1. 下載並安裝WAMP或XAMPP等等 本文是使用wamp,這邊略過安裝教學。 2. 下載並安裝Composer 至官網下載Composer windows installer,到這一步驟時,選擇PHP版本位置: ...
Thumbnail
Note: 本筆記使用的是Windows 10作業系統 1. 下載並安裝WAMP或XAMPP等等 本文是使用wamp,這邊略過安裝教學。 2. 下載並安裝Composer 至官網下載Composer windows installer,到這一步驟時,選擇PHP版本位置: ...
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News