如何在CentOS 7/RHEL 7上安装PHP 7.2

时间:2020-01-09 10:39:24  来源:igfitidea点击:

如何在CentOS 7服务器上安装PHP 7.2?
如何与Nginx Web服务器一起在RHEL 7服务器上设置和安装PHP 7.2?
如何使用在CentOS/Red Hat Enterprise Linux版本7上运行的Nginx服务器配置PHP-fpm版本7.2?

PHP是PHP:超文本预处理程序的首字母缩写。
它是服务器端脚本。
可以用PHP编写动态生成的网页,也可以将PHP直接嵌入HTML。

PHP为多个商业和非商业数据库管理系统提供了内置的数据库集成。
默认情况下,CentOS 7/RHEL 7仅随附PHP版本5.4。
本教程显示如何使用yum命令在CentOS 7或RHEL 7服务器上安装PHP 7.2。

安装PHP版本7.2

在CentOS 7或RHEL 7上安装PHP 7.2的过程如下:

  • 打开EPEL存储库,执行:sudo yum -y install epel-release
  • 打开Remi repo,即remi-php72:sudo yum-config-manager --enable remi-php72
  • 刷新存储库:sudo yum update
  • 安装7.2版本的php,运行:sudo yum install php

如何在CentOS 7上安装PHP 7.2

通过执行以下命令在CentOS和RHEL 7.x服务器上打开EPEL仓库:

$ sudo yum install epel-release

在Centos 7上安装epel-release软件包

也打开remi repo:

$ sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

也安装yum-utils软件包:

$ sudo yum install yum-utils

启用remi repo,运行:

$ sudo yum-config-manager --enable remi-php72
$ sudo yum update

使用更多命令/grep命令/egrep命令搜索PHP 7.2软件包和模块:

$ sudo yum search php72 | more
$ sudo yum search php72 | egrep 'fpm|gd|mysql|memcache'

输出示例

php72-php-fpm.x86_64 : PHP FastCGI Process Manager
php72-php-gd.x86_64 : A module for PHP applications for using the gd graphics
php72-php-mysqlnd.x86_64 : A module for PHP applications that use MySQL
php72-php-pecl-mysql.x86_64 : MySQL database access functions
php72-php-pecl-mysql-xdevapi.x86_64 : MySQL database access functions

最后在CentOS 7.2上安装php 7.2:

$ sudo yum install php72

您必须安装名为php72-php-fpm的PHP FastCGI Process Manager以及常用模块:

$ sudo yum install php72-php-fpm php72-php-gd php72-php-json php72-php-mbstring php72-php-mysqlnd php72-php-xml php72-php-xmlrpc php72-php-opcache

如何在RHEL 7上安装PHP 7.2

使用yum命令在RHEL 7上启用和安装PHP 7.2的步骤如下:

$ sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
$ sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
$ sudo yum install yum-utils
$ sudo subscription-manager repos --enable=rhel-7-server-optional-rpms
$ sudo yum-config-manager --enable remi-php72
$ sudo yum update
$ sudo yum search php72 | more
$ sudo yum install php72 php72-php-fpm php72-php-gd php72-php-json php72-php-mbstring php72-php-mysqlnd php72-php-xml php72-php-xmlrpc php72-php-opcache

验证

检查PHP版本:

$ php --version
PHP 7.2.1 (cli) (built: Jan  3 2016 07:51:38) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.2.1, Copyright (c) 1999-2016, by Zend Technologies

列出已安装的模块

$ php72 --modules

为Nginx开启PHP fpm

使用systemctl命令:

$ sudo systemctl enable php72-php-fpm.service

输出示例:

Created symlink from /etc/systemd/system/multi-user.target.wants/php72-php-fpm.service to /usr/lib/systemd/system/php72-php-fpm.service.

控制PHP fpm的命令:

启动PHP fpm服务

$ sudo systemctl start php72-php-fpm.service

停止PHP fpm服务

$ sudo systemctl stop php72-php-fpm.service

重新启动PHP fpm服务

$ sudo systemctl restart php72-php-fpm.service

获取PHP fpm服务的状态

$ sudo systemctl status php72-php-fpm.service

配置Nginx以与PHP 7.2一起使用

确保在CentOS 7或RHEL 7上安装了最新版本的Nginx服务器。
使用egrep命令找出nginx服务器的用户名和组名。

$ egrep '^(user|group)' /etc/nginx/nginx.conf

输出示例:

user  nginx;

编辑vi /etc/opt/remi/php72/php-fpm.d/www.conf:

$ sudo vi /etc/opt/remi/php72/php-fpm.d/www.conf

将用户和组设置为nginx:

user = nginx
group = nginx

保存并关闭文件。
重新启动php-fpm服务:

$ sudo systemctl restart php72-php-fpm.service

更新您的Nginx配置

$ sudo vi /etc/nginx/conf.d/default.conf

在服务器部分中进行如下编辑/添加:

## enable php support ##
    location ~ \.php$ {
        root /usr/share/nginx/html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        include        fastcgi_params;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    }

保存并关闭文件。
重新启动Nginx服务器:

$ sudo systemctl restart nginx

在/usr/share/nginx/html /中创建一个名为foo.php的测试脚本

$ sudo vi /usr/share/nginx/html/foo.php

追加以下代码:

<?php
  // test script for CentOS/RHEL 7+PHP 7.2+Nginx 
  phpinfo();
?>

保存并关闭文件。
触发浏览器并输入url:

http://10.21.136.134/foo.php