Docker Compose、Nginx和MariaDB的最佳實踐:部署PHP應用程式的監控與最佳化
引言:
在現代應用程式開發中,容器化已經成為一種流行的方式,能夠幫助我們更好地管理和部署應用程式。而Docker Compose則是用來定義和執行多個容器的工具,它能夠簡化應用程式的部署和管理流程。本文將介紹如何使用Docker Compose結合Nginx和MariaDB來部署和最佳化PHP應用程序,並給出具體程式碼範例。
version: '3' services: nginx: image: nginx ports: - "80:80" volumes: - ./nginx.conf:/etc/nginx/nginx.conf depends_on: - php php: image: php:7.4-fpm volumes: - ./php.ini:/usr/local/etc/php/php.ini - ./app:/var/www/html depends_on: - mariadb mariadb: image: mariadb environment: - MYSQL_ROOT_PASSWORD=123456 volumes: - ./data:/var/lib/mysql
在這個範例中,我們定義了三個服務:nginx、php和mariadb。 nginx服務將會監聽宿主機的80端口,並將請求轉送給php服務處理。 php服務使用php:7.4-fpm鏡像,並掛載了php.ini和應用程式檔案目錄。 mariadb服務使用mariadb鏡像,並設定了資料庫的root密碼,並掛載了資料目錄。
worker_processes auto; events { worker_connections 1024; } http { # 其他配置项省略 server { listen 80; server_name localhost; root /var/www/html; location / { try_files $uri $uri/ /index.php$is_args$args; } 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區塊中,我們定義了監聽80端口,設定了根目錄以及處理PHP腳本的方法。注意修改fastcgi_pass指令為php服務的容器內位址。
<?php $host = 'mariadb'; $user = 'root'; $password = '123456'; $database = 'mydb'; $conn = new mysqli($host, $user, $password, $database); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } echo "Connected successfully"; $conn->close(); ?>
在這個範例中,我們使用了mariadb作為主機名,並使用了先前定義的root密碼。
docker-compose up -d
這個命令將會啟動所有定義的服務,並在後台運行。
docker stats
指令查看各個容器的資源使用情況,可以及時發現例外狀況和效能瓶頸。 docker-compose logs
指令查看容器的日誌訊息,可以快速定位錯誤和問題。 結論:
本文介紹如何使用Docker Compose、Nginx和MariaDB來部署和最佳化PHP應用程序,並給出了具體的程式碼範例。透過容器化部署,我們可以方便地管理和擴展應用程序,並透過監控和優化提升應用程式的效能和穩定性。希望本文對你在部署PHP應用程式時有所幫助。
以上是Docker Compose、Nginx與MariaDB的最佳實務:部署PHP應用程式的監控與最佳化的詳細內容。更多資訊請關注PHP中文網其他相關文章!