1. 前言
為什麼在 Ubuntu 上使用 PHP?
PHP 是一種伺服器端的腳本語言,被廣泛應用於 WordPress 及各種 Web 應用程式開發。特別是在網站開發領域,長期以來都是主流選擇,許多 CMS 與框架都是以 PHP 為基礎建構而成。
Ubuntu 是一個高度穩定且全球開發者都愛用的 Linux 發行版,非常適合伺服器環境。結合 Ubuntu 和 PHP,無論是個人開發還是企業級正式環境,都能靈活運用。
本篇文章的目標讀者與目的
本教學針對「想在 Ubuntu 安裝 PHP,但不知道如何開始」的新手,以及「希望安裝特定 PHP 版本」的進階用戶,提供詳細且易懂的操作步驟說明。
本文以 Ubuntu 22.04 LTS 版本為例,但基本步驟在其他版本(如 20.04 或 23.10)也大致相同。
閱讀本文後你將學會什麼?
閱讀後,你將能夠理解與實作以下內容:
- 在 Ubuntu 上安裝 PHP 的基本方法
- 如何安裝與切換多個 PHP 版本
- PHP 運作確認與常見故障排除方式
- 與 Apache 或 Nginx 的整合設定方法
- 常用 PHP 模組的安裝方式
2. 安裝前的準備與前提條件
如何確認 Ubuntu 版本?
首先,請確認自己使用的 Ubuntu 版本。不同版本的安裝方法與可用模組可能略有差異。
可執行下列指令來查詢版本:
lsb_release -a
或者,也可使用下列指令取得版本資訊:
cat /etc/os-release
本篇以 Ubuntu 22.04 LTS 為範例,但 20.04、23.10 等版本基本操作步驟也相同。
將系統套件更新至最新
安裝 PHP 前,建議先將系統套件升級至最新狀態,以避免依賴衝突或錯誤。請執行以下指令進行升級:
sudo apt update
sudo apt upgrade -y
這樣 APT 套件管理員會更新索引,確保能安裝最新版套件。
安裝必要工具
有些 PHP 版本安裝時,需要「software-properties-common」這個套件來新增 repository 或管理套件。尚未安裝時,請先執行以下指令:
sudo apt install -y software-properties-common
此套件能讓你使用 add-apt-repository
指令,安裝 PHP 特定版本時(如使用 PPA)非常方便。
root 權限或 sudo 指令的使用
本文多數操作涉及系統變更,需要使用 sudo
執行指令。如果不熟悉,建議先了解 sudo
的基本用法。
3. PHP 的安裝方法
在 Ubuntu 上安裝 PHP 主要有兩種方式:一種是從官方標準軟體庫安裝,另一種是新增 PPA(Personal Package Archive)指定版本安裝。下面分別說明操作流程。
從標準套件庫安裝 PHP
Ubuntu 官方套件庫中,提供穩定的 PHP 版本。如果對版本沒有特別需求,可以直接使用以下指令:
sudo apt install -y php
安裝完成後,執行以下指令確認 PHP 是否正確安裝:
php -v
範例:
PHP 8.1.2 (cli) (built: ...)
Ubuntu 22.04 預設提供的是 PHP 8.1。
利用 PPA 安裝特定 PHP 版本
若有「想用最新 PHP」、「需要多版本切換」等需求,可新增 ondrej/php PPA,選擇所需版本安裝。
步驟 1:新增 PPA repository
sudo add-apt-repository ppa:ondrej/php
sudo apt update
此 repository 在 Ubuntu 社群非常普遍,能獲得各 PHP 版本穩定的官方支援。
步驟 2:安裝所需 PHP 版本
例如想安裝 PHP 8.2,可以這樣執行:
sudo apt install -y php8.2
同理,亦可安裝 PHP 7.4、8.0 等其他版本。
步驟 3:確認安裝版本
php -v
如安裝成功,即會顯示該版本資訊。
4. 確認 PHP 是否正確運作
PHP 安裝完成後,需檢查是否運作正常。Ubuntu 可透過 CLI(終端機)或 Web 伺服器(Apache、Nginx)確認。以下介紹各種檢查方法。
在終端機(CLI)確認
先以指令顯示 PHP 版本,確認 CLI 可正常運作:
php -v
若可正確顯示版本與編譯資訊,代表 CLI 上沒問題。
範例輸出:
PHP 8.2.10 (cli) (built: Aug 23 2023 08:12:10) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.2.10, Copyright (c) Zend Technologies
透過 Web 伺服器檢查(以 Apache 為例)
若有安裝 Apache,可建立 phpinfo()
測試頁確認 PHP 整合是否正常。
1. 建立測試檔案
在 Apache 網頁根目錄(預設 /var/www/html
)建立 PHP 檔:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
2. 使用瀏覽器確認
用瀏覽器打開以下網址(本機環境):
http://localhost/info.php
3. 確認顯示內容
若可顯示詳細 PHP 資訊,代表 Apache 可正確執行 PHP。
🔍 補充:
phpinfo()
會顯示敏感資訊,確認無誤後請記得刪除info.php
檔案。
sudo rm /var/www/html/info.php
Nginx + PHP-FPM 整合檢查
Nginx 需透過 php-fpm
處理 PHP。設定正確時,可與 Apache 一樣建立 info.php
檔進行確認。若出現 500 錯誤或直接下載,需檢查 Nginx 設定的 fastcgi_pass
或 include fastcgi-php.conf;
。
5. 常用 PHP 模組安裝方式
僅安裝 PHP 本體無法啟用所有功能。多數功能由「模組(擴充套件)」提供,需視需求額外安裝。以下介紹常用的 PHP 模組。
什麼是 PHP 模組?
PHP 模組(擴充套件)用來補充資料庫連線、多字元處理、圖片處理、XML 處理等功能。
模組以 APT 套件方式提供,安裝方式如下:
sudo apt install php-模組名稱
如需指定版本,例如 php8.2-mbstring
。

