使用Laradock安裝Laravel環境

閱讀時間約 7 分鐘
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看一下,真的是包山包海呢!
2. 配置環境設定
在Laradock資料夾內找到env-example,複製一份.env出來設定:
$ cp env-example .env
接著打開.env:
$ vim .env
APP_CODE_PATH_HOST: 設定Laravel專案要放在local的哪個path
APP_CODE_PATH_CONTAINER: 設定專案要同步到container中的哪個path
DATA_PATH_HOST: 設定db, redis資料要放在哪個path
Note: .env中還有mysql, php, phpmyadmin相關配置,也設定一下:
# phpmyadmin的預設使用者帳密:
PMA_USER=default
PMA_PASSWORD=secret

啟動 Laradock:

在Laradock folder下:
$ docker-compose up -d nginx mysql phpmyadmin
這邊可以自由放想啟動的服務,根據需求調整。
不用特別指定php-fpm,Laradock 會自己啟動php-fpm與workspace。
完成後會看到類似這些訊息,幫我們把容器都建好了:
Note: .env中有個COMPOSE_PROJECT_NAME,這是container name的prefix。

建立Laravel專案:

進入workspace container:
$ docker-compose exec workspace bash
進去後在/var/www目錄,則是對應到外部我們設定的../dev_project/。
直接來建立一個test的Laravel專案:
$ composer create-project laravel/laravel --prefer-dist test
接著記得修改.env中DB config:
在docker世界裡,DB_HOST不再是127.0.0.1,要用container name。

開啟phpmyadmin:

由於在8081 port,需在GCP中開啟該port。
VPC網路 -> 防火牆 -> 建立防火牆規則
其中目標標記這個tag則要拿來VM這邊加入防火牆Rule。
完成後即可在外部透過瀏覽器打開phpmyadmin:

設定Nginx:

在Laradock/nginx/sites中,複製一份laravel.conf.example,根據喜好命名:
$ cp laravel.conf.example laravel.test.conf
接著打開laravel.test.conf設定一下server_name, root等等:
重啟 laradock套用設定:
$ docker-compose down
$ docker-compose up -d nginx mysql phpmyadmin
接著打開若出現這個error,需修改權限:
進入workspace內修改project storage下的權限:
$ chown -R laradock:laradock storage/logs
後來發現又出現storage底下的framework也沒權限:
$ chown -R laradock:laradock storage/framework
後記:
程式執行過程若出現 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中設定(如下紅字):
因此在Laradock/nginx/sites中設定的config,listen port要設定映射到container中的port。

