如何在 CentOS 7/RHEL 7 上安装 PHP 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 repo,输入:
sudo yum -y install epel-release - 打开 Remi 存储库 ieremi-php72:
sudo yum-config-manager --enable remi-php72 - 刷新存储库:
sudo yum update - 安装php7.2版本,运行:
sudo yum install php
让我们看看例子和语法细节。
如何在 CentOS 7 上安装 PHP 7.2
通过输入以下命令在 CentOS 和 RHEL 7.x 服务器上打开 EPEL 仓库:
$ sudo yum install epel-release
图 01:在 Centos 7 上安装 epel-release 包
$ sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
也安装 yum-utils 包:
$ sudo yum install yum-utils
启用 remi repo,运行:使用 more 命令/ grep 命令/ egrep 命令 搜索 PHP 7.2 包和模块: 示例输出
$ sudo yum-config-manager --enable remi-php72
$ sudo yum update
$ 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 进程管理器”以及常用模块:
$ 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 2018 07:51:38) ( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2017 Zend Technologies with Zend OPcache v7.2.1, Copyright (c) 1999-2017, by Zend Technologies
列出已安装的模块
$ php72 --modules
示例输出:
[PHP Modules] bz2 calendar Core ctype curl date dom exif fileinfo filter ftp gd gettext hash iconv json libxml mbstring mysqli mysqlnd openssl pcntl pcre PDO pdo_mysql pdo_sqlite Phar readline Reflection session SimpleXML sockets SPL sqlite3 standard tokenizer wddx xml xmlreader xmlrpc xmlwriter xsl Zend OPcache zlib [Zend Modules] Zend OPcache
通过输入以下命令打印或检查 PHP 版本:
php -v
php --version
为 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:保存并关闭文件。重新启动 php-fpm 服务:
更新您的 nginx 配置
在服务器部分编辑/添加如下内容:
user = nginx
group = nginx
$ sudo systemctl restart php72-php-fpm.service
$ 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:
示例输出:
在本系列的下一部分中,我将向您展示如何在运行 Nginx 服务器的 CentOS 7/RHEL 7 上安装免费 SSL 证书。
http://your-domain-name/foo.php
http://10.21.136.134/foo.php
- 如何在 CentOS 7 / RHEL 7 上安装和使用 Nginx
- 如何在 CentOS 7/RHEL 7 上安装 PHP 7.2
- 如何在 CentOS 7 上使用 Let's Encrypt 配置 Nginx
结论
现在,PHP 7.2 已在 CentOS 和 RHEL 7.x 服务器上安装并运行。有关更多信息,请参阅此处的php.net 主页。