Docker 應用安裝腳本

install_php72_base_docker.sh

一個託管在 helper.sh 的腳本,會建立 /data/php7.2 目錄結構、寫入基礎 php.ini、拉取 php:7.2-fpm,並以宿主機掛載目錄的方式啟動容器。

一鍵命令

curl -fL 'https://www.helper.sh/install_php72_base_docker.sh' -o './install_php72_base_docker.sh'

此命令只會下載本站檔案,不會執行。請先檢查儲存的原始碼並核對版本,再決定是否執行。

核對已下載檔案

與本頁面建置時內建的確切位元組比較。檔案僅在目前分頁處理,此工具不上傳、不持久儲存檔案。上限2 MiB。

預期 SHA-256
16e8a4eadeee92eb8c1cef84932dbeaf10bacb92e43a7003f632e6a0b3204b9b

內建檔案位元組數: 4402

儲存校驗檔案

將腳本與校驗檔案儲存在同一目錄。Linux 安裝 GNU Coreutils 後可用下方命令僅檢查位元組,不執行腳本;使用此命令時需保留原檔名。

sha256sum --check './install_php72_base_docker.sh.sha256'

尚未比較。

校驗值與腳本來自同一網站,不是獨立簽章。一致不證明安全、上游相依項目真實可信或適合本機;可變遠端相依項目需單獨審閱。

查看驗證與限制

執行要求

  • Linux 主機
  • Docker 已安裝並運行
  • 需要 root 權限或 sudo
  • 9000 埠可用
  • /data 目錄可寫

適用場景

  • 在已具備 Docker 環境的主機上快速啟動一個 PHP 7.2 執行環境
  • 把 PHP 程式碼、設定與日誌統一保存在 /data/php7.2 下
  • 為仍然依賴 PHP 7.2 的舊專案提供標準化的啟動入口,再視需要接入 Nginx

腳本亮點

  • 自動建立 /data/php7.2/www、conf.d 與 logs
  • 拉取 php:7.2-fpm 並以可自動重啟的容器方式運行
  • 寫入一份帶實用預設值的基礎 php.ini
  • 預設提供一個占位 index.php 方便立即驗證執行環境

推薦流程

  1. 先確認 Docker 已安裝可用,且宿主機的 9000 埠沒有被占用。
  2. 使用 sudo 或 root 執行 helper.sh 提供的一鍵命令。
  3. 等待腳本準備 /data/php7.2、拉取 php:7.2-fpm,並建立容器。
  4. 如果後續需要對外提供 HTTP 存取,再把 Nginx 或其他 Web 伺服器接到這個 PHP-FPM 容器前面。

安全提示

  • PHP 7.2 已屬於舊版本軟體,請只在相容性確實需要時使用。
  • 不要在沒有前置 Web 服務審閱和修補方案的情況下把舊版 PHP 直接暴露到公網。
  • 如果這是正式實例,替換或重建容器前請先備份 /data/php7.2。

相容範圍與限制

  • 需要 Linux、systemd、Docker 與 root 權限;預設發布 9000 埠。PHP 7.2 已停止支援,僅在舊應用確實需要相容時使用。
  • 腳本接受 --data-dir、--container-name 與 --port。啟動的是 PHP-FPM,不是 HTTP 伺服器;需使用經審查的 Web 伺服器與內網連線,不要公開 FPM 埠。
  • 沒有 dry-run 或備份。重跑時會強制刪除同名容器再替換;主機 bind mount 目錄會繼續沿用。

受影響的檔案、服務與資料

  • 建立 /data/php7.2/www、conf.d 與 logs。只有 php.ini 或範例 index.php 不存在時才寫入。
  • Docker 未執行時會啟動它,拉取可能變動的 php:7.2-fpm 標籤,將主機 9000 埠對應至容器 9000,並建立自動重啟容器。
  • 主機目錄中的既有檔案會保留並掛載進容器。就緒檢查會執行 `php -v`,沒有驗證 Web 伺服器能否透過 FPM 傳送請求。

唯讀核驗

  • 檢查 `docker ps --filter name=php72` 與 `docker logs --tail 100 php72`。
  • 以 `docker inspect php72 --format '{{json .HostConfig.PortBindings}} {{json .Mounts}}'` 檢查埠發布與掛載。
  • 執行 `docker exec php72 php -v` 查看執行環境;透過已設定的內網 Web 伺服器上游另外驗證 FPM 連線。

失敗後的下一步

容器未就緒時檢查 Docker 日誌、埠衝突及 /data/php7.2 下的檔案。不要把 `php -v` 當成 HTTP 網站正常提供服務的證明;重試前先保全掛載檔案。

先下載、審閱並核對版本,再決定是否執行。雜湊只能識別這一版位元組,不能證明安全。pipe 命令會立即執行遠端內容;上游依賴也可能變動。

相關專題

Docker 服務:檢查介面與保留狀態

按協定、資料目錄與取代影響區分 HTTP、SQL、快取、FastCGI 或映像內應用。

查看專題

舊 PHP:區分執行階段相容性與應用就緒

PHP 7.2/Workerman 3.5.24 範例用於有升級計畫的遺留相容工作。

查看專題