<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Docker 部署 PHP 全手冊

      1. PHP 簡介

      PHP 是最流行的后端腳本語言之一,廣泛應用于網站與 Web 應用開發。結合 Docker,可輕松實現“一鍵運行 PHP 環境”,避免復雜的系統配置。

      核心特點

      • 快速開發:語法簡單、上手快,擁有豐富框架(Laravel、ThinkPHP、WordPress 等)。
      • 高兼容性:支持 Nginx、Apache、MySQL、Redis 等主流組件。
      • 生態完善:Composer 管理依賴、擴展豐富(GD、PDO、mbstring 等)。
      • 輕量可移植:通過 Docker 封裝環境,避免“本地能跑、服務器不行”的問題。

      典型應用場景

      場景類型 示例 適用用戶
      PHP 基礎學習 編寫 PHP 腳本、練習語法 新手
      Web 服務開發 Laravel、ThinkPHP、WordPress 中級
      生產部署 企業級 API 服務、CMS 平臺 高級

      官方資源


      2. 部署前準備

      在開始部署前,請確保本機具備以下環境。

      2.1 硬件建議

      資源類型 開發環境 生產環境 說明
      CPU ≥ 2 核 ≥ 4 核 多線程加快腳本執行速度
      內存 ≥ 2 GB ≥ 8 GB PHP + Web 服務需足夠內存
      硬盤 ≥ 10 GB ≥ 50 GB 建議使用 SSD 提升 IO 性能

      2.2 軟件依賴

      • Docker:≥ 24.0.0
        檢查版本:

        docker --version
        
      • Docker Compose:≥ v2.26.1
        檢查版本:

        docker compose version
        

      2.3 一鍵安裝腳本

      若你的系統尚未安裝 Docker,請先一鍵安裝:

      Linux Docker & Docker Compose 一鍵安裝

      一鍵安裝配置腳本(推薦方案):
      該腳本支持多種 Linux 發行版,支持一鍵安裝 Docker、Docker Compose 并自動配置軒轅鏡像加速源。

      bash <(wget -qO- https://xuanyuan.cloud/docker.sh)
      

      2.4 網絡與安全

      • 端口:PHP-FPM 默認不暴露端口,需配合 Nginx/Apache 映射。
      • 鏡像加速:推薦使用 軒轅鏡像(避免國外鏡像拉取緩慢或失敗)。

      3. 下載 PHP 鏡像

      3.1 使用軒轅鏡像(推薦)

      # 拉取 PHP 8.2 鏡像(含 FPM)
      docker pull xxx.xuanyuan.run/library/php:8.2-fpm
      
      # (可選)改名為標準官方名稱
      docker tag xxx.xuanyuan.run/library/php:8.2-fpm php:8.2-fpm
      docker rmi xxx.xuanyuan.run/library/php:8.2-fpm
      

      3.2 使用官方鏡像(備用方案)

      docker pull php:8.2-fpm
      

      3.3 驗證鏡像是否下載成功

      docker images
      

      輸出示例:

      REPOSITORY   TAG        IMAGE ID       CREATED        SIZE
      php          8.2-fpm    5b437a0916a1   3 weeks ago    500MB
      

      4. 快速上手:運行 PHP 環境

      4.1 方式1:直接運行 PHP 容器(無網頁,僅命令行)

      docker run -it --rm php:8.2-fpm php -v
      

      輸出 PHP 版本信息即表示成功。

      4.2 方式2:運行可訪問網頁的 PHP 環境(推薦)

      步驟1:創建項目目錄

      mkdir -p ~/php-demo/www
      cd ~/php-demo/www
      

      步驟2:編寫示例 PHP 文件

      創建文件 index.php

      <?php
      phpinfo();
      ?>
      

      步驟3:創建 docker-compose.yml

      version: "3.8"
      services:
        php:
          image: php:8.2-fpm
          container_name: php-fpm
          volumes:
            - ./www:/var/www/html
          restart: unless-stopped
      
        nginx:
          image: nginx:latest
          container_name: php-nginx
          ports:
            - "8080:80"
          volumes:
            - ./www:/var/www/html
            - ./nginx.conf:/etc/nginx/conf.d/default.conf
          depends_on:
            - php
          restart: unless-stopped
      

      步驟4:創建 nginx.conf 文件

      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$ {
              include fastcgi_params;
              fastcgi_pass php:9000;
              fastcgi_index index.php;
              fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
          }
      }
      

      步驟5:啟動容器

      docker compose up -d
      

      步驟6:驗證運行結果

      瀏覽器訪問:

      http://localhost:8080
      

      若出現 PHP 信息頁面(藍紫色表格),即部署成功 ??


      5. 安裝擴展(如 pdo_mysql、gd、mbstring)

      進入容器執行:

      docker exec -it php-fpm bash
      

      在容器內運行:

      docker-php-ext-install pdo_mysql gd mbstring
      

      安裝完成后重啟容器:

      exit
      docker compose restart php
      

      驗證擴展是否啟用:

      docker exec -it php-fpm php -m
      

      輸出包含 pdo_mysql, gd, mbstring 即代表安裝成功。


      6. 掛載項目目錄(讓代碼實時生效)

      上文已將宿主機目錄 ./www 掛載到容器內 /var/www/html,因此:

      • 修改本地 index.php 后,無需重啟容器,刷新網頁即可看到效果;
      • 新建 test.php 文件同樣會被自動加載。

      7. 與數據庫聯動(PHP + MySQL)

      7.1 修改 docker-compose.yml,新增 MySQL 服務

      version: "3.8"
      services:
        php:
          image: xxx.xuanyuan.run/php:8.2-fpm
          container_name: php-fpm
          volumes:
            - ./www:/var/www/html
          restart: unless-stopped
          depends_on:
            - mysql
      
        nginx:
          image: xxx.xuanyuan.run/nginx:latest
          container_name: php-nginx
          ports:
            - "8080:80"
          volumes:
            - ./www:/var/www/html
            - ./nginx.conf:/etc/nginx/conf.d/default.conf
          restart: unless-stopped
      
        mysql:
          image: xxx.xuanyuan.run/mysql:8.0
          container_name: php-mysql
          environment:
            MYSQL_ROOT_PASSWORD: root123
            MYSQL_DATABASE: demo
            MYSQL_USER: appuser
            MYSQL_PASSWORD: app123
          volumes:
            - mysql-data:/var/lib/mysql
          restart: unless-stopped
      
      volumes:
        mysql-data:
      

      7.2 測試數據庫連接

      創建 www/dbtest.php

      <?php
      $dsn = 'mysql:host=mysql;dbname=demo;charset=utf8';
      $user = 'appuser';
      $pass = 'app123';
      
      try {
        $pdo = new PDO($dsn, $user, $pass);
        echo "? 數據庫連接成功";
      } catch (PDOException $e) {
        echo "? 數據庫連接失敗:" . $e->getMessage();
      }
      ?>
      

      訪問:

      http://localhost:8080/dbtest.php
      

      若出現 “? 數據庫連接成功”,說明 PHP 與 MySQL 容器通信正常。


      8. 生產部署建議

      類別 建議配置
      安全 不暴露 8080 端口至公網;通過 Nginx 反代 HTTPS;關閉 phpinfo 頁面
      性能 啟用 OPcache:docker-php-ext-install opcache
      日志 將日志目錄掛載到宿主機(/var/log/nginx/var/log/php
      備份 MySQL 定期 mysqldump 備份;PHP 代碼使用 Git 管理
      監控 使用 docker stats 或 Prometheus 監控 CPU、內存、IO

      9. 常見問題排查

      問題 原因 解決方法
      網頁 502 Bad Gateway PHP 容器未啟動 執行 docker ps 檢查 php-fpm 狀態
      PHP 文件被下載而非解析 Nginx 未正確配置 fastcgi 檢查 nginx.conf 中 fastcgi_pass php:9000
      數據庫連接失敗 主機名寫錯 使用容器名 mysql 而非 localhost
      修改 PHP 文件無效 未掛載宿主目錄 檢查 volumes 是否設置正確
      PHP 擴展未生效 未重啟容器 運行 docker compose restart php

      10. 后續學習路徑

      • 新手:學習 PHP 語法 → 用 Docker 跑 PHP+MySQL → 嘗試 WordPress/Laravel
      • 進階者:研究 PHP-FPM 性能優化 → 使用 Supervisor 管理進程 → 部署 Nginx + PHP + Redis 架構
      • 高級用戶:實現 CI/CD 自動化構建(GitHub Actions + Docker)→ 配置多環境(dev/staging/prod)

      ? 至此,你已成功用 Docker 構建出可運行的 PHP Web 環境。
      該教程從 鏡像拉取 → PHP 環境運行 → 與 Nginx/MySQL 聯動 全流程覆蓋,新手照做即可跑通。

      posted @ 2025-10-17 09:28  源碼舞動  閱讀(70)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 香蕉久久国产精品免| 中文字幕亚洲人妻系列| 欧美成人www免费全部网站| 亚洲小说乱欧美另类| 亚洲熟妇自偷自拍另类| 免费午夜无码片在线观看影院 | 亚洲AV永久无码嘿嘿嘿嘿| 免费观看的av在线播放| 无码中文字幕乱码一区| 色老99久久九九爱精品| 国产精品国语对白露脸在线播放 | 亚洲av永久无码精品网站| 午夜射精日本三级| 新宁县| 久久99精品国产99久久6尤物| 久久99精品久久久学生| 亚洲av日韩av永久无码电影| 国产精品久久久久久久专区| 中文字幕在线精品人妻| 亚洲国产精品无码久久久| 国产乱码精品一区二区三上| 天堂俺去俺来也www色官网| 国产免费午夜福利在线播放| 99久久精品久久久久久婷婷| 91亚洲国产三上悠亚在线播放| 久久青青草原亚洲AV无码麻豆| 精品国精品国自产在国产| 高清国产一区二区无遮挡| 人妻少妇精品无码专区| 精品国内自产拍在线观看| 国产精品女生自拍第一区| 国产精品国产高清国产av| 成人区人妻精品一区二区 | 肉大捧一进一出免费视频| 国产精品成人午夜福利| 亚洲国产青草衣衣一二三区| 男人下部进女人下部视频| 国产精品久久久久久福利| 中文字幕日韩精品有码| 日韩大片看一区二区三区| 亚洲欧美日韩愉拍自拍美利坚|