更新时间:2023-01-21 10:32:47浏览次数:700+次
本文介绍如何在CentOS 7/RHEL 7系统上安装PHP 8.2的方法,附在CentOS 7/RHEL 7上安装PHP 8.2扩展、在Nginx/Apache web服务器上使用PHP 8.2的方法。
前言
当前PHP 8.2版本的安装可以在CentOS 7/RHEL 7 Linux系统上从第三方存储库(如Remi或IUS)完成。这些存储库为系统提供了PHP的更新版本,这些版本在默认OS repo中不可用。然而,需要注意的是,对于运行在旧版本PHP上的现有应用程序,请考虑首先在非生产环境中测试新的PHP,以确定您的应用程序与之兼容。
安装PHP 8.2的方法
1、更新CentOS 7/RHEL 7系统
通过在终端中执行以下命令,在CentOS/RHEL系统上更新软件包列表:
sudo yum update -y
然后重新启动以确保正确应用所有更新:
sudo reboot
2、添加EPEL和REMI存储库
EPEL和REMI是两个流行的第三方存储库,为Enterprise Linux发行版提供了额外的软件包。REMI提供了PHP的最新版本,如PHP 8.2。
在CentOS 7/RHEL 7系统上启用EPEL存储库:
sudo yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
此外,还添加了Remi存储库,该存储库为CentOS和RHEL提供最新版本的PHP:
sudo yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
添加存储库后,启用REMI for PHP 8.2:
sudo yum-config-manager --enable remi-php82
3、在CentOS 7/RHEL 7上安装PHP 8.2
由于我们刚刚启用的存储库中提供了所需的包,因此可以在CentOS 7/RHEL 7上使用PHP使用yum包管理器安装PHP 8.2:
sudo yum -y install php
确认系统中当前默认的PHP版本:
$ php -v
PHP 8.2.1 (cli) (built: Jan 3 2023 18:40:55) (NTS gcc x86_64)
在CentOS 7/RHEL 7上安装PHP 8.2扩展
根据要在系统上运行的应用程序的要求,可能需要安装其他PHP模块,如php-curl、php-mysqlnd、php-zip等。
共享的命令将安装许多PHP应用程序经常需要的PHP扩展:
sudo yum install php-{common,pear,cgi,curl,mbstring,gd,mysqlnd,gettext,bcmath,json,xml,fpm,intl,zip,imap}
同意继续安装:
Install 10 Packages (+26 Dependent packages)
Total download size: 20 M
Installed size: 68 M
Is this ok [y/d/N]: y
在Nginx/Apache web服务器上使用PHP 8.2
您可以将PHP与Nginx或Apache web服务器一起使用来创建动态和交互式网页。
1、在CentOS 7/RHEL 7上使用PHP 8.2和Nginx
PHP-FPM(FastCGI Process Manager)是一个守护进程,它侦听传入的PHP请求并执行它们。在这种情况下,Nginx充当反向代理,将传入请求转发给要执行的PHP-FPM。
在系统上安装Nginx和FPM PHP扩展:
sudo yum install vim nginx php-fpm -y
启动并启用nginx和php-fpm服务:
$ 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.
确认已启动服务的状态:
$ systemctl status nginx php-fpm
将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块中添加以下块,以配置Nginx将PHP请求转发到PHP-FPM。
VirtualHost配置示例:
$ 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;
}
}
验证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
2、在CentOS 7/RHEL 7上使用PHP 8.2和Apache
当Apache web服务器PHP代码通常使用Apache内置的mod_php模块执行时。mod_php是一个Apache模块,负责在Apache进程中直接处理php代码。
安装Apache httpd包:
sudo yum install httpd
如果正在运行,请停止nginx服务:
sudo systemctl disable --now nginx
启动并启用httpd服务:
sudo systemctl enable --now httpd
添加PHP hello world页面以确认其工作正常:
sudo tee /var/www/html/info.php<<EOF
<?php phpinfo(); ?>
EOF
在web浏览器上访问PHP信息页,地址格式为http://localhost_or_serverip/info.php,这时,您应该看到PHP信息页:
结论
按照本文中提供的方法,您就可以使用REMI第三方存储库在CentOS 7或RHEL 7 Linux系统上成功安装PHP 8.2版本。现在,您可以继续安装和配置应用程序运行和服务客户所需的任何其他软件或模块。同时,不要忘记检查您的应用程序是否支持PHP 8.2,这在从旧版本的PHP升级时至关重要。