常見 PHP 模組與用途
php-mbstring(多字元處理)
處理日文等多字元文字時必備,如日文網站、郵件處理等。
sudo apt install php-mbstring
php-mysql(MySQL/MariaDB 連線)
連接 MySQL、MariaDB 等資料庫必需,WordPress 等需用到資料庫的應用程式必裝。
sudo apt install php-mysql
php-gd(圖片處理)
處理圖片生成、轉換、縮圖等功能常用。
sudo apt install php-gd
php-xml(XML 處理)
操作 RSS、SOAP 等 XML 資料必備,CMS、API 整合常見。
sudo apt install php-xml
php-curl(HTTP 通訊)
需與外部 API 通訊時常用,現今多數框架也預設需要。
sudo apt install php-curl
php-zip(壓縮檔處理)
需處理 ZIP 壓縮/解壓檔案時必備,與檔案上傳功能常搭配。
sudo apt install php-zip
啟用模組並重啟服務
部分模組需安裝後手動啟用,請用 phpenmod
指令:
sudo phpenmod 模組名稱
sudo systemctl restart apache2
啟用後請重新啟動 Web 伺服器。
6. PHP 多版本管理與切換
在 Ubuntu 上可同時安裝多個 PHP 版本,便於開發環境或多網站伺服器需求。以下介紹 CLI 與 Apache 切換 PHP 版本方法。
在 CLI 切換 PHP 版本
用 update-alternatives
指令
Ubuntu 可透過 update-alternatives
指令,輕鬆切換 CLI 使用的 PHP 版本。
步驟 1:查詢已安裝 PHP 版本
ls /usr/bin/php*
步驟 2:用 update-alternatives
註冊 PHP 版本(首次時)
sudo update-alternatives --install /usr/bin/php php /usr/bin/php7.4 74
sudo update-alternatives --install /usr/bin/php php /usr/bin/php8.2 82
步驟 3:選擇使用版本
sudo update-alternatives --config php
執行後會出現選擇畫面,輸入欲切換的版本編號即可。
步驟 4:確認切換結果
php -v
在 Apache 切換 PHP 版本
Apache 可透過啟用/停用不同版本的 PHP 模組來切換。
1. 查詢可用 PHP 模組
ls /etc/apache2/mods-available | grep php
2. 停用目前啟用的版本
sudo a2dismod php7.4
3. 啟用新版本
sudo a2enmod php8.2
4. 重新啟動 Apache 使變更生效
sudo systemctl restart apache2
如此可同時切換 CLI 與 Apache 執行的 PHP 版本。
7. Apache 與 Nginx 的 PHP 整合設定
PHP 必須與 Web 伺服器結合才能運行網站。Ubuntu 常見伺服器有 Apache 及 Nginx,以下分別說明設定方法。
Apache 整合(mod_php 模組)
Apache 透過 mod_php
可直接處理 PHP 檔案,設定簡單,適合 WordPress 等 CMS。
步驟 1:安裝 Apache 與 mod_php
sudo apt install -y apache2 libapache2-mod-php
安裝 libapache2-mod-php
後,Apache 即可執行 PHP 檔。
步驟 2:重啟 Apache
sudo systemctl restart apache2
步驟 3:建立 PHP 測試檔並驗證
於 /var/www/html
建立 test.php
檔,內容如下,並用瀏覽器訪問:
<?php
phpinfo();
?>
訪問網址:
http://localhost/test.php
Nginx 整合(PHP-FPM)
Nginx 本身無法直接執行 PHP,需透過 PHP-FPM (FastCGI Process Manager)協同運作。
步驟 1:安裝 Nginx 與 PHP-FPM
sudo apt install -y nginx php-fpm
步驟 2:編輯 Nginx 設定檔
一般編輯 /etc/nginx/sites-available/default
:
sudo nano /etc/nginx/sites-available/default
加入以下設定段落:
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}
步驟 3:重啟 Nginx
sudo systemctl restart nginx
步驟 4:用 PHP 檔案驗證是否成功
同 Apache,建立 /var/www/html/test.php
,用瀏覽器訪問檢查。
補充:防火牆(UFW)設定(如有需要)
若使用 UFW,可執行下列指令允許網頁伺服器通訊:
sudo ufw allow 'Apache Full'
# 或者
sudo ufw allow 'Nginx Full'
一般來說 Apache 設定簡單,Nginx 效能優越。可依用途選擇並確保正確整合 PHP。
8. 常見問題與故障排除
即使正確安裝 PHP,遇到設定錯誤或環境問題時也可能無法正常運作。以下彙整常見問題與解決方式。
PHP 無法正確執行(網頁顯示原始碼)
原因
Apache 或 Nginx 沒有正確處理 PHP,導致直接輸出檔案內容,通常是 PHP 模組或 FastCGI 設定有誤。
解決方法
- Apache:
確認libapache2-mod-php
已安裝並啟用,再重啟 Apache。
sudo apt install libapache2-mod-php
sudo systemctl restart apache2
- Nginx:
確認php-fpm
安裝正確,並檢查 Nginx 設定的fastcgi_pass
路徑是否正確。
sudo systemctl restart php8.2-fpm
sudo systemctl restart nginx
某些 PHP 功能(函數)無法使用
原因
缺少必要 PHP 模組,或未啟用。
解決方法
- 安裝對應模組(如
mbstring
、xml
、curl
等)。
sudo apt install php-mbstring php-xml php-curl
- 啟用模組後請重啟 Web 伺服器。
sudo systemctl restart apache2 # 或 nginx
- 查詢已啟用模組清單:
php -m
PHP 錯誤訊息未顯示於畫面
原因
預設 PHP 不會將錯誤訊息顯示在畫面上。
解決方法
請編輯 php.ini
,調整錯誤顯示設定。
sudo nano /etc/php/8.2/apache2/php.ini
找到並修改以下設定:
display_errors = On
error_reporting = E_ALL
修改後請重啟 Web 伺服器。
sudo systemctl restart apache2
如何查詢錯誤日誌
Apache:
/var/log/apache2/error.log
Nginx:
/var/log/nginx/error.log
PHP-FPM 日誌(Nginx 配合時):
/var/log/php8.2-fpm.log
可查詢這些日誌協助排查問題:
sudo tail -f /var/log/apache2/error.log
發生錯誤時,建議依「查看日誌 → 檢查設定 → 重啟伺服器」的順序冷靜排解。
9. 結論
本文以「在 Ubuntu 安裝 PHP」為主題,從基礎到進階完整教學,整理重點如下,並建議你可進一步學習下列主題。
重點回顧
- 確認 Ubuntu 版本與準備工作
安裝 PHP 前,須確認作業系統版本與升級套件。 - 兩種 PHP 安裝方式
可從官方軟體庫直接安裝,也能透過 PPA 選擇特定版本。 - 安裝後進行運作確認
用php -v
或phpinfo()
檢查 CLI 與網頁運作。 - 活用常用模組擴充功能
根據需求安裝php-mbstring
、php-mysql
等常用模組。 - 支援多版本切換
利用update-alternatives
與 Apache 模組切換靈活操作。 - 正確整合 Apache / Nginx
依所用伺服器調整設定,是穩定運作關鍵。 - 遇到問題查詢日誌
若出現無法顯示或功能異常,請優先查詢錯誤日誌。
進階學習推薦
成功安裝 PHP 後,建議進一步學習:
- MySQL(MariaDB)安裝與資料庫連線
- WordPress 的安裝與架設
- Laravel 等 PHP 框架安裝
- HTTPS 支援(Let’s Encrypt SSL 憑證設定)
- 自動啟動與服務管理(善用 systemd)
靈活運用這些技術,就能打造更完整的網站服務。Ubuntu 與 PHP 是打造高穩定、高彈性開發環境的絕佳組合,歡迎活用本教學持續提升技能!
10. 常見問題(FAQ)
整理安裝與設定 Ubuntu PHP 時常被搜尋的問題,並用淺顯易懂的方式回答:
Q1. 要怎麼在 Ubuntu 安裝最新版 PHP?
A1.
官方軟體庫不一定有最新版本。想用新版本,請先加入可信賴的 ondrej/php
PPA,再安裝指定版本:
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.2
Q2. 如何在 CLI 切換已安裝的 PHP 版本?
A2.
安裝多個版本後,可用 update-alternatives
切換:
sudo update-alternatives --config php
選擇欲切換版本的編號即可。
Q3. Apache 開啟 PHP 檔案時顯示原始碼怎麼辦?
A3.
表示 Apache 沒有正確處理 PHP。請確認 libapache2-mod-php
模組已啟用並重啟服務:
sudo apt install libapache2-mod-php
sudo systemctl restart apache2
Q4. PHP 設定檔(php.ini)在哪裡?
A4.
CLI 與 Web 伺服器用路徑不同,常見如下:
- Apache 用:
/etc/php/8.2/apache2/php.ini
- CLI 用:
/etc/php/8.2/cli/php.ini
依 PHP 版本調整路徑。
Q5. 如何啟用 PHP 擴充模組?
A5.
安裝後可用 phpenmod
指令啟用:
sudo phpenmod mbstring
sudo systemctl restart apache2
啟用後請記得重啟 Web 伺服器。
Q6. Nginx 運作 PHP 時需要注意哪些設定?
A6.
Nginx 必須用 php-fpm
執行 PHP,請確認設定檔中的 fastcgi_pass
是否正確:
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}
請依 PHP 版本調整 .sock 路徑。
Q7. PHP 錯誤訊息沒有顯示,該如何設定?
A7.
預設 php.ini
為 display_errors = Off
。開發時可暫時改成:
display_errors = On
error_reporting = E_ALL
設定後需重啟 Web 伺服器。
以上為 Ubuntu PHP 安裝與設定常見問答,掌握這些重點可助你有效排除問題。