Docker Compose、Nginx和MariaDB的完美組合:部署PHP應用程式的最佳實踐
Docker Compose、Nginx和MariaDB的完美組合:部署PHP應用程式的最佳實踐
引言:
在現代Web應用程式開發中,使用容器化技術已經成為了一種趨勢。容器化技術可以將應用程式及其相依性打包成一個單獨的容器,使得應用程式可以在任何支援容器化技術的環境中運作。而Docker是當下最受歡迎的一種容器化技術,它可以簡化應用程式的部署、管理和擴展。
對於使用PHP開發的Web應用程序,我們可以使用Docker Compose來管理多個容器,包括Nginx、PHP和資料庫等。本文將介紹如何使用Docker Compose、Nginx和MariaDB來部署和管理一個PHP應用程序,並提供具體的程式碼範例。
-
安裝Docker和Docker Compose
首先,我們需要在主機上安裝Docker和Docker Compose。可造訪Docker官方網站(https://www.docker.com/)進行下載和安裝。安裝完成後,我們可以透過執行以下命令來確認Docker是否正確安裝:docker --version docker-compose --version
登入後複製 #建立Docker Compose檔案
在專案的根目錄下建立一個名為docker-compose .yml的文件,用於定義應用程式的服務和相應的配置。以下是一個簡單的docker-compose.yml檔案的範例:version: '3' services: web: build: context: . dockerfile: Dockerfile ports: - 80:80 volumes: - ./src:/var/www/html depends_on: - db db: image: mariadb environment: MYSQL_ROOT_PASSWORD: 123456 MYSQL_DATABASE: mydb MYSQL_USER: user MYSQL_PASSWORD: password volumes: - db-data:/var/lib/mysql volumes: db-data:
登入後複製上述docker-compose.yml檔案定義了兩個服務,一個是web服務,用於運行Nginx和PHP,另一個是db服務,用於運行MariaDB。 web服務將面向外部主機的80埠暴露出來,並將專案目錄下的src資料夾對應到容器內的/var/www/html目錄。 db服務設定了MariaDB的環境變數和資料卷,用於持久化儲存資料庫資料。
建立Dockerfile
為了建立web服務所需的自訂映像,我們需要在專案目錄下建立一個名為Dockerfile的檔案。以下是一個簡單的Dockerfile檔案的範例:FROM php:7.4-fpm RUN docker-php-ext-install pdo_mysql WORKDIR /var/www/html
登入後複製上述Dockerfile檔案基於官方的php:7.4-fpm映像,安裝了pdo_mysql擴展,並將工作目錄設定為/var/www/html。
啟動容器
在專案的根目錄下執行以下命令啟動容器:docker-compose up -d
登入後複製透過執行上述命令,Docker將根據docker-compose.yml文件中的配置啟動web和db兩個服務。 -d參數表示以後台模式運作容器。
配置Nginx
為了使Nginx能夠正確地將請求轉發到web服務中的PHP應用程序,我們需要在Nginx的配置中添加以下配置項:server { listen 80; server_name localhost; root /var/www/html; index index.php index.html; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ .php$ { fastcgi_pass web:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
登入後複製上述設定檔將請求轉送到web服務中執行的PHP-FPM進程,並將PHP相關的環境變數傳遞給PHP-FPM。
編寫PHP應用程式
在專案目錄下的src資料夾中編寫PHP應用程式程式碼。這裡我們以一個簡單的Hello World程式為例:<?php echo "Hello World!";
登入後複製- 存取應用程式
透過造訪http://localhost即可在瀏覽器中查看到執行的PHP應用程式。
總結:
透過使用Docker Compose、Nginx和MariaDB的組合,我們可以輕鬆地部署和管理PHP應用程式。 Docker Compose提供了一種簡單而強大的方式來定義和運行多個容器,Nginx作為Web伺服器可以處理大量並發請求,而MariaDB則提供了穩定可靠的資料庫服務。希望透過本文的介紹和範例,讀者能夠更好地理解和應用這些技術,並在實際專案中受益。
以上是Docker Compose、Nginx和MariaDB的完美組合:部署PHP應用程式的最佳實踐的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

退出 Docker 容器的四種方法:容器終端中使用 Ctrl D 快捷鍵容器終端中輸入 exit 命令宿主機終端中使用 docker stop <container_name> 命令宿主機終端中使用 docker kill <container_name> 命令(強制退出)

可以通過以下步驟查詢 Docker 容器名稱:列出所有容器(docker ps)。篩選容器列表(使用 grep 命令)。獲取容器名稱(位於 "NAMES" 列中)。

在 Docker 中啟動 MySQL 的過程包含以下步驟:拉取 MySQL 鏡像創建並啟動容器,設置根用戶密碼並映射端口驗證連接創建數據庫和用戶授予對數據庫的所有權限

Docker 中將文件拷貝到外部主機的方法:使用 docker cp 命令:執行 docker cp [選項] <容器路徑> <主機路徑>。使用數據卷:在主機上創建目錄,在創建容器時使用 -v 參數掛載該目錄到容器內,實現文件雙向同步。

重啟 Docker 容器的方法:獲取容器 ID(docker ps);停止容器(docker stop <container_id>);啟動容器(docker start <container_id>);驗證重啟成功(docker ps)。其他方法:Docker Compose(docker-compose restart)或 Docker API(參考 Docker 文檔)。

Docker 進程查看方法:1. Docker CLI 命令:docker ps;2. Systemd CLI 命令:systemctl status docker;3. Docker Compose CLI 命令:docker-compose ps;4. Process Explorer(Windows);5. /proc 目錄(Linux)。

可切換到國內鏡像源,步驟如下:1. 編輯配置文件 /etc/docker/daemon.json,添加鏡像源地址;2. 保存退出後,重啟 Docker 服務 sudo systemctl restart docker,即可提升鏡像下載速度和穩定性。
