文章詳情

阿里雲實名認證 阿里雲PHP運行環境配置

阿里雲國際2026-04-26 11:24:38雲折扣充值

前言:為什麼「PHP環境配置」比你想的更像做菜

如果把網站比作一桌料理,那伺服器就是廚房。PHP 就是你切菜的刀:刀不對、刀不快、刀不乾淨,菜再好吃也端不出去。很多人第一次在阿里雲配 PHP,會以為「裝個 PHP 就好了」,結果遇到 502、500、找不到擴充套件、上傳不成功、連時區都不對,最後才發現:真正決定體驗的是整套運行環境配置流程。

這篇文章會用「實際可落地」的方式,帶你完成阿里雲 PHP 運行環境配置。你不需要先是大神,只要願意照著做、願意在遇到錯誤時看日志。相信我,錯誤訊息通常不是故意刁難你,它只是在說:「我早就告訴你哪裡不對了。」

你要先想清楚:你是在做哪一種部署?

阿里雲上跑 PHP,常見路線大概有幾種,你先選對路線,後面才不會一直走回頭路:

  • 使用雲伺服器 ECS + 自行安裝 Nginx/Apache + PHP:最自由、最可控,但也要自己操心配置細節。
  • 使用 Web 體系(如建站/鏡像/一鍵部署):快速上手,對新手友好,缺點是客製化空間較有限。
  • 使用容器(Docker):把環境打包,跨機器一致性強,適合團隊開發與持續部署。

本文以最常見、也最容易碰到「你到底該改哪裡」問題的路線來講:ECS + Nginx + PHP(可搭配 FPM)。如果你走其他方式,核心概念仍然相通:PHP 版本、埠與代理、權限、擴充套件與日志。

步驟一:準備環境資源(ECS、網路與安全群組)

1. 建立或選擇 ECS 實例

登入阿里雲控制台後,建立 ECS 實例。你可以根據預期流量與網站規模選擇規格。新手建議先用中小規格跑通流程,再逐步擴容。

選系統時,通常會選 Linux(例如 CentOS/Ubuntu)。不同發行版的套件管理命令略有差異,但配置檔案的邏輯相似。

2. 檢查安全群組(Security Group)放行埠

常見要放行:

  • 80(HTTP)
  • 443(HTTPS)
  • 22(SSH,用於你登入維護;如果不需要可限制來源 IP)

如果你只開了 80,卻把網域綁成 HTTPS,那你會看到「我已經很努力了但就是不通」的效果。先讓基本路由通起來,事情就順很多。

阿里雲實名認證 步驟二:綁定網域與 DNS(可選,但強烈建議)

如果你已經有網域,建議提前把域名解析好。流程通常是:

  • 阿里雲實名認證 在 DNS 設置 A 記錄指向 ECS 公網 IP
  • 若使用 HTTPS,需要額外配置證書與 Nginx 站點

如果你只是先做測試,可以直接用 IP 访问,等環境跑穩再上線綁域名。反正先把「能跑」搞定最重要。

步驟三:安裝 Nginx(或 Apache)

你可以選擇 Nginx 或 Apache。Nginx 在高併發與反代方面表現不錯,也常搭配 PHP-FPM。下面用 Nginx 為例。

1. 安裝 Nginx

以 Linux 常見套件管理方式安裝 Nginx。概念是:更新套件列表 → 安裝 nginx → 啟動並設定開機自啟。

2. 確認 Nginx 正常運行

打開瀏覽器訪問 http://你的IP/(或在伺服器上 curl),看是否能看到 Nginx 預設頁面。

如果不通,別急著改 PHP。先解決網路、防火牆與 Nginx 基礎服務,否則你會把問題「錯認成 PHP」——這是新手最常犯的錯誤之一。

步驟四:安裝與配置 PHP(重點來了)

PHP 的核心要確定三件事:

  1. PHP 版本要符合你的程式需求
  2. PHP 是透過哪種方式運行(mod_php 或 php-fpm)
  3. 必要的擴充套件是否已安裝、版本是否匹配

