在 CentOS 7 上安装 PHP 7

2023-11-17

CentOS 7 附带 PHP 版本 5.4,该版本已正式 EOL 相当长一段时间,不再受支持。

通过使用 PHP 7,您的应用程序将加载更快并消耗更少的系统资源。

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

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

先决条件#

在开始本教程之前,请确保您使用具有 sudo 权限的用户帐户或 root 用户登录到服务器。最佳实践是以 sudo 用户而不是 root 身份运行管理命令。如果您的系统上没有 sudo 用户,您可以通过以下方式创建一个用户这些说明 .

启用 Remi 存储库#

PHP 7.x 软件包可在多个不同的存储库中获取。我们将使用雷米存储库它提供了包括 PHP 在内的各种软件包的更新版本。

Remi 存储库依赖于EPEL 存储库。运行以下命令以启用 EPEL 和 Remi 存储库:

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

Yum 可能会提示您导入存储库 GPG 密钥。类型y并击中Enter.

在以下部分中,我们将介绍如何通过启用适当的 Remi 存储库来安装 PHP 7.x。如果您的系统上已经安装了 PHP 5.4yum将更新 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.2马真托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 套接字切换到 Unix 套接字。为此,请编辑以黄色突出显示的行:

/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-fpmsudo 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 文件。

如果您有任何问题或反馈,请随时发表评论。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 CentOS 7 上安装 PHP 7 的相关文章

  • 矩形超出边界是什么意思

    PPB Graphics2D PaintImageData 矩形超出界限是什么意思 我几乎在我检查的每一段代码中都看到了它 最新的代码是 define my consumer key define my consumer secret oa
  • PHPUnit - 模拟 S3Client 无法正常工作

    库 aws aws sdk php 2 PHP 版本 PHP 5 4 24 cli 作曲家 json require php gt 5 3 1 aws aws sdk php 2 require dev phpunit phpunit 4
  • 如何知道我的页面是否在 Facebook iframe 中运行

    我目前正在开发一个独立运行的网站 并作为 iframe 上的 Facebook 应用程序运行 我想知道在页面加载之前检查我的页面是否在 facebook iframe 中运行的 最佳实践 是什么 以便我可以预设相关的 CSS 和其他变量 T
  • 显示标准化数据

    跟进问题 添加 2 个不同表的总和 https stackoverflow com questions 39717541 adding sum from 2 different tables 我创建了3个表 members videos v
  • 有没有一个 PHP 函数可以交换两个变量的值?

    比如说我有 var1 ABC var2 123 在某些条件下我想像这样交换两者 var1 123 var2 ABC 是否有一个 PHP 函数可以执行此操作 而不必创建第三个变量来保存其中一个值 然后重新定义每个值 就像这样 var3 var
  • 如何改变div的值[重复]

    这个问题在这里已经有答案了 div this is div a div div this is div b div 现在我怎样才能改变文本div通过单击按钮动态地进行 这里还提到所有文本都来自数据库 当我单击按钮时它会检测到divid 并将
  • 学说 dbal querybuilder 作为准备好的语句

    我正在尝试创建一个 Doctrine DBAL 查询生成器对象并在其中设置一个参数 使用 postgres db dbal 2 3 4 原则 connection this gt em gt getConnection qb connect
  • 对于每个...休息

    每次我 打破 for each 结构 PHP Javascript 时 我都感觉很脏 所以像这样 JavaScript 示例 for object in objectList if object test true do some proc
  • 通过 PayPal REST API 示例获得折扣?

    PayPal GURUS 我需要帮助 如何插入折扣 我使用 REST API 可能是某个 可以显示代码示例吗 有什么方法可以使用 PHP REST API 发送折扣金额吗 目前 REST 支付 API 不支持折扣 您最好的选择是计算您端的折
  • 不允许在 php 中连接到此 MariaDB 服务器

    我尝试在 php 中连接远程服务器数据库 但出现以下错误 Host xx xxx xx xx is not allowed to connect to this MariaDB server in 我的连接代码是这样的 servername
  • 未调用 Ajax 回调。如何解决这个问题?

    我再次来这里寻求您的建议 我有一些 AJAX 调用 用于从我的编辑器 PHP 在线编辑器 运行代码 大家可以来看看my site http web guru99 com 我有一些 ajax 调用来发送编辑器的数据并接收输出 问题 for 循
  • 如何将选择下拉列表转换为多个复选框?

    我想将下面的下拉代码转换为多选复选框值 我正在使用 WordPress 下面的代码来自第三方网站 我无权访问该第三方网站 因此 通过此功能 我可以在下拉菜单中提供多选选项 div class facilities span class la
  • 通过CompilerPass注册自定义AttributeBag

    我正在尝试通过将自定义 AttributBags 集成到会话中来整理我的会话变量 在 Symfony 查看相关问题 如何向 symfony 会话添加额外的包 https stackoverflow com questions 4472361
  • Zend Framework:检查 Zend View Placeholder 是否已设置

    如何在回显之前检查 Zend View 占位符是否已设置 因为我想在输出之前在它前面添加 I tried echo isset this gt placeholder title this gt placeholder title 但我得到
  • 更新 Bootstrap 缩略图网格 - ajax 请求

    设想 我有一个带有显示国家 地区的 Twitter Bootstrap 缩略图网格的视图 当用户单击一张图像时 它应该在同一网格 屏幕 中显示与该国家 地区相关的城市 技术的 首先 我用国家 地区填充 dataProvider 然后我应该将
  • MySQL“LIKE”搜索不起作用

    我通过 LOAD DATA INFILE 在 MySQL 中导入了一个 txt 数据库 一切似乎都正常 唯一的问题是 如果我使用以下查询在数据库上搜索记录 SELECT FROM hobby WHERE name LIKE Beading
  • JpGraph:使用 AccBarPlot 时如何控制 v3.5.0b1 中的 x/y 偏移、边距和颜色?

    一点背景 我正在尝试将使用 Symfony 1 2 构建的项目从一台服务器迁移到另一台服务器 该项目的功能之一是构建图表 最初使用 JpGraph 2 3 5 完成 如果不修改代码 该图表不会按预期显示 我正在寻找一些关于我可能忽略的内容的
  • Laravel - 保存在存储文件夹中的图像不向用户显示

    我有这段代码可以将图像保存在 storage app uploads 文件夹中 image main Image where property id id gt get file request gt file file destinati
  • slim 3 php 应用程序无法在 CentOS 上运行 nginx 访问被拒绝可能是由于 session_start() 函数

    我最近一直在努力在 macOS 上的 virtualbox 上的 CentOS 7 上安装最新的 nginx 1 14 php 7 2 5 和 mariaDB 10 3 7 php终于可以工作了 我已经测试过了php info index
  • 变量前面的@是什么意思? [复制]

    这个问题在这里已经有答案了 可能的重复 参考 这个符号在 PHP 中意味着什么 https stackoverflow com questions 3737139 reference what does this symbol mean i

