如何在 Rocky Linux 9/8 上安裝 PHP

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 模組和配置可以確保一切順利運作。並且不要忘記在進行任何更改後重新啟動您的服務。

Joshua James
跟我來
Joshua James 的最新帖子 (看全部)

發佈留言