1. 安裝 PHP(建議使用 PHP-FPM 與 Nginx)

在現代部署中,Nginx + PHP-FPM 是常見組合。PHP-FPM 負責接收來自 Nginx 的請求,實際執行 PHP 程式;Nginx 只負責靜態資源與轉發。

安裝 PHP 時,你可能需要安裝一些常用擴充套件,例如:

  • 阿里雲實名認證 php-mysqlnd(連接 MySQL/MariaDB)
  • php-gd(圖片處理,許多框架需要)
  • php-curl(呼叫外部 API)
  • php-mbstring(字串多位元組處理)
  • php-xml(XML 解析)
  • php-zip(壓縮檔操作)

當你的專案使用 Composer 或特定擴充套件時,最好直接比對專案文件或 composer.json 要求。

2. 檢查 PHP 是否安裝成功

在網站目錄下建立一個測試檔案,例如 info.php,內容為:

 <?php phpinfo();

用瀏覽器或 curl 訪問該頁面,確認 PHP 版本、載入的模組、時區等資訊都正常。

提示:測試檔案跑通後,請考慮刪掉或限制訪問,因為 phpinfo() 會暴露很多環境資訊。安全上,少一點「讓陌生人知道你家裡藏什麼」會更好。

步驟五:設定 PHP-FPM(讓 Nginx 能正確轉交 PHP)

PHP-FPM 的設定檔通常包含 pool 配置,例如使用者、監聽方式(port 或 unix socket)、以及最大連線等參數。

1. 設定監聽方式:端口 or Unix Socket

常見兩種:

  • 監聽 TCP 端口:例如 9000
  • 監聽 Unix Socket:例如 /var/run/php-fpm/www.sock

兩者都可以。Unix socket 在同機器內通常更有效率,但配置時要注意檔案權限。

2. 調整使用者與群組(權限問題的來源大集合)

常見現象:頁面能打開,但提交表單報錯、上傳失敗、或權限拒絕。這通常就是 PHP-FPM 的執行使用者與網站檔案/目錄權限不一致。

你需要確認:

  • 網站目錄的擁有者/群組
  • PHP-FPM pool 設定的 user/group
  • 需要寫入的目錄(例如 cache、logs、uploads)是否賦予正確權限

務必理解:你不是在「亂改權限」,你是在讓程式能做它需要做的事。

步驟六:配置 Nginx 站點(關鍵:location 對上 PHP)

Nginx 的配置通常有以下幾塊:

  • server 層:域名、根目錄、日誌路徑
  • location 層:靜態資源與 PHP 請求的處理方式

對於 PHP,需要把 *.php 請求轉發到 PHP-FPM。

1. 基本的 Nginx PHP 配置邏輯

你會看到類似下面的思路(以概念示意為主):

  • 設定 root 指向網站根目錄
  • location ~ \.php$ 交給 php-fpm
  • 包含必要的 fastcgi 參數

若你用的是 unix socket,需要把 fastcgi_pass 指到 socket 檔案;若用端口,就指到 127.0.0.1:9000 之類。

2. 防止 PHP 存在但不被執行:常見錯誤排查

阿里雲實名認證 如果你訪問 info.php 還是顯示下載檔案、或直接 404,通常是 Nginx 的 location 正則沒有匹配到,或者根目錄路徑錯了。

你可以:

  • 檢查 Nginx 的 server_name 是否匹配域名或是否用 _ 作為預設
  • 檢查 root 路徑是否正確
  • 檢查 location 是否包含 include fastcgi_params 或等價設定
  • 查看 Nginx error_log(錯誤日誌)

步驟七:設定時區、編碼與常用 PHP 設定

很多人初上線會遇到「時間差兩小時」或者「日誌時間對不上」——這通常不是命運捉弄,是時區沒設好。

1. 設定 date.timezone

建議在 php.ini 或自訂 ini 檔案中設定:

  • 亞洲常見:Asia/Shanghai 或你實際所在時區

若你使用框架(Laravel、ThinkPHP 等),它們可能也有自己的時區設定,但底層 PHP 時區一致會更省心。

