雷达智富

首页 > 内容 > 程序笔记 > 正文

程序笔记

在 Rocky/AlmaLinux/CentOS 9|8 上安装 PHP 8.3

2024-07-04 62

PHP 是一种在 Web 开发中流行的优秀开源、多功能编程语言。众所周知,PHP 为 WordPress 和 Joomla 等主要 Web 平台提供支持。开始 PHP 之旅的一种方法是将其安装在本地系统中。在本文中,我们分享在 Rocky/AlmaLinux/CentOS 9|8 上设置 PHP 8.3 的操作过程。有大量资源可供有兴趣学习 PHP 的人使用。其中包括博客教程、官方文档、公共论坛和数千个开源项目。

启用 Remi 和 EPEL 存储库

在撰写本文时,PHP 8.3 是最新版本。 PHP 8.3 软件包可在 Remi 的第三方 RPM 存储库中获取。我们将把它添加到我们的系统中。

### Rocky / AlmaLinux / CentOS 9 ###
sudo dnf -y install http://rpms.remirepo.net/enterprise/remi-release-9.rpm

### Rocky / AlmaLinux / CentOS 8 ###
sudo dnf -y install http://rpms.remirepo.net/enterprise/remi-release-8.rpm

我们还需要 EPEL 存储库作为依赖项。

### Rocky / AlmaLinux / CentOS 9 ###
sudo dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm

### Rocky / AlmaLinux / CentOS 8 ###
sudo dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

添加两个存储库后更新 dnf 缓存。

sudo dnf makecache -y

列出系统上配置的存储库。

$ sudo dnf repolist
repo id                                                                    repo name
appstream                                                                  CentOS Stream 9 - AppStream
baseos                                                                     CentOS Stream 9 - BaseOS
epel                                                                       Extra Packages for Enterprise Linux 9 - x86_64
epel-cisco-openh264                                                        Extra Packages for Enterprise Linux 9 openh264 (From Cisco) - x86_64
epel-next                                                                  Extra Packages for Enterprise Linux 9 - Next - x86_64
extras-common                                                              CentOS Stream 9 - Extras packages
remi-modular                                                               Remi's Modular repository for Enterprise Linux 9 - x86_64
remi-safe                                                                  Safe Remi's RPM repository for Enterprise Linux 9 - x86_64

重置系统上的默认 PHP 模块。

sudo dnf module reset php -y

安装 PHP 8.3 和扩展

启用 PHP 8.3 Remi 模块

sudo dnf module -y install php:remi-8.3

这应该在几秒钟内完成。

Last metadata expiration check: 0:01:28 ago on Thu 08 Feb 2024 06:27:51 PM UTC.
Dependencies resolved.
======================================================================================================================================================================================================
 Package                                            Architecture                             Version                                             Repository                                      Size
======================================================================================================================================================================================================
Installing group/module packages:
 php-cli                                            x86_64                                   8.3.2-1.el9.remi                                    remi-modular                                   5.5 M
 php-common                                         x86_64                                   8.3.2-1.el9.remi                                    remi-modular                                   1.2 M
 php-fpm                                            x86_64                                   8.3.2-1.el9.remi                                    remi-modular                                   1.9 M
 php-mbstring                                       x86_64                                   8.3.2-1.el9.remi                                    remi-modular                                   577 k
 php-xml                                            x86_64                                   8.3.2-1.el9.remi                                    remi-modular                                   220 k
Installing dependencies:
 httpd-filesystem                                   noarch                                   2.4.57-6.el9                                        appstream                                       13 k
 libxslt                                            x86_64                                   1.1.34-9.el9                                        appstream                                      243 k
 oniguruma5php                                      x86_64                                   6.9.9-1.el9.remi                                    remi-safe                                      219 k
Installing weak dependencies:
 nginx-filesystem                                   noarch                                   1:1.22.1-2.el9                                      appstream                                       12 k
Installing module profiles:
 php/common
Enabling module streams:
 php                                                                                         remi-8.3

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

Total download size: 9.9 M
Installed size: 55 M
Downloading Packages:
...

安装 php 包以供 CLI 使用和其他关键扩展。

sudo dnf -y install php php-{common,pear,cgi,curl,mbstring,gd,mysqlnd,gettext,bcmath,json,xml,fpm,intl,zip,imap}

检查当前的 PHP 版本以确认安装是否成功。

$ php --version
PHP 8.3.2 (cli) (built: Jan 16 2024 13:46:41) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.3.2, Copyright (c) Zend Technologies
    with Zend OPcache v8.3.2, Copyright (c), by Zend Technologies

您还可以运行以下命令来显示活动模块。

php --modules

将 PHP 与 Nginx 或 Apache 结合使用

如果您使用 Nginx 或 Apache 虚拟主机,您可以将它们配置为使用 PHP。

1)使用Nginx网络服务器

您将需要 PHP-FPM(FastCGI 进程管理器)来侦听传入的 PHP 请求并执行它们。

sudo dnf install nginx php-fpm vim -y

启动并启用服务。

$ sudo systemctl enable --now nginx php-fpm
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.

配置 PHP-FPM 监听套接字而不是 IP 和端口,并设置其他配置。

$ sudo vim /etc/php-fpm.d/www.conf
user = nginx
group = nginx
;listen = 127.0.0.1:9000
listen = /var/run/php-fpm.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0660

应用更改后重新启动 PHP FPM 服务。

sudo systemctl restart php-fpm

在 Nginx 配置文件的 http 块中添加以下块,以将 PHP 请求转发到 PHP-FPM。

$ sudo vim /etc/nginx/nginx.conf
server {
    listen 80;
    server_name myapp.example.com;
    root /var/www/myapp;
    index index.php index.html;

    location ~ \.php$ {
        include /etc/nginx/fastcgi_params;
        fastcgi_pass unix:/var/run/php-fpm.sock;
    }
}

检查配置语法。

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

2) 使用 Apache 网络服务器

Apache Web 服务器中的 PHP 代码通常通过 mod_php 模块执行。这是与 apache 一起打包的。这些模块直接在 Apache 进程中处理 PHP 代码。

如果没有安装Apache httpd服务器包,请按如下方式执行。

sudo dnf -y install httpd php-fpm

如果 Nginx 处于活动状态,请将其禁用或将侦听地址从 80/443 更改为其他端口。

sudo systemctl disable --now nginx

现在启动并启用 httpd 服务。

sudo systemctl enable --now httpd php-fpm

测试 PHP 8.3 安装

在 Web 根目录 /var/www/html/ 中创建一个测试 PHP 文件来测试 PHP 的工作情况。

sudo echo "<?php phpinfo(); ?>" > /var/www/html/test.php

访问 PHP 测试页面 http://localhost_or_serverip/test.php

我们可以确认 PHP 正在按预期工作。您现在可以删除测试脚本。

sudo rm -f /var/www/html/test.php

以下是有关 PHP 和 Web 技术的最佳书籍列表。

  • 掌握网页设计的最佳书籍
  • 学习 Web 开发的最佳书籍 - PHP、HTML、CSS、JavaScript 和 jQuery
  • 学习 CSS 和 CSS3 的最佳书籍
  • 学习 HTML 和 HTML5 的最佳书籍
  • 最佳 Apache 和 Nginx 参考书

有关 PHP 的更多深入信息,请访问 php.net 文档。


更新于:2个月前
赞一波!2

文章评论

全部评论