如何在 CentOS Stream 9 上安装 PHP

PHP 是一种广泛使用的服务器端脚本语言,专为 Web 开发而设计,但也用作通用编程语言。它特别适合创建动态和交互式网站。安装最新版本的 PHP(例如 8.3、8.2 或 8.1)可确保您能够访问最新功能、性能改进和安全补丁。在 CentOS Stream 9 上,您可以使用 Remi RPM 存储库轻松安装这些版本,该存储库以提供最新的 PHP 软件包而闻名。

本指南将引导您完成启用 Remi 存储库并在 CentOS Stream 9 上安装最新 PHP 版本的过程。

在 CentOS 上导入 Remi PHP RPM

在安装 PHP 之前更新 CentOS Stream

首先更新您的 CentOS Stream 系统以确保所有现有软件包都是最新的,这一点至关重要。此步骤对于系统稳定性和安全性至关重要。

打开终端并执行以下命令来更新您的系统:

sudo dnf upgrade --refresh

此命令将刷新您的软件包数据库并将所有已安装的软件包升级到其最新可用版本。

导入 Remi PHP RPM 存储库

Remi PHP 存储库是提供最新 PHP 版本的第三方存储库。在添加 Remi 存储库之前,您必须安装 EPEL 存储库,它为 Enterprise Linux 提供额外的软件包。

首先,建议启用 CodeReady Linux Builder (CRB) 存储库,尽管这是可选的。它提供了额外的开发人员工具和库。使用以下命令启用 CRB:

sudo dnf config-manager --set-enabled crb

启用 CRB 后,使用以下命令安装 EL9 的 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

最后,导入 EL9 的 Remi PHP 存储库:

sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm -y

在 CentOS Stream 上启用 PHP Remi 存储库

列出可用的 PHP 模块

在安装 PHP 之前,必须先确定 Remi 存储库中可用的 PHP 版本。此步骤可帮助您做出明智的决定,确定要安装哪个版本。

使用以下命令列出所有 PHP 模块:

dnf module list php

此命令显示 Remi 存储库中可用的所有 PHP 版本。这是确保您选择最适合您要求的版本的关键步骤。

为 Remi 的存储库导入 GPG 密钥

出现提示时,您必须确认导入 Remi 存储库的 GPG 密钥。出于安全原因,此步骤至关重要,因为它可以验证您即将安装的软件包的真实性。当系统要求继续导入时,请输入“Y”。

激活所需的 PHP 版本

确认可用的 PHP 版本后,您可以启用适合您需求的特定版本。建议为您的项目选择一个稳定且支持良好的 PHP 版本。

要从 Remi 存储库启用特定的 PHP 版本,请使用以下命令:

sudo dnf module enable php:remi-8.3 -y
sudo dnf module enable php:remi-8.2 -y
sudo dnf module enable php:remi-8.1 -y

每个命令都会从 Remi 存储库激活不同版本的 PHP。选择与要安装的版本相对应的命令。这些命令中的“-y”标志表示自动确认安装,从而简化了安装过程。

在 CentOS Stream 上安装 PHP 8.3、8.2 或 8.1

选择用于 PHP 安装的 Web 服务器

选择合适的 Web 服务器是设置 PHP 的关键步骤。CentOS Stream 支持 Apache 和 Nginx,每个都需要不同的 PHP 包。

Apache(httpd)PHP 安装

对于使用 Apache 作为 Web 服务器的用户,以下命令将安装 PHP 以及 PHP 命令行界面 (CLI),这对于从命令行运行 PHP 脚本至关重要:

sudo dnf install php php-cli -y

Nginx PHP 安装

如果您使用的是 Nginx,则需要与 PHP CLI 一起安装 PHP FastCGI 进程管理器 (FPM)。PHP-FPM 是另一种 PHP FastCGI 实现,对于流量大的网站来说非常高效:

sudo dnf install php-fpm php-cli -y

验证 PHP 安装

安装后,确认 PHP 已正确安装非常重要。运行以下命令检查已安装的 PHP 版本:

php -v

此命令显示当前 PHP 版本,验证安装是否成功。

安装常见的 PHP 扩展

为了增强 PHP 功能,您可能需要安装其他扩展。以下命令安装常用的 PHP 扩展,这些扩展对于各种 CMS 平台和开发需求至关重要:

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

建议您检查并删除任何对您的设置不必要的扩展。

查看已加载的 PHP 模块

要检查当前加载的 PHP 模块,请执行:

php -m

建议定期监控和修剪不必要的模块以保持最佳系统性能。

安装PHP开发分支

对于特定的开发要求,您可能需要 PHP 开发分支。使用以下命令安装:

