在 CentOS 7 上安装 PHP 7

CentOS 7 默认附带的 PHP 版本是 5.4 ,该版本已经正式结束生命很长一段时间,官方已经不再支持此版本。而通过使用 PHP 7 ,您的应用程序将加载更快,并消耗更少的系统资源。

在本教程中,我们将介绍如何在 CentOS 7 系统上安装或升级到 PHP 7.0 , 7.1 , 7.2 和 7.3 。我们还将向您展示如何将 PHP 与 Nginx 和 Apache 集成。

在安装特定的 PHP 7.x 版本之前,请确保您的应用程序支持它。

先决条件

在开始本教程之前,请确保使用具有 sudo 权限的用户帐户或 root 用户登录服务器。最好使 sudo 用户来运行管理命令而不是 root 用户。如果您的系统上没有 sudo 用户,可以先创建一个用户。

启用 Remi 存储库

PHP 7.x 包可以在几个不同的存储库中使用。我们将使用 Remi 存储库,它提供各种软件包的更新版本,包括 PHP 。

Remi 存储库依赖于 EPEL 存储库,因为我们需要首先安装 EPEL 存储库。

运行以下命令来启用 EPEL 和 Remi 存储库:

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

Yum 可能会提示您是否导入存储库 GPG 密钥,输入 y 并点击 Enter 。

在以下部分中,我们将介绍如何通过启用相应的 Remi 存储库来安装 PHP 7.x. 如果您已经在系统上安装了 PHP 5.4 , yum 则会更新 PHP 包。

在 CentOS 7 上安装 PHP 7.3

PHP 7.3 是 PHP 的最新稳定版本。大多数现代 PHP 框架和应用程序(包括 WordPress , Drupal , Joomla 和 Laravel)都完全支持 PHP 7.3 。

执行以下步骤在 CentOS 7 上安装 PHP 7.3 。

  1. 首先启用 PHP 7.3 Remi 存储库:

    sudo yum-config-manager --enable remi-php73
  2. 安装 PHP 7.3 和一些最常见的 PHP 模块:

    sudo yum install php php-common php-opcache php-mcrypt php-cli php-gd php-curl php-mysqlnd
  3. 通过键入以下将打印 PHP 版本的命令来验证 PHP 安装:

    php -v
    PHP 7.3.1 (cli) (built: Jan  8 2019 13:55:51) ( NTS )
    Copyright (c) 1997-2018 The PHP Group
    Zend Engine v3.3.1, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.1, Copyright (c) 1999-2018, by Zend Technologies

在 CentOS 7 上安装 PHP 7.2

仅当您要安装与 PHP 7.3 不兼容的应用程序如 (agento 2 等应用程序)时才使用 PHP 7.2 。

以下步骤描述了如何安装 PHP 7.2 CentOS 7 。

  1. 首先通过运行以下命令启用 PHP 7.2 Remi 存储库:

    sudo yum-config-manager --enable remi-php72
  2. 启用存储库后,安装 PHP 7.2 和几个最常见的 PHP 模块:

    sudo yum install php php-common php-opcache php-mcrypt php-cli php-gd php-curl php-mysqlnd
  3. 验证 PHP 安装:

    php -v
    PHP 7.2.9 (cli) (built: Aug 15 2018 09:19:33) ( NTS )
    Copyright (c) 1997-2018 The PHP Group
    Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.9, Copyright (c) 1999-2018, by Zend Technologies

在 CentOS 7 上安装 PHP 7.1

按照以下步骤安装 PHP 7.1 。

  1. 键入以下命令启用 PHP 7.1 存储库:

    sudo yum-config-manager --enable remi-php71
  2. 安装 PHP 7.1 和几个最常见的 PHP 模块:

    sudo yum install php php-common php-opcache php-mcrypt php-cli php-gd php-curl php-mysql
  3. 要验证安装,请运行以下命令以打印 PHP 版本:

    php -v
    PHP 7.1.21 (cli) (built: Aug 15 2018 17:56:55) ( NTS )
    Copyright (c) 1997-2018 The PHP Group
    Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.1.21, Copyright (c) 1999-2018, by Zend Technologies

配置 PHP 7.x 以使用 Apache

如果您使用 Apache 作为 Web 服务器,那么只需使用以下命令重新启动 Apache 服务即可:

sudo systemctl restart httpd

配置 PHP 7.x 以使用 Nginx

与 Apache 不同, Nginx 默认并不支持处理 PHP 文件,所以我们需要安装一个单独的应用程序,如 PHP FPM ,它将处理 PHP 文件。

要安装 PHP FPM 包,请运行以下命令:

sudo yum install php-fpm

默认情况下, PHP FPM 将以用户 apache 的身份在端口 9000 上运行。我们将用户更改为 nginx 并从 TCP socket 切换到 Unix socket。为此,请编辑以黄色突出显示的行:

/etc/php-fpm.d/www.conf

...
user = nginx
...
group = nginx
...
listen = /run/php-fpm/www.sock
...
listen.owner = nginx
listen.group = nginx

确保 /var/lib/php 目录具有正确的所有权:

chown -R root:nginx /var/lib/php

更改完成后,启用随机自启动并启动 PHP FPM 服务:

sudo systemctl enable php-fpm
sudo systemctl start php-fpm

接下来,编辑 Nginx 虚拟主机指令并添加以下位置,以便 Nginx 可以处理 PHP 文件:

server {

# . . . other code

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 systemctl restart nginx

结论

您已经学习了如何在 CentOS 服务器上安装 PHP 7 以及如何配置 Web 服务器以便能够处理 PHP 文件。