網站搜尋

在 Rocky 8|CentOS 8|Alma 8 安裝 PHP 8.1


在這篇短博客文章中,我們將集中討論如何在 Rocky Linux 8|CentOS 8 上安裝 PHP 8.1。PHP 是一種非常強大且開源的伺服器腳本語言,旨在使動態和互動式網頁的創建變得有趣。PHP 是微軟 ASP 等競爭產品的替代方案。這種程式語言最初由丹麥-加拿大程式設計師 Rasmus Lerdorf 於 1994 年創建。

PHP 8.1 是其前一版本 PHP 編程語言版本 8.0 的更新。如果你準備好測試這個新的 PHP 版本,那麼這篇文章非常適合你。最強大的內容管理系統如 Drupal、WordPress 和 Joomla 都是由 PHP 提供動力的。PHP 8.1 帶來了一系列新功能、性能改進、變更和棄用功能。

PHP 8.1 的新功能

  • 列舉型別 – 它們現在已在 PHP 8.1 中新增
  • 唯讀屬性 – 類別屬性可以標記為唯讀,因此只能被寫入一次
  • 永不返回型別 – 在 PHP 8.1 中新增了一種名為 never 的返回型別提示
  • 支援 DNS-over-HTTPS (DoH)
  • AVIF 圖像格式支援 – PHP 8.1 的影像處理與 GD 擴充功能新增了對 AVIF 圖像的支援。
  • 新增對 Fibers 的支持 – 管理平行處理的底層機制
  • 使用 CURLStringFile 的檔案上傳 – 在 PHP 8.1 中,PHP Curl 擴展現在支援帶檔案上傳的 HTTP(S) 請求
  • 新增純交集類型功能
  • PHP 8.1 新增了 array_is_list 作為內建函式
  • 明確八進位數字表示法
  • 新的 fdatasync() 和 fsync() 函數
  • 定義最終類別常數
  • 在許多其他新功能和棄用項目之中

在 Rocky 8/CentOS 8/AlmaLinux 8 安裝 PHP 8.1

在接下來的章節中,我們將專注於在 Rocky Linux 8|CentOS 8 上逐步安裝 PHP 8.1。基於 RHEL 8 的系統附帶了一些 PHP 版本,可在 AppStream 倉庫中找到,並可使用下列命令進行檢查:

$ sudo dnf module list php
Last metadata expiration check: 0:00:05 ago on Sat 20 Nov 2021 10:32:10 AM UTC.
Rocky Linux 8 - AppStream
Name                                   Stream                                     Profiles                                                     Summary
php                                    7.2 [d]                                    common [d], devel, minimal                                   PHP scripting language
php                                    7.3                                        common [d], devel, minimal                                   PHP scripting language
php                                    7.4                                        common [d], devel, minimal                                   PHP scripting language

對於 PHP 8.1,我們將使用 Remi RPM 軟體庫,它包含了適用於基於 RHEL 的系統(如 CentOS、Rocky Linux、AlmaLinux、Fedora 等)的 PHP 新套件。

1) 添加 Remi YUM 軟體庫

在將 Remi YUM 倉庫添加到我們的系統之前,我們需要先啟用 EPEL 倉庫。

sudo dnf -y install epel-release
sudo dnf config-manager --set-enabled powertools

在將 EPEL 和 PowerTools 存儲庫添加到系統後,接著啟用 Remi YUM 存儲庫:

sudo dnf -y install https://rpms.remirepo.net/enterprise/remi-release-8.rpm

確認所有新增的倉庫都是啟用的:

$ sudo dnf -y makecache
$ sudo dnf -y repolist
repo id                                                                     repo name
appstream                                                                   Rocky Linux 8 - AppStream
baseos                                                                      Rocky Linux 8 - BaseOS
epel                                                                        Extra Packages for Enterprise Linux 8 - x86_64
epel-modular                                                                Extra Packages for Enterprise Linux Modular 8 - x86_64
extras                                                                      Rocky Linux 8 - Extras
powertools                                                                  Rocky Linux 8 - PowerTools
remi-modular                                                                Remi's Modular repository for Enterprise Linux 8 - x86_64
remi-safe                                                                   Safe Remi's RPM repository for Enterprise Linux 8 - x86_64

系統應該新增 PHP 模組

$ sudo dnf module list php
Last metadata expiration check: 0:00:05 ago on Sat 20 Nov 2021 10:32:10 AM UTC.
Rocky Linux 8 - AppStream
Name                                   Stream                                     Profiles                                                     Summary
php                                    7.2 [d]                                    common [d], devel, minimal                                   PHP scripting language
php                                    7.3                                        common [d], devel, minimal                                   PHP scripting language
php                                    7.4                                        common [d], devel, minimal                                   PHP scripting language
php                                    8.0                                        common [d], devel, minimal                                   PHP scripting language
Remi's Modular repository for Enterprise Linux 8 - x86_64
Name                                   Stream                                     Profiles                                                     Summary
php                                    remi-7.2                                   common [d], devel, minimal                                   PHP scripting language
php                                    remi-7.3                                   common [d], devel, minimal                                   PHP scripting language
php                                    remi-7.4                                   common [d], devel, minimal                                   PHP scripting language
php                                    remi-8.0                                   common [d], devel, minimal                                   PHP scripting language
php                                    remi-8.1                                   common [d], devel, minimal                                   PHP scripting language
php                                    remi-8.2                                   common [d], devel, minimal                                   PHP scripting language
php                                    remi-8.3                                   common [d], devel, minimal                                   PHP scripting language

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

