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 模块和配置可确保一切顺利运行。并且,不要忘记在进行任何更改后重新启动服务。