在當今Web開發中,插件系統的使用已成為擴展PHP應用程序功能的重要方式。通過容器化部署方式,可以快速、靈活地構建可擴展的開發環境。本文將展示如何使用Docker Compose結合Nginx和MariaDB,搭建一個支持插件擴展的PHP環境。
首先,確保你的系統中已正確安裝了Docker和Docker Compose。安裝完成後,通過以下命令驗證:
docker --version docker-compose --version
在項目根目錄中創建docker-compose.yml文件,添加以下內容:
version: '3' services: web: build: context: . dockerfile: Dockerfile volumes: - .:/var/www/html ports: - 8080:80 links: - db db: image: mariadb environment: MYSQL_ROOT_PASSWORD: secret
該配置定義了兩個服務:PHP運行環境(web)和數據庫服務(db)。 PHP服務通過Nginx對外提供訪問接口。
新建Dockerfile文件,並寫入以下內容:
FROM php:7.4-fpm RUN docker-php-ext-install pdo_mysql
這個鏡像使用PHP 7.4 並預裝了pdo_mysql擴展,你可以根據項目需要添加更多PHP 插件。
在項目目錄下創建Nginx 配置文件default.conf ,內容如下:
server { listen 80; index index.php index.html; server_name localhost; root /var/www/html; location / { try_files $uri $uri/ /index.php?$args; } location ~ .php$ { include fastcgi_params; fastcgi_pass web:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; } }
該配置實現了基本的請求轉發與PHP解析邏輯,確保訪問PHP文件時由PHP-FPM容器處理。
在項目根目錄運行以下命令:
docker-compose up -d
此命令將根據配置構建並啟動所需容器。
你可以使用任何圖形化數據庫工具連接MariaDB,例如DBeaver、Navicat或phpMyAdmin。連接信息如下:
Host: localhost Port: 3306 Username: root Password: secret
在/var/www/html目錄中編寫你的PHP代碼,所有文件將被Nginx自動加載並處理。你可以在此環境中測試插件功能、處理數據庫連接、構建REST API等。
通過結合Docker Compose、Nginx和MariaDB,我們可以構建一個輕量、高效的PHP開發環境,特別適用於需要快速迭代、插件擴展能力強的開發場景。借助容器的靈活性,開發者可以更加專注於業務邏輯和插件功能的實現,而無需繁瑣地配置底層運行環境。
這個解決方案具有高度可定制性,可根據項目需求進行拓展與優化,適合用於本地開發測試和團隊協作開發流程中。