Laradock設定開機自啟動:
在Laradock/docker-compose.yml中設定需要開機自啟動的service,加入restart: unless-stopped,下圖以nginx為例:
以本文章為例,docker-compose up -d nginx mysql phpmyadmin,可以看到起了: php-fpm, workspace, nginx, mysql, phpmyadmin, docker-in-docker
這些東西! 因此這些service都要設上restart: unless-stopped。
為什麼會看到廣告
avatar-img
21會員
161內容數
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Vic Lin的沙龍 的其他內容
首先,使用GCP建立VM: Compute Engine -> VM執行個體 設定server配置: 區域, cpu, memory, 開機磁碟, 選擇作業系統, 防火牆等等。 接著編輯VM,設定固定外部IP: 因每當VM重啟,IP就會變動,因此要設定固定IP。 將外部IP從臨時改為建立I
1. 下載stable release的docker-compose binary: curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)"
紀錄一下在CentOS 7 如何安裝Docker。 切換至root: $ su - 1. 設置 Repository: $ yum install -y yum-utils $ yum-config-manager \ --add-repo \ https://download.docker.com
本筆記紀錄如何在Linux(CentOS 8)安裝Nginx, MySQL, PHP環境。...
紀錄一下在Laravel中,如何使用try catch。
續上篇,把程式碼改成這樣,model加上關聯,就可以從article去query comments了。 L27表示從article table中primary key = 1的文章去找所有留言。 L27的$articles變數output如下: L12這個method: comments(),
首先,使用GCP建立VM: Compute Engine -> VM執行個體 設定server配置: 區域, cpu, memory, 開機磁碟, 選擇作業系統, 防火牆等等。 接著編輯VM,設定固定外部IP: 因每當VM重啟,IP就會變動,因此要設定固定IP。 將外部IP從臨時改為建立I
1. 下載stable release的docker-compose binary: curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)"
紀錄一下在CentOS 7 如何安裝Docker。 切換至root: $ su - 1. 設置 Repository: $ yum install -y yum-utils $ yum-config-manager \ --add-repo \ https://download.docker.com
本筆記紀錄如何在Linux(CentOS 8)安裝Nginx, MySQL, PHP環境。...
紀錄一下在Laravel中,如何使用try catch。
續上篇,把程式碼改成這樣,model加上關聯,就可以從article去query comments了。 L27表示從article table中primary key = 1的文章去找所有留言。 L27的$articles變數output如下: L12這個method: comments(),
你可能也想看
Google News 追蹤
Thumbnail
好了,到了這個階段,我們終於要進入 Docker 的世界了!前幾篇文章我們討論了系統規劃與需求,現在來到實作的部分,要為整個開發環境打好基礎。這篇文章將帶你一步步打造出一個基於 Docker 的開發環境,裡面包含了 Laravel(後端)、Nuxt(前端)、Nginx(伺服器),以及 MariaDB
Thumbnail
本章節旨在介紹如何在不同操作系統上安裝和配置PHP環境,並使用命令行工具進行基礎操作。此外,還介紹了使用Visual Studio Code進行PHP開發的步驟,包括安裝擴展和設置調試環境。
Thumbnail
Docker-Compose負責對container做快速編排。設定檔預設名稱為docker-compose.yml,在檔案中,可以透過COMPOSE_FILE或-f對設定進行定義。 想要將專案透過Docker-Compose部署,需要創建docker-compose.yml和Dockerfile
Docker是一種容器化技術,可以將應用程式及相關依賴項目打包到一個容器中。這篇文章介紹了安裝Docker的步驟,以及幾個比較偏向使用者的應用程式。
Thumbnail
本文記錄如何在Kubernetes環境下,部署Standalone架構的MySQL Database,並透過phpmyadmin進行管理。這篇文章將分成MySQL部署在K8S內的優勢、部署MySQL DB standalone、部署PhpMyAdmin (PMA)、結論四個部分進行說明與實作的流程。
Thumbnail
本文將介紹Gitlab與GitHub的差異,以及在本地環境部署Gitlab的流程與實作。文章內容包括版本管理系統的選擇,Gitlab的基本功能,以及使用Docker進行部署的詳細步驟。
Thumbnail
Composer是PHP的軟體套件管理系統,它提供用於管理PHP軟體和依賴庫關係的標準格式。通常以專案為單位進行管理,會在專案根目錄底下(預設是vendor)安裝套件,除此外可以安裝全局套件。
Thumbnail
當你安裝完docker,並且設定好所有相關程序後。你正要使用docker去進行操作,讓專案可以在容器哩,方便平台移轉、備份、共用等等等等等;如果你遇到CUDA docker runtime 的問題時,這篇正適合你閱讀。 開始之前,如果你要參考怎麼安裝docker,設定docker環境,請參考:
將使用者加入Docker群組 sudo groupadd docker sudo usermod -aG docker $USER 設定開機自動啟動Docker服務 sudo systemctl enable docker sudo systemctl start docker 試跑
Thumbnail
前言 上次我們講到 Docker 的功用與好處,今天我們要在講解,如何安裝 Docker 這個容器,讓我們在之後的教學應用更好的實作與練習,現在讓我們開始吧 Docker Engine 與 Docker Desktop 首先在講解怎麼安裝 Docker 時,我們先講解 Docker Engin
Thumbnail
好了,到了這個階段,我們終於要進入 Docker 的世界了!前幾篇文章我們討論了系統規劃與需求,現在來到實作的部分,要為整個開發環境打好基礎。這篇文章將帶你一步步打造出一個基於 Docker 的開發環境,裡面包含了 Laravel(後端)、Nuxt(前端)、Nginx(伺服器),以及 MariaDB
Thumbnail
本章節旨在介紹如何在不同操作系統上安裝和配置PHP環境,並使用命令行工具進行基礎操作。此外,還介紹了使用Visual Studio Code進行PHP開發的步驟,包括安裝擴展和設置調試環境。
Thumbnail
Docker-Compose負責對container做快速編排。設定檔預設名稱為docker-compose.yml,在檔案中,可以透過COMPOSE_FILE或-f對設定進行定義。 想要將專案透過Docker-Compose部署,需要創建docker-compose.yml和Dockerfile
Docker是一種容器化技術,可以將應用程式及相關依賴項目打包到一個容器中。這篇文章介紹了安裝Docker的步驟,以及幾個比較偏向使用者的應用程式。
Thumbnail
本文記錄如何在Kubernetes環境下,部署Standalone架構的MySQL Database,並透過phpmyadmin進行管理。這篇文章將分成MySQL部署在K8S內的優勢、部署MySQL DB standalone、部署PhpMyAdmin (PMA)、結論四個部分進行說明與實作的流程。
Thumbnail
本文將介紹Gitlab與GitHub的差異,以及在本地環境部署Gitlab的流程與實作。文章內容包括版本管理系統的選擇,Gitlab的基本功能,以及使用Docker進行部署的詳細步驟。
Thumbnail
Composer是PHP的軟體套件管理系統,它提供用於管理PHP軟體和依賴庫關係的標準格式。通常以專案為單位進行管理,會在專案根目錄底下(預設是vendor)安裝套件,除此外可以安裝全局套件。
Thumbnail
當你安裝完docker,並且設定好所有相關程序後。你正要使用docker去進行操作,讓專案可以在容器哩,方便平台移轉、備份、共用等等等等等;如果你遇到CUDA docker runtime 的問題時,這篇正適合你閱讀。 開始之前,如果你要參考怎麼安裝docker,設定docker環境,請參考:
將使用者加入Docker群組 sudo groupadd docker sudo usermod -aG docker $USER 設定開機自動啟動Docker服務 sudo systemctl enable docker sudo systemctl start docker 試跑
Thumbnail
前言 上次我們講到 Docker 的功用與好處,今天我們要在講解,如何安裝 Docker 這個容器,讓我們在之後的教學應用更好的實作與練習,現在讓我們開始吧 Docker Engine 與 Docker Desktop 首先在講解怎麼安裝 Docker 時,我們先講解 Docker Engin