随机推荐

  • Ubuntu 上 Android SDK/ADT 捆绑包的完整设置指南

    The 安卓软件开发工具包是一个软件开发工具包 提供构建 Android 应用程序所需的 API 库和必要的开发工具 Android SDK是由android开发者官方提供的 本文将帮助您快速配置 ADT Android 开发工具 捆绑包
  • 如何在 Ubuntu 和 Debian 上安装 Ajenti 控制面板

    Ajenti 是一个基于 Web 的控制面板 用于管理系统 如 Webmin cPanel 它有一个非常漂亮且用户友好的界面 对于个人使用 Ajenti 可根据 AGPLv3 免费使用 对于商业用途 您必须定期支付少量费用 本文将帮助您在
  • Swapfile 与 Swap 分区之间的详细比较

    在计算中 尤其是在基于 Linux 的系统中 交换空间在系统的内存管理中起着至关重要的作用 当系统耗尽 RAM 时 它可以使用交换空间作为溢出 将内存 页面 中较少使用或不活动的部分临时存储到硬盘驱动器上 这有助于防止由于内存耗尽而导致系统
  • 如何在 Ubuntu 和 Debian 中安装 Nagios 服务器

    Nagios 是一个开源监控工具 用于监控主机 服务和网络设备 它提供实时监控 警报和报告功能 帮助您主动识别和解决 IT 环境中的问题 在本文中 我们将向您展示如何在 Ubuntu 和 Debian 上安装 Nagios Server 包
  • 如何使用 Lynis 检查 Linux 上的漏洞

    如果我们作为一个系统管理员 Security or 系统审核员 我们的职责包括以下任务 操作系统或应用程序的安全补丁安装 恶意软件扫描 文件完整性检查 安全审核 配置错误检查等 如果有一个能够自动查找这些漏洞的工具 它可以对我们有很大帮助
  • 如何在 Ubuntu 和 Debian 中安装“.deb”文件

    扩展名为 deb 的文件是基于 Debian 的系统的软件包 您可以直接使用 apt 存储库 PPA 安装 Debian 软件包 它还允许通过命令行安装本地下载的 deb 包 Ubuntu 和其他基于 Debian 的系统提供dpkg De
  • 什么是 Apache 重新加载?

    如果您正在管理 Web 服务器 您可能会遇到需要对服务器配置进行一些更改的情况 Apache 是一种广泛使用的 Web 服务器软件 它提供了几种在不中断服务的情况下实施更改的方法 其中一种方法是 重新加载 功能 本文旨在解开并阐明 Apac
  • 什么是高可用性集群:基本介绍

    A 高可用集群是一种计算系统 旨在确保关键服务和应用程序在停机时间最短的情况下仍可供用户使用 它由多个服务器或节点组成 这些服务器或节点被配置为协同工作以提供单个统一的服务或应用程序 如果一个节点发生故障 其他节点将接管以确保服务或应用程序
  • 最大限度地发挥 ChatGPT 在教育领域的潜力

    人工智能 AI 技术具有彻底改变教育的潜力 ChatGPT 是由 AI 开发的语言模型OpenAI 就是这样一种工具 可以用来改变学生的学习方式 ChatGPT 可以为学生提供个性化的学习体验 提供按需支持 并促进与教师和同学的沟通与协作
  • Bash 案例声明

    狂欢case当您有多个不同的选择时 语句通常用于简化复杂的条件 使用case语句而不是嵌套if语句将帮助您使 bash 脚本更具可读性且更易于维护 狂欢case语句与Javascript或C有类似的概念switch陈述 主要区别在于 与 C
  • 如何在 CentOS 7 上设置或更改时区

    在 CentOS 上 系统的时区是在安装过程中设置的 但以后可以轻松更改 使用正确的时区对于许多与系统相关的任务和流程都很重要 例如 cron 守护进程使用系统的时区来执行 cron 作业 并且日志文件中的时间戳基于同一系统的时区 本教程介
  • 基本 Linux 命令

    来自 Windows 世界的新 Linux 转换者可能会发现使用命令行有点令人生畏 然而 使用起来并不困难 开始使用命令行所需要做的就是学习一些基本命令 虽然大多数 Linux 发行版都是用户友好的并且具有易于使用的图形界面 但了解如何使用
  • 如何在 Ubuntu 中启用和禁用 root 用户帐户

    作为一个新的 Ubuntu 用户 您可能想知道如何以 root 用户身份登录 Ubuntu 系统或者默认的 root 密码是什么 在 Ubuntu Linux 中 出于安全原因 默认情况下禁用 root 用户帐户 本教程介绍如何在 Ubun
  • Linux ip 命令及示例

    The ip命令是任何 Linux 系统管理员都应该知道的用于配置网络接口的强大工具 它用于启动或关闭接口 分配和删除地址和路由 管理 ARP 缓存等等 本文通过实际示例和最常见选项的详细解释来解释如何使用 ip 命令 如何使用 ip 命令
  • 如何在 Debian 9 上添加和删除用户

    Debian 以及所有其他 Linux 发行版都是一个多用户操作系统 每个用户可以对各种命令行和 GUI 应用程序拥有不同的权限级别和特定设置 了解如何添加和删除用户是 Linux 用户应该了解的基本技能之一 本教程介绍如何在 Debian
  • 如何在 Debian 上创建 Sudo 用户

    The 须藤命令 Super user do 的缩写 是一个程序 旨在允许用户以另一个用户 默认为 root 用户 的安全权限执行命令 在本指南中 我们将向您展示如何在 Debian 系统上创建新用户并为其授予 sudo 访问权限 您可以使
  • 如何设置 Git 服务器

    当谈到 Git 托管时 您有多种选择 GitHub Gitlab 和 Bitbucket 是流行的解决方案 但运行自己的 Git 服务器是值得考虑的替代方案 设置 Git 服务器允许您创建私人存储库 而不受提供商免费计划的限制 在本指南中
  • 如何在 Debian 9 上安装 MySQL

    随着 Debian 9 Stretch MySQL 的发布 Debian 存储库中不再提供世界上最流行的开源关系数据库管理系统 MariaDB 已成为默认数据库系统 MariaDB 是 MySQL 的向后兼容 二进制直接替代品 在本教程中
  • 如何在 CentOS 8 上安装 TensorFlow

    TensorFlow是谷歌打造的一个开源机器学习平台 它可以在不同设备上的 CPU 或 GPU 上运行 并被许多组织使用 包括 Twitter PayPal 英特尔 联想和空客 TensorFlow 可以安装在系统范围内 Python 虚拟
  • 在 CentOS 7 上安装 PHP 7

    CentOS 7 附带 PHP 版本 5 4 该版本已正式 EOL 相当长一段时间 不再受支持 通过使用 PHP 7 您的应用程序将加载更快并消耗更少的系统资源 在本教程中 我们将解释如何安装或升级到 PHP 7 0 CentOS 7 系统