如何在 CentOS 8 Stream 上安裝 PHP 8.1
PHP 8.1是 PHP 语言的重要更新,于 2021 年 11 月 25 日”正式”发布。随着我们从现有的 PHP 8.0 版本前进,这是一个标准升级。新的 PHP 8.1 带来了枚举、纤细、永不返回类型、最终类常量、交集类型、只读属性以及一长串新功能和更改。
在以下教程中,您将学习如何导入 REMI 模块并在 CentOS 8 Stream 上安装 PHP 8.1。
先决条件
- 推荐的操作系统:任何当前的CentOS 8 流
- 用户帐户:根访问权限
更新操作系统
更新您的CentOS Stream作業系統,確保所有現有的套件都是最新的:
sudo dnf upgrade --refresh -y
本教程将使用sudo 命令,并假设您具有 sudo 状态。
要验证您帐户上的 sudo 状态:
sudo whoami
显示 sudo 状态的示例输出:
[joshua@centos-stream ~]$ sudo whoami
root
要設立現有或新的 sudo 帳戶,請參閱我們的教程,了解如何在 CentOS Stream 上為 Sudoers 添加使用者。
要使用root 帐户,请使用以下命令和 root 密码登录。
su
安装 PHP 8.1 Remi 存储库
目前,PHP 8.1 尚未在 CentOS Stream 的 AppStream 中推出,因为它仍然相对较新,并且尚未在 RHEL 的存储库中过滤掉链。但是,您可以从(Remi)存储库安装 PHP,这是一个免费的第三方存储库,用于部署最新的 PHP 8.1 版本。
第一个任务是安装(EPEL)存储库,它代表(Enterprise Linux的额外软件包)。对于 CentOS Stream 和基于 RHEL 的类似发行版的新用户,EPEL 包含企业 Linux 最常用的软件包。
要安装EPEL,请使用以下(dnf)终端命令:
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
输出示例:
键入“Y”,然后按“ENTER键”继续安装。
现在您已经添加了 EPEL 存储库,请使用以下内容启用(Remi 存储库):
sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm
输出示例:
键入“Y”,然后按“ENTER键”继续安装。
您会在终端中注意到一个关于导入 Remi 存储库的(GPG 密钥)的查询。
例:
键入“Y”,然后按“ENTER 键”导入 GPG 键并完成安装。
请注意,您将多次提示x2键入“Y”以导入更多 GPG 密钥。这很好。
启用 PHP 8.1 (Remi) 存储库
PHP 7.2 是 Rhel/CentOS Stream 上使用 Remi 的存储库进行标准安装的默认 PHP 选择。一个快速提示是使用(列出php)命令来查看可用的选项和默认值。
以下 dnf 模块列表命令可以执行此操作:
sudo dnf module list php
您将获得以下输出,如下所示。请注意要安装的默认 PHP 的(d)标记:
例:
如上所示,(d)标签位于PHP 7.2旁边,您需要重置并更改它以安装PHP 8.1。
要重置PHP列表,可以使用以下命令轻松实现:
sudo dnf module list reset php -y
接下来,使用以下命令启用 PHP 8.1:
sudo dnf module enable php:remi-8.1
输出示例:
广告
安装 PHP 8.1
现在您已经添加了 Remi PHP 存储库,并将 PHP 8.1 启用为系统上的默认版本,您可以使用以下命令安装 PHP 8.1:
sudo dnf install php
输出示例:
键入“Y”,然后按“ENTER键”继续安装。
请注意,系统将提示您输入更多GPG 密钥,键入 Y到终端中显示的任何密钥。
如果要安装 PHP 8.1 最常用的扩展,请使用以下命令:
sudo dnf install php-cli php-fpm php-curl php-mysqlnd php-gd php-opcache php-zip php-intl php-common php-bcmath php-imap php-imagick php-xmlrpc php-json php-readline php-memcached php-redis php-mbstring php-apcu php-xml
请注意,删除您不希望的选项,这是可选的。强烈建议仅安装和保留性能和安全标准中所需的模块。
最后,对安装开发分支感兴趣的任何人使用以下命令。
sudo dnf install php-devel -y
这将安装许多依赖项,除非您正在使用PHP进行开发或有一些特殊要求来安装它,否则请不要使用此版本。
现在您已经安装了 PHP 8.1,扩展程序使用以下命令检查版本:
php -v
输出示例:
PHP-FPM PHP 8.1 的安装
与 Debian/Ubuntu 上使用(www-data)用户的 PHP-FPM 安装不同,RHEL 系列安装并非如此。在CentOS Stream上,默认情况下,PHP-FPM服务被设计为运行(Apache)用户,这是不正确的,因为我们使用的是Nginx,这需要纠正。
首先,打开以下(www.conf)配置文件:
sudo nano /etc/php-fpm.d/www.conf
接下来,将(Apache)用户和组替换为(Nginx)用户和组:
例:
要保存,请按(Ctrl+O)然后退出(CTRL+X)。
现在,您也将重新加载或重新启动 PHP-FPM 服务:
sudo systemctl restart php-fpm
Nginx Configurement
Nginx服务器块需要以下示例,以便Nginx处理PHP文件。
以下是处理需要添加位置 ~ .php$的 PHP 文件的所有服务器块的示例。
server {
# … some other code
# Pass the php scripts to FastCGI server specified in upstream declaration.
location ~ \.php(/|$) {
include fastcgi.conf;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
try_files $uri $uri/ /app.php$is_args$args;
fastcgi_intercept_errors on;
}
}
测试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 服务以完成安装。
sudo systemctl restart nginx
评论和结论
在本教程中,您已经学会了如何安装PHP 8.1并配置如何将其与Apache和Nginx一起使用。PHP 8.1 令人兴奋。但是,目前,它仍然不如8.0版本或旧的稳定版7.4稳定,因此请注意,您可能会发现许多您喜欢的软件(如WordPress或CMS软件的插件/主题)可能会发生冲突,直到开发人员可以更新为止。
做一些研究,准备,并安装PHP 7.4或8.0,并在切换时出现任何问题时准备更换。8.0等稳定版本仍在积极开发中,软件包与8.1软件包同时推送。
还没有评论,来说两句吧...