PHP 是一種流行的通用腳本語言,特別適合 Web 開發。它快速、靈活且務實,為從部落格到世界上最受歡迎的網站的一切提供支援。 PHP 為各種資料庫提供了廣泛的支持,使其成為伺服器端腳本編寫的重要工具。
以下指南將示範使用命令列命令在 Rocky Linux 9 或 8 上安裝 PHP 的步驟。安裝方法涉及使用 Remi RPM 儲存庫來取得 PHP 8.1、8.2 和 8.3 的最新穩定版本。
導入 Remi PHP RPM 儲存庫
安裝 PHP 前更新 Rocky Linux
先更新您的 Rocky Linux 系統來準備 PHP 安裝。打開終端機並輸入:
sudo dnf upgrade --refresh
導入 PHP Remi 儲存庫
EPEL 儲存庫設置
EPEL(Extra Packages for Enterprise Linux)對於 Rocky Linux 中的附加軟體包至關重要。以下是在最新 EL9 版本或 EL8 的 Rocky Linux 上安裝 EPEL 的兩個選項。
為 Rocky Linux 9 導入 EPEL
啟用CRB
CRB 提供對更多開發工具的存取。使用:
sudo dnf config-manager --set-enabled crb
安裝 EPEL 儲存庫
要取得 Rocky Linux 9 的最新 EPEL 版本:
sudo dnf install \
https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm \
https://dl.fedoraproject.org/pub/epel/epel-next-release-latest-9.noarch.rpm
合併為 EL 9 設計的 Remi 儲存庫:
sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm -y
為 Rocky Linux 8 導入 EPEL
啟用 PowerTools 儲存庫
PowerTools是PHP開發必備的工具。
sudo dnf config-manager --set-enabled powertools
為 Rocky Linux 8 啟用 EPEL
為 Rocky Linux 8 安裝 EPEL 儲存庫:
sudo dnf install \
https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm \
https://dl.fedoraproject.org/pub/epel/epel-next-release-latest-8.noarch.rpm
導入 Remi EL 8 儲存庫
安裝 EPEL 後,導入包含適用於 EL 8 的 PHP 的 Remi RPM:
sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm -y
從 Remi 儲存庫啟用 PHP (8.x)
驗證 PHP 版本
首先確認 Remi 儲存庫中可用的 PHP 版本。這可確保您能夠存取所需的 PHP 版本。
在終端機中執行:
dnf module list php
如果出現提示,請輸入 (Y) 匯入 Remi 儲存庫的 GPG 金鑰。
選擇您的 PHP 版本
啟用 PHP 8.3
若要安裝 PHP 8.3(穩定的最新版本),請使用:
sudo dnf module enable php:remi-8.3 -y
啟用 PHP 8.2
對於 PHP 8.2,適用於需要此特定版本的應用程式:
sudo dnf module enable php:remi-8.2 -y
啟用 PHP 8.1
要啟用 PHP 8.1,非常適合與某些應用程式相容:
sudo dnf module enable php:remi-8.1 -y
完成 PHP 安裝
安裝 PHP 以支援 Apache 或 Nginx
啟用 Remi PHP 儲存庫後,您可以根據您的 Web 伺服器需求安裝 PHP(Apache 或 Nginx)。
Apache (httpd) PHP 安裝
sudo dnf install php php-cli -y
Nginx PHP 安裝
sudo dnf install php-fpm php-cli -y
驗證 PHP 安裝
透過執行以下命令確認 PHP 安裝:
php -v
PHP 擴充安裝
根據您的專案需求安裝必要的 PHP 擴充功能。避免安裝所有擴充功能以保持最佳效能和安全性。
標準安裝
sudo dnf install php-cli php-fpm php-curl php-mysqlnd php-gd php-opcache php-zip php-intl php-common php-bcmath php-imagick php-xmlrpc php-json php-readline php-memcached php-redis php-mbstring php-apcu php-xml php-dom php-redis php-memcached php-memcache
簡化安裝
對於緊湊安裝命令:
sudo dnf install php-{cli,fpm,curl,mysqlnd,gd,opcache,zip,intl,common,bcmath,imagick,xmlrpc,json,readline,memcached,redis,mbstring,apcu,xml,dom,memcache}
現在,讓我們詳細分析一下每個 PHP 擴充功能的作用:
- php-cli:PHP 命令列介面,有助於在 shell 中執行 PHP 腳本。
- php-fpm:FastCGI 進程管理器,對於處理和服務 PHP 請求很有用。
- php-curl:允許您與不同類型的伺服器和協定進行連接和通訊。
- php-mysqlnd:MySQL Native Driver,用於MySQL資料庫連線。
- php-gd:圖形繪製,對於建立和操作圖像檔案很有用。
- php-opcache:Opcode Cache,用於加速PHP執行。
- php-zip:允許您使用 zip 檔案。
- php 國際化:用於處理國際字元集和語言環境的國際化擴展。
- php 一般:多個 PHP 模組使用的通用檔案和設定。
- php-bcmath:二進制計算器允許任意精度的數學運算。
- php-imagick:提供使用 ImageMagick 庫建立和修改影像的方法。
- php-xmlrpc:允許建立 XML-RPC 伺服器並使發送 XML-RPC 請求變得容易。
- php-json:JSON(JavaScript 物件表示法)擴展,用於編碼和解碼 JSON 資料。
- php-readline:允許從終端機讀取一行資料。
- php-memcached:提供快速、分散式記憶體物件快取。
- php-redis:用於與 Redis 互動的 PHP 擴充功能。
- php-mbstring:用於處理非 ASCII 字串的多位元組字串。
- php-apcu:APC User Cache,基於APC的使用者態快取擴充。
- PHP-XML:XML解析器,用於解析XML文件。
- php-dom:文檔物件模型,以物件導向的方式操作 XML 文件。
- php-memcache:為 memcached 提供方便的流程和物件導向的介面。
- php-soap:用於編寫 SOAP 伺服器和客戶端。
- PHP-LDAP:用於存取和管理目錄資訊的輕量級目錄存取協定。
- PHP-PDO:PHP Data Objects,資料庫存取層,為多個資料庫提供統一的存取方法。
您可以使用以下命令隨時查看已載入的模組。
php -m
建議定期監控並刪除不必要的模組以提高效能效率。
安裝PHP開發工具
出於開發目的,請安裝 PHP 開發分支和調試工具:
PHP開發分部
sudo dnf install php-devel
PHP 偵錯工具
sudo dnf install php-xdebug php-pcov
需要注意的是,安裝此版本會引入多個依賴項,除非您在 PHP 開發中有特定需求或有任何特殊要求,否則不建議這樣做。
在 Rocky Linux 上設定 PHP-FPM Nginx 用戶
調整 Nginx 的 PHP-FPM
基於 RHEL 的發行版(例如 Rocky Linux)預設使用 PHP-FPM 的「Apache」用戶,這不適合 Nginx 設定。為了獲得 Nginx 的最佳功能,必須對其進行修改。
編輯 PHP-FPM 配置
開啟設定檔
訪問 www.conf
供編輯的文件:
sudo nano /etc/php-fpm.d/www.conf
修改使用者和群組設定
在檔案中將 Apache 使用者和群組變更為 Nginx。
修改後:
按 (CTRL+O) 儲存更改,然後按 (CTRL+X) 退出。
重新啟動 PHP-FPM 服務
修改配置後,重新啟動 PHP-FPM 以套用變更:
sudo systemctl restart php-fpm
Nginx PHP-FPM 伺服器區塊程式碼範例
設定 Nginx 進行 PHP 處理
要使 Nginx 能夠處理 PHP 文件,必須正確配置伺服器區塊。以下範例示範了必要的設置 server{}
用於處理 PHP 檔案的區塊。
Nginx PHP-FPM 配置
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
驗證 Nginx 配置
更新配置後,驗證它以確保沒有語法錯誤。
sudo nginx -t
預期輸出應確認配置正確:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
重啟 Nginx 服務
若要套用更改,請重新啟動 Nginx 服務:
sudo systemctl restart nginx
此重新啟動對於更改以及 Nginx 開始使用新配置處理 PHP 檔案至關重要。
結論
好了,我們的旅程就到此結束了!我們已經在 Rocky Linux 上成功設定了 PHP,針對 Apache 或 Nginx 進行了調整,並對 PHP-FPM 進行了微調以獲得最佳效能。請記住,定期檢查 PHP 模組和配置可以確保一切順利運作。並且不要忘記在進行任何更改後重新啟動您的服務。