如何在 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 Repo

在安装 PHP 之前更新 Rocky Linux

首先更新您的 Rocky Linux 系统以准备安装 PHP。打开终端并输入:

sudo dnf upgrade --refresh

导入 PHP Remi 存储库

EPEL 存储库设置

EPEL(企业 Linux 的附加软件包)对于 Rocky Linux 中的附加软件包至关重要。以下是在 Rocky Linux 上为最新 EL9 版本或 EL8 安装 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 数据的 JSON(JavaScript 对象表示法)扩展。
  • 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 数据对象,一个数据库访问层,提供对多种数据库的统一访问方法。

您可以使用以下命令随时查看已加载的模块。

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)默认使用“Apache”用户进行 PHP-FPM,这不适合 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 的最新帖子 (查看全部)

发表评论