2) 安裝 PHP 8.1 套件

在啟用並確認所需的倉庫可用後,我們現在可以在 Rocky Linux 8 或 CentOS 8 上安裝 PHP 8.1。

讓我們重置 AppStream 儲存庫中的 PHP 預設模組:

sudo dnf -y module reset php

以 sudo 使用者身份執行以下命令以啟用 PHP 8.1 的 Remi 軟體庫:

sudo dnf module install php:remi-8.1

確認套件相依性並繼續從 Remi 軟體庫安裝 PHP 8.1

....
Transaction Summary
======================================================================================================================================================================================================
Install  9 Packages

Total download size: 9.7 M
Installed size: 45 M
Is this ok [y/N]: y

在安裝過程中,系統會要求你接受匯入某些封包簽署的 GPG 金鑰。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                                  12 MB/s | 9.7 MB     00:00
Remi's Modular repository for Enterprise Linux 8 - x86_64                                                                                                             3.0 MB/s | 3.1 kB     00:00
Importing GPG key 0x5F11735A:
 Userid     : "Remi's RPM repository <[email >"
 Fingerprint: 6B38 FEA7 231F 87F5 2B9C A9D8 5550 9759 5F11 735A
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-remi.el8
Is this ok [y/N]: y

讓我們看看系統上安裝的 PHP 版本:

$ php --version
PHP 8.1.25 (cli) (built: Oct 24 2023 21:51:16) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.1.25, Copyright (c) Zend Technologies

3) 安裝 PHP 8.1 擴展

PHP 擴展幫助你避免為多個 PHP 應用程式從零開始重複編寫相同的程式碼。你只需安裝擴展,然後在你的應用程式中連接它即可。你可以輕鬆使用公開可用的擴展,並可透過以下命令語法進行安裝:

sudo yum install php-xxx
  • 其中 xxx 是擴展名稱。

以下是安裝常用 PHP 擴展的指令:

sudo dnf install php php-cli php-{curl,json,zip,fpm,gd,mysqlnd,devel,mcrypt,mbstring,xml,pear,bcmath,memcache,redis}

接受安裝提示以繼續:

Transaction Summary
======================================================================================================================================================================================================
Install  73 Packages

Total download size: 78 M
Installed size: 208 M
Is this ok [y/N]: y

檢查所有可用的 PHP 擴充功能:

$ php --modules
[PHP Modules]
bcmath
bz2
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gd
gettext
hash
iconv
igbinary
json
libxml
mbstring
mcrypt
memcache
msgpack
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
redis
Reflection
session
shmop
SimpleXML
sockets
sodium
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tokenizer
xml
xmlreader
xmlwriter
xsl
Zend OPcache
zip
zlib

[Zend Modules]
Zend OPcache

4) 運行多個版本的 PHP

軟體集合是運行多個版本 PHP 的最佳方式。php81 集合可在 remi-safe 存儲庫中獲得,並可使用以下命令安裝:

sudo dnf install php81

可以使用以下命令安裝其他附加套件:

sudo dnf install php81-php-xxx

檢查 PHP 8.1 版本

$ php81 --version
PHP 8.1.25 (cli) (built: Oct 24 2023 21:51:16) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.1.25, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.25, Copyright (c), by Zend Technologies

列出 PHP 8.1 的啟用模組

$ php81 --modules
[PHP Modules]
bz2
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gettext
hash
iconv
json
libxml
mbstring
openssl
pcntl
pcre
PDO
pdo_sqlite
Phar
readline
Reflection
session
SimpleXML
sockets
sodium
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
xsl
Zend OPcache
zlib

[Zend Modules]
Zend OPcache

這就是我們關於如何在 Rocky Linux 8、CentOS 8 或 AlmaLinux 8 上安裝 PHP 8.1 的指南的全部內容。我們希望您喜歡,並隨時歡迎您提出意見。如果在安裝過程中遇到任何問題,請隨時在評論區或通過電子郵件與我們聯繫。乾杯!

推薦閱讀的網頁開發書籍:

  • 學習網頁開發的最佳書籍 – PHP、HTML、CSS、JavaScript 和 jQuery
  • 精通網頁設計的最佳書籍
  • 學習 CSS 與 CSS3 的最佳書籍
  • 學習 HTML 與 HTML5 的最佳書籍
  • 最佳 Apache 與 Nginx 參考書籍