sudo dnf install php-devel

注意:此安装引入了多个依赖项。仅当您的 PHP 开发环境有特定需求时才继续。

添加 PHP 开发工具

对于高级开发功能(包括调试),请使用以下工具安装其他工具:

sudo dnf install php-xdebug php-pcov

这些工具对于 PHP 中的调试和代码覆盖率分析至关重要,但要注意它们引入的额外依赖关系。

在 CentOS Stream 上为 PHP-FPM 配置 Nginx 用户

编辑 Nginx 的 PHP-FPM 配置

在 CentOS Stream 中,PHP-FPM 的默认用户设置为 'Apache',这与 Nginx 设置不兼容。为了优化 Nginx 的 PHP-FPM,需要更改配置。

访问 PHP-FPM 配置

首先打开 PHP-FPM 配置文件。此文件包含有关 PHP-FPM 如何与您的 Web 服务器交互的特定设置。使用以下命令编辑 www.conf 文件:

sudo nano /etc/php-fpm.d/www.conf

此命令使用 PHP-FPM 配置文件启动 Nano 文本编辑器。

修改用户和群组设置

在配置文件中,找到指定用户和组的行。默认情况下,这些设置为“Apache”。将用户和组都更改为“Nginx”,以使 PHP-FPM 服务与 Nginx 保持一致:

; Unix 用户/进程组 ; 注意:用户是必需的。如果未设置组,则将使用默认用户组。 ; RPM:apache 选择能够以 httpd 身份访问某些目录 用户 = nginx ; RPM:保留允许在日志目录中写入的组。组 = nginx

以下是一个有效的视觉示例:

保存并退出配置文件

进行更改后,按 CTRL+O 保存文件,然后按 CTRL+X 退出。此操作将保存修改并关闭 Nano 编辑器。

重新启动 PHP-FPM 服务

要应用更改,请使用以下命令重新启动 PHP-FPM 服务:

sudo systemctl restart php-fpm

此命令确保 PHP-FPM 在 Nginx 用户和组下开始运行,从而确保在 CentOS Stream 上设置的 Nginx Web 服务器的兼容性和增强的安全性。

示例 Nginx PHP-FPM 服务器块代码

配置 Nginx 服务器块以进行 PHP 处理

要在 CentOS Stream 上的 Nginx 中启用 PHP 处理,必须修改 Nginx 配置文件中的服务器块。以下示例演示了处理 PHP 文件的必要配置。此设置需要指定 PHP 位置块。

    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 正确处理 PHP 文件,并将其重定向到 PHP-FPM 处理器。以下是简要分析:

  • location ~ .php$:此指令告诉 Nginx 将以下规则应用于以 .php 结尾的任何文件。波浪符号 ~ 表示这是一个正则表达式匹配。
  • try_files $uri =404:此行检查 PHP 文件是否存在于指定的 URI 中。如果不存在,Nginx 将返回 404 错误。这是防止未经授权的脚本执行的安全措施。
  • fastcgi_pass unix:/run/php-fpm/www.sock;:该指令指定PHP-FPM服务监听的套接字,此时Nginx会通过/run/php-fpm/www.sock套接字将PHP请求传递给PHP-FPM进程。
  • fastcgi_index index.php;:这将 index.php 设置为访问目录时执行的默认脚本。
  • fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;:此行设置 SCRIPT_FILENAME 参数,该参数对于 PHP-FPM 在文件系统上查找脚本文件至关重要。它将文档根目录与脚本名称结合在一起。
  • include fastcgi_params;:这包括 Nginx 提供的默认 FastCGI 参数。这些是 PHP-FPM 正常运行所需的标准设置。

此配置确保 Nginx 通过将 PHP 请求传递给 PHP-FPM 服务进行处理来正确处理 PHP 请求,这是在 Nginx 服务器上运行基于 PHP 的网站和应用程序的关键步骤。

验证 Nginx 配置

更新服务器块后,使用以下命令验证 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服务

要应用 PHP-FPM 配置更改,请重新启动 Nginx 服务:

sudo systemctl restart nginx

此次重启使更改生效,允许 Nginx 使用更新的服务器块配置处理 PHP 文件。

结论

通过在 CentOS Stream 9 上通过 Remi RPM 存储库安装 PHP,您可以确保您的系统配备了最新的稳定版本的 PHP,包括 8.3、8.2 和 8.1。此设置为您提供了增强的性能、对最新功能的访问以及增强的 Web 应用程序安全性。通过 Remi 存储库定期更新 PHP 将使您的系统保持安全并与 PHP 的最新发展保持同步。享受 PHP 为构建和维护动态 Web 应用程序提供的灵活性和强大功能。

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

发表评论