2. 調整上傳與執行限制(避免 413/500)

常見需要調整:

  • upload_max_filesize(最大上傳大小)
  • post_max_size(POST 最大大小)
  • max_execution_time(腳本最大執行時間)
  • max_input_vars(輸入變數上限)

遇到上傳失敗時,先看錯誤日誌,通常可以直接定位是 Nginx 限制(如 client_max_body_size)或 PHP 限制。

步驟八:安裝常用 PHP 擴充套件(依專案需求精準添加)

擴充套件這件事,跟零食一樣:多不一定好吃,少也不一定能撐住。建議你根據專案依賴來安裝,不要「什麼都裝」把環境變成雜貨鋪。

1. 典型 Web 專案的擴充套件清單

  • 資料庫:pdo_mysql、mysqli
  • 字串與字元:mbstring
  • 圖片:gd 或 imagick(看你要不要高級功能)
  • 檔案與壓縮:zip、fileinfo
  • 網路請求:curl
  • 日誌與錯誤追蹤:可能需要特定工具或使用框架內建

2. 安裝後別忘了重啟服務

安裝擴充套件後,通常要重啟 php-fpm 與重新載入 Nginx(或至少 reload)。如果你只安裝不重啟,就會出現「我明明裝了但怎麼還是不行?」——是的,你不是幻覺,是服務還在用舊配置。

步驟九:設定目錄權限與檔案擁有者(讓程式有力氣跑)

PHP 許多框架都需要可寫目錄,例如:

  • storage(Laravel 常見)
  • runtime/cache(ThinkPHP 或其他框架常見)
  • uploads(上傳目錄)
  • logs(日誌目錄)

常見做法是:讓目錄擁有者跟 PHP-FPM 執行 user 保持一致,或使用合適的群組權限策略。

1. 權限策略建議(不要走極端)

避免把整個站點設成 777。那是把門鎖拆了再說「反正也沒人」。正確做法是對需要寫入的目錄設置可寫權限,並確保 PHP-FPM 執行者有權寫。

2. 上傳檔案大小與權限雙重檢查

上傳失敗經常同時存在兩種原因:

  • 大小超出限制(Nginx 或 PHP)
  • 無法寫入目錄(權限問題)

錯誤日誌會告訴你是哪一種。如果你只看前端報錯,很容易被帶跑。

步驟十:啟用 Nginx 與 php-fpm 的最佳化(可選,但很香)

等你基本功能跑通後,可以考慮一些提升:

  • 阿里雲實名認證 快取靜態資源(expires、cache-control)
  • 壓縮(gzip 或 brotli)
  • 調整 php-fpm 的 process 管理(pm.max_children、pm.start_servers 等)

新手階段建議先別亂調參數,因為 PHP-FPM 參數涉及吞吐與資源消耗,改錯可能讓你的 CPU 飆起來,然後你會開始懷疑人生與天氣。

步驟十一:HTTPS(加密上線,避免「看起來安全實際不安全」)

當你準備正式對外提供服務,建議配置 HTTPS。

1. 申請或使用證書

阿里雲通常提供證書申請流程。取得證書後,把證書與私鑰路徑填入 Nginx 的 server 配置。

2. Nginx 站點加入 443 設定

常見策略是:

  • 80 端口做重導向到 443
  • 443 提供 TLS 設定與根目錄

完成後使用瀏覽器開發者工具或線上 TLS 檢測確認是否啟用了正確協議與證書鏈。

步驟十二:錯誤日誌與常見錯誤排查(你的「救命通關密語」)

下面給你一份「遇到就查」清單。不要每次都靠猜,日誌永遠是最誠實的同事。

1. 502 Bad Gateway

通常表示 Nginx 轉發到 PHP-FPM 失敗。

  • php-fpm 沒啟動或端口/socket 不存在
  • fastcgi_pass 指向錯誤
  • 權限問題導致無法連 socket

查:/var/log/nginx/error.log(或你配置的 error_log)與 php-fpm 日誌。

