Docker Compose、Nginx和MariaDB的開箱即用解決方案:快速建立PHP環境
概述:
在開發和部署PHP應用程序時,搭建一個可靠且易於管理的環境是至關重要的。 Docker Compose、Nginx和MariaDB可以提供一個快速建造PHP環境的解決方案。本文將介紹如何使用Docker Compose來設定和運行容器,使用Nginx作為Web伺服器,使用MariaDB作為資料庫,快速建構PHP環境。
一、安裝Docker和Docker Compose:
首先,我們需要在本機上安裝Docker和Docker Compose。可以在Docker官方網站上找到適用於不同作業系統的安裝指南。安裝完成後,請驗證安裝是否成功,可以在終端機或命令提示字元中輸入以下命令:
docker --version docker-compose --version
如果能夠正確顯示版本號,則表示Docker和Docker Compose已成功安裝。
二、建立Docker Compose文件:
接下來,我們需要建立一個名為docker-compose.yml的文件,並在其中定義我們的服務和容器配置。
version: '3' services: nginx: build: context: . dockerfile: nginx.dockerfile ports: - 80:80 depends_on: - php php: build: context: . dockerfile: php.dockerfile volumes: - ./src:/var/www/html mariadb: image: mariadb environment: - MYSQL_ROOT_PASSWORD=secret
解釋:
三、建立Dockerfile和設定檔:
接下來,我們需要建立Dockerfile和設定文件,以便在建置映像時提供必要的配置和依賴。
FROM nginx COPY nginx.conf /etc/nginx/nginx.conf COPY default.conf /etc/nginx/conf.d/default.conf
解釋:從官方的Nginx映像建立一個新的映像,然後將本地的nginx.conf和default.conf檔案複製到容器的相應位置。
FROM php:7.4-fpm RUN apt-get update && apt-get install -y zlib1g-dev libzip-dev && docker-php-ext-install zip pdo_mysql COPY php.ini /usr/local/etc/php/conf.d/custom.ini
解釋:從官方的PHP映像建立新的映像,然後使用apt-get命令安裝必要的依賴,並透過docker -php-ext-install指令安裝zip和pdo_mysql擴充。最後將本機的php.ini檔案複製到容器中。
user nginx; worker_processes auto; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; keepalive_timeout 65; 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 php:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } }
解釋:這是Nginx的設定檔。配置了預設的日誌路徑、事件設定、http設定和一個基本的server區塊,用於處理請求,並將PHP處理交給php容器。
server { location / { try_files $uri $uri/ /index.php?$query_string; } location ~ .php$ { fastcgi_pass php:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
解釋:這是Nginx的預設設定檔。與nginx.conf檔案中的server區塊設定相同。
四、開始建置和運行容器:
在設定完所有設定檔之後,我們可以開始建置和運行容器了。在終端機或命令提示字元中,進入docker-compose.yml檔案所在的目錄,然後執行以下命令:
docker-compose up --build
這條指令將啟動建置映像和執行容器的程序。一旦完成,你將會看到容器正在運行,並且可以透過http://localhost存取PHP應用程式。
如果需要在背景執行容器,可以使用下列指令:
docker-compose up -d --build
這條指令將以守護程式模式執行容器。
總結:
透過Docker Compose、Nginx和MariaDB的開箱即用解決方案,我們可以快速建置和管理PHP環境。 Docker的可移植性和容器化的優勢,使得開發和部署PHP應用程式變得更加簡單和可靠。希望本文對你有所幫助,有關程式碼範例的更多細節,請參閱本文所提到的設定檔。
以上是Docker Compose、Nginx和MariaDB的開箱即用解決方案:快速建造PHP環境的詳細內容。更多資訊請關注PHP中文網其他相關文章!