2. 500 Internal Server Error

PHP 執行時出錯或配置錯誤常見。

  • PHP 語法錯誤
  • 缺少擴充套件(例如 mysqli、curl)
  • 檔案權限導致無法讀寫

查:PHP error log、framework 的 log(例如 storage/logs)。

3. 404 Not Found(PHP 檔存在卻找不到)

  • root 路徑錯了
  • location 規則未正確設定
  • index.php 路徑或 try_files 設定不對(若使用框架路由)

4. 上傳失敗或圖片不顯示

  • client_max_body_size 或 upload_max_filesize 限制
  • 阿里雲實名認證 目錄權限不允許寫入
  • 目錄 URL 未配置正確(靜態路由/alias)

步驟十三:部署程式(上傳程式碼與確認路由)

當 PHP 環境就緒,你需要把程式碼放到正確目錄。若你使用框架,確保入口檔、public 目錄與 Nginx root 設置一致。

1. 常見框架路由差異

  • Laravel:通常 Nginx root 指向 public 目錄,並支援路由導向。
  • ThinkPHP:可能需要 index.php 作為入口並配置重寫規則。
  • WordPress:需要允許固定連結(permalink)與 .htaccess 等等(若用 Apache)。

如果你在 Nginx 下跑 WordPress/需要重寫規則,別照抄 Apache 的設定;要按照 Nginx 的語法調整。是的,這就是「同一份需求,不同的引擎」導致的差異。

一步到位的小建議:用一份「環境清單」防止你回頭找不到自己做了什麼

在完成配置後,你可以建立一份簡單的清單(手動記錄或保存檔案),包含:

  • PHP 版本與安裝的擴充套件列表
  • Nginx 的 server 配置檔位置、server_name、root
  • php-fpm pool user/group 與監聽方式
  • 時區設定、upload 限制、日誌路徑
  • 安全群組放行埠與防火牆策略

這份清單會在你升級 PHP、換機或修 bug 時救你一次。你會感謝當初那個「多記一步」的自己。

常見升級與維護:PHP 版本更新要注意什麼

PHP 更新常見問題:

  • 某些擴充套件不支援新版本或需要重新編譯安裝
  • 舊框架/舊程式可能不相容
  • 阿里雲實名認證 php.ini 配置項名可能變動

建議做法:先在測試環境(或至少維護時段)升級,並保留上一版本配置檔備份。上線前用自動化測試或至少跑一遍核心功能。

結語:你配置的不是 PHP,是「可控、可維護的運行能力」

阿里雲 PHP 運行環境配置,看起來每一步都不難,但組合起來就會變成一套互相依賴的系統:Nginx 能正確找到網站根目錄,能把 PHP 請求轉到 PHP-FPM,PHP-FPM 能以正確使用者權限執行,PHP 能載入需要的擴充套件,並把錯誤記錄到你看得到的地方。

最後送你一句維運人常用的話:配置不是一次完成的浪漫,是持續調整的日常。 你只要抓住核心原則——版本匹配、路徑正確、權限到位、日志先看——就能把坑踩得很優雅(至少在你心裡是優雅的)。

附錄:快速檢查清單(上線前 60 秒版)

  • nginx 配置檔通過語法檢查(reload 前確認)
  • php-fpm 服務已啟動、監聽端口/socket 正確
  • info.php 可正確顯示 PHP 版本與擴充套件
  • 需要寫入的目錄權限正常(cache/logs/uploads)
  • 上傳大小不超限制(client_max_body_size + upload_max_filesize + post_max_size)
  • 錯誤日誌路徑可用、檢查過一次 500/502 是否有對應訊息
  • 阿里雲實名認證 (上線)HTTPS 已生效、80 有正確重導向(如需要)

如果你照這份清單走一遍,基本就能把「莫名其妙的壞事」提前扼殺。恭喜,你已經把 PHP 環境從「會不會突然炸」升級成「可控、可排查、可維護」。

Telegram售前客服
客服ID
@cloudcup
联系
Telegram售后客服
客服ID
@yanhuacloud
联系