如何在 CentOS 8 上安装 PHP

2023-11-09

PHP 是最常用的服务器端编程语言之一。许多流行的 CMS 和框架(例如 WordPress、Magento 和 Laravel)都是用 PHP 构建的。

在本指南中,我们将讨论如何在 CentOS 8 上安装 PHP 7.2、7.3 或 7.4。在选择要安装的 PHP 版本之前,请确保您的应用程序支持它。

我们还将向您展示如何将 PHP 与 Nginx 和 Apache 集成。

在 CentOS 8 上安装 PHP#

CentOS 8 随 PHP 7.2 一起分发。该版本支持大多数现代 PHP 应用程序,但从 2019 年 11 月起将不再主动维护。较新的 PHP 版本可从雷米存储库 .

启用 Remi 存储库#

如果您要安装稳定版 PHP 7.2 版本,请跳过此步骤。否则,如果您想安装 PHP 7.3 或 7.4,请通过以 root 身份运行以下命令来启用 Remi 存储库,或者具有 sudo 权限的用户 :

sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm

上面的命令还将启用EPEL 存储库 .

安装完成后,运行以下命令以获取所有可用的列表PHP 版本 :

sudo dnf module list php

输出将显示所有可用模块的列表,包括关联的流、版本和安装配置文件。

Last metadata expiration check: 0:02:11 ago on Fri 18 Oct 2019 08:31:43 PM UTC.
CentOS-8 - AppStream
Name    Stream       Profiles                     Summary                 
php     7.2 [d][e]   common [d], devel, minimal   PHP scripting language  

Remi's Modular repository for Enterprise Linux 8 - x86_64
Name    Stream       Profiles                     Summary                 
php     remi-7.2     common [d], devel, minimal   PHP scripting language  
php     remi-7.3     common [d], devel, minimal   PHP scripting language  
php     remi-7.4     common [d], devel, minimal   PHP scripting language  

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

默认 PHP 模块设置为 PHP 7.2。要安装较新的 PHP 版本,请启用适当的版本:

PHP 7.3

sudo dnf module reset phpsudo dnf module enable php:remi-7.3

PHP 7.4

sudo dnf module reset phpsudo dnf module enable php:remi-7.4

现在您已准备好在 CentOS 服务器上安装 PHP。

安装PHP#

以下命令将安装 PHP 和一些最常见的 PHP 模块:

sudo dnf install php php-opcache php-gd php-curl php-mysqlnd

FPM 作为依赖项安装并用作 FastCGI 服务器。启动 FPM 服务并使其在启动时自动启动:

sudo systemctl enable --now php-fpm

配置 PHP 以与 Apache 一起使用#

If SELinux 正在运行在您的系统上,您需要更新 SELinux 安全上下文:

sudo chcon -Rt httpd_sys_rw_content_t /var/www

如果您正在使用Apache作为您的网络服务器,重新启动httpd使用以下命令进行服务,就可以开始了:

sudo systemctl restart httpd

配置 PHP 以与 Nginx 一起使用#

默认情况下,PHP FPM 以用户身份运行apache。为了避免权限问题,我们将用户更改为nginx。为此,请编辑以黄色突出显示的行:

sudo nano /etc/php-fpm.d/www.conf
/etc/php-fpm.d/www.conf
...
user = nginx
...
group = nginx

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

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

完成后,重新启动 PHP FPM 服务:

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

更新 SELinux 安全上下文:

sudo chcon -Rt httpd_sys_rw_content_t /var/www

结论#

PHP 7.2 可以从默认的 CentOS 8 存储库安装。如果您想安装更新版本,您需要启用 Remi 存储库。

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

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

如何在 CentOS 8 上安装 PHP 的相关文章

  • PHP MySql 百分比

    我的问题是关于百分比 我不是专家 所以我会尽力以更好的方式进行解释 我的 mysql 服务器中有一个表 假设有 700 条记录 如下所示 Name country language Birth Lucy UK EN 1980 Mari Ca
  • PHP 如何判断用户是否按下了 Enter 键或 Submit 按钮?

    我遇到的问题是我在一个表单中有多个提交输入 每个提交输入都有不同的值 我更愿意将它们保留为提交 Whenever the user presses Enter it is as though the topmost submit input
  • 检查php中位字段是否打开的正确方法是什么

    检查位字段是否打开的正确方法是什么 在 php 中 我想检查来自 db mysql 的位字段是否打开 这是正确的方法吗 if bit 1 还有其他方法吗 我看到有人使用代码ord http jameslow com 2008 08 12 m
  • 重定向而不改变url

    我总是不喜欢 htaccess 我正在尝试建立一个所有请求都通过index php 的网站 但我希望URL 类似于www sample com home 该网址实际上会加载 www sample com index php page hom
  • 如何使用 php 发送服务器错误响应?

    一旦用户点击删除按钮我的 jQuery 脚本要求服务器删除所选项目 现在我想要我的php发送成功或错误响应的脚本 是否有可能触发错误回调万一该项目无法删除 Thanks 我的 jQuery 代码 ajax type post url myA
  • PHP严格标准:声明应该兼容

    我有以下类层次结构 class O Base class O extends O Base abstract class A Abstract public function save O Base obj class A extends
  • 将“php”作为 shell 脚本执行时的自定义 php.ini 文件

    我在跑php作为 shell 脚本 我不确定 shell脚本 是否正确 该文件以 usr bin php 这很好用 但 MongoDB 类没有正确加载php ini文件 具有extension mongo so 未使用 我该如何使用它tha
  • 为什么我需要结束 ob_start()?

    php 文档建议我应该用 ob end flush 结束每个 ob start 我在网站的每个页面上使用一个 只是为了允许我在应用程序中的任何位置使用 firephp 日志方法 该应用程序运行良好 但我想知道是否有任何我不知道的东西可能有害
  • Symfony2 Assetic 和 Less Sourcemaps

    我不确定如何破解 assetic less 过滤器以输出源映射文件 我这里指的是LessFilterhttps github com kriswallsmith assetic blob master src Assetic Filter
  • 从 .phar 存档中提取文件

    对于 Phar 文件 我完全错过了一些东西 我正在安装一个需要 phpunit pdepend 和其他依赖项的项目 我将它们作为 phar 文件获取 但是 我无法使用命令行工具 php 命令 从中提取文件 我用谷歌搜索了这个问题 但没有发现
  • 使用 SSL 证书验证 Web 浏览器

    是否可以使用 ssl 证书对 Web 浏览器进行身份验证 假设我在应用程序中存储私钥 有什么方法可以从浏览器读取密钥并尝试基于该私钥进行身份验证 您可以使用 SSL TLS 客户端证书身份验证来对浏览器 用户进行身份验证 服务器必须请求客户
  • 在 Wordpress 站点中进行 AJAX 调用时出现问题

    我在使用 Wordpress 站点功能的 AJAX 部分时遇到了一些问题 该功能接受在表单上输入的邮政编码 使用 PHP 函数来查找邮政编码是否引用特定位置并返回到该位置的永久链接 我的第一个问题是关于我构建的表单 现在我的表单操作是空白的
  • PHP preg_filter 返回意外的长值

    尝试在 Woocommerce 中删除标签并过滤值 但无法以正确的格式获取它 有东西有腥味 我正在使用WC gt cart gt get cart subtotal 来检索该值 在此示例中 我的值是 2 429kr 原始返回值是 span
  • Woocommerce 结账自定义选择字段

    我有以下功能 将选择列表添加到 woo commerce 结账表单中 woocommerce form field airport pickup array type gt select class gt array airport pic
  • 在 apache docker 容器中运行虚拟主机

    我在同一个 apache 容器中有两个 php 应用程序 我试图在端口上运行其中一个应用程序 因为它需要通过根域而不是子文件夹进行访问 我想在端口 8060 上运行应用程序 我尝试使用 apache 虚拟主机执行此操作 但它不会加载页面 h
  • 表单计算器脚本基本价格未加载 OnLoad

    我的表单中有一个计算器来计算我的下拉选项选择 function select calculate on change calc input type checkbox calculate on click calc function cal
  • php,统计字符并删除超过140个字符的内容

    我需要一个 PHP 函数来计算短语的字符数 如果短语长度超过 140 个字符 则此函数应删除所有其他字符并在短语末尾添加三个点 例如我们有 message I am what I am and you are what you are et
  • 内部 while 循环不工作

    这是我项目网页上的代码片段 这里我想显示用户选择的类别 然后想显示属于该类别的主题 在那里 用户可以拥有多个类别 这没有问题 我可以在第一个 while 循环中打印所有这些类别 问题是当我尝试打印主题时 结果只显示一行 但每个类别中有更多主
  • 如何在 Laravel 中使用 PUT http 动词提交表单

    我知道这个问题可能已经提出 但我就是无法让它发挥作用 如果有人可以帮助我 我将非常感激 我安装了 colletive form 但答案也可以是 html 表单标签 现在列出我的表格 我的路线和我的例外情况 Form model array
  • post php mysql 的拆分关键字

    我有一个表存储帖子 ID 它的标签如下 Post id Tags 1 keyword1 keyword2 keyword3 我想循环遍历该表中的每一行并执行以下操作 将关键字1 关键字2 关键字3放入新表中 word id word val

随机推荐

  • 如何在 Ubuntu 16.04 中将 Unity 启动器移动到底部

    将 Unity 启动器移至底部 Ubuntu 16 04 还提供了将 Unity 启动器移动到底部的选项 Ubuntu 早期版本不提供此选项 但现在我们可以将 unity 启动器移动到底部或左侧 本教程将帮助您在 Ubuntu 16 04
  • 什么是 JavaScript 闭包及其示例?

    JavaScript 是一种多功能编程语言 支持多种编程范例 JavaScript 最强大的功能之一是闭包 它允许开发人员创建强大而灵活的代码 在本文中 我们将探讨什么是闭包以及它们如何工作 并提供一些示例 JavaScript 中的闭包是
  • 如何在 Ubuntu 16.04、14.04 和 LinuxMint 18 中安装 Filezilla

    文件齐拉是最流行的跨平台 开源 ftp 客户端 FileZilla 可用作 FTP FTPS 和 SFTP 客户端 具有许多功能和直观的图形用户界面 以下是 FileZilla 的一些主要功能 访问以下网址在 Linux 系统上安装和配置
  • 在 Ubuntu 中设置启动和关闭脚本

    Linux 操作系统的强大功能之一是能够通过在启动 关闭或重新启动时运行脚本来控制系统的行为 本文作为在 Ubuntu Linux 中设置这些脚本的实用指南 从自动化日常任务到初始化服务 潜在的用例几乎是无限的 让我们深入探讨如何利用此功能
  • 用于备份 SQL Server 数据库的 PowerShell 脚本

    数据库管理是任何依赖数据存储和检索的应用程序的一个关键方面 确保数据完整性和可用性至关重要 此过程中最基本的步骤之一是创建 SQL Server 数据库的定期备份 在本文中 我们将演示如何创建一个 PowerShell 脚本 该脚本可自动执
  • 如何在 MacOS 上安装 Node.js

    Node js 是一个强大的 JavaScript 运行时环境 允许您在服务器端执行 JavaScript 它广泛用于开发可扩展的 Web 应用程序 命令行工具等 在本文中 我们将介绍在 macOS 系统上安装 Node js 的过程 先决
  • 如何在 Ubuntu 和 Debian 上导入 GPG 密钥(无需 apt-key)

    最新的基于 Debian 的系统已弃用 apt key 命令 此命令用于将 GPG 签名密钥导入系统 这个命令在 Debian 10 及其衍生版本之前一直运行良好 Debian 11 及其衍生版本 如 Ubuntu 22 04 发布后 用户
  • 如何为 Node.js 应用程序设置 Apache 反向代理

    如果您的 Node js 应用程序在可访问 Internet 的服务器上运行 您将需要设置反向代理 以便外部用户可以通过 URL 例如 https example com 访问您的应用程序 即使您的 Node js 应用程序运行在专用网络上
  • 了解 Linux 进程状态的基本指南

    Linux 是世界上最流行的操作系统之一 以其效率和可靠性而备受赞誉 它是许多服务器 超级计算机和嵌入式系统的核心 Linux 的强大功能很大一部分源于它对系统进程的管理 本文提供了了解 Linux 进程状态的基本指南 并举例说明以便更好地
  • 如何在生产服务器上安全地重新启动 Apache

    要在生产服务器上安全地重新启动 Apache 建议使用 apachectl 或 httpd 工具 取决于您的系统 它提供了优雅的重新启动命令 这可确保所有当前操作在服务重新启动之前完成 验证配置文件 重新启动之前 请确保您的 Apache
  • 如何在 Ubuntu 20.04 上安装和配置 Fail2ban

    Fail2ban 是一种用于提高服务器安全性免受网络攻击的工具 它允许您根据定义的设置临时或永久阻止远程 IP 地址 它可以帮助您保护服务器和数据免受攻击者的侵害 本教程帮助您在 Ubuntu 20 04 LTS Linux 系统上安装 F
  • 什么是 SHA-512 算法?

    安全哈希算法 SHA 是将数据转换为固定长度哈希值的加密函数 可以将其视为数据的数字 指纹 SHA 512 算法是 SHA 2 安全哈希算法 2 家族的一部分 该算法由美国国家安全局 NSA 设计 并由美国国家标准与技术研究所 NIST 于
  • df 命令 – 检查 Linux 中的磁盘空间

    你使用Linux吗 如果是这样 那么您就知道它是一个功能强大的操作系统 具有大量工具和选项来帮助您管理系统 Linux 提供的最有用的工具之一是 df 命令 它允许您检查磁盘空间 在这篇博客中 我们将了解如何使用 df 命令来检查 Linu
  • Git 技巧:安全删除本地和远程分支

    使用 Git 是现代软件开发的重要组成部分 随着项目的发展 我们经常发现自己有多个分支代表不同的开发阶段 然而 维护太多分支可能会导致混乱和混乱 在本文中 我们将探讨安全有效地删除 Git 远程和本地分支的步骤 确保干净且有组织的工作流程
  • Linux Nohup 命令

    The nohup命令执行指定为其参数的另一个程序并忽略所有SIGHUP 挂断 信号 SIGHUP是当进程的控制终端关闭时发送到进程的信号 通常 当您通过 SSH 运行程序时 如果连接断开或注销 会话将终止 并且从终端执行的所有进程都将停止
  • 如何在 CentOS 7 上安装和使用 FFmpeg

    FFmpeg 是一个用于处理多媒体文件的免费开源工具集合 它包含一组共享的音频和视频库 例如libavcodec libavformat和libavutil 使用 FFmpeg 您可以在各种视频和音频格式之间进行转换 设置采样率 捕获流音频
  • 如何在 Debian 10 上安装 Python 3.8

    Python 是世界上使用最广泛的编程语言之一 凭借其简单易学的语法 Python 成为初学者和经验丰富的开发人员的热门选择 Python 是一种非常通用的编程语言 它可用于构建各种应用程序 从简单的脚本到复杂的机器学习算法 Debian
  • 如何在 Debian 9 上安装 Visual Studio Code

    视觉工作室代码是微软开发的免费开源跨平台代码编辑器 它有一个内置的调试支持 嵌入式Git控制 语法突出显示 代码完成 集成终端 代码重构和片段 可以使用扩展来扩展 Visual Studio Code 功能 本教程介绍如何使用 VS Cod
  • 使用 PostfixAdmin 设置邮件服务器

    Postfix Admin 是一个基于 Web 的界面 允许用户配置和管理基于 Postfix 的电子邮件服务器 使用 Postfix Admin 您可以创建和管理多个虚拟域 用户和别名 这是该系列的第一篇文章设置和配置邮件服务器其中涵盖了
  • 如何在 CentOS 8 上安装 PHP

    PHP 是最常用的服务器端编程语言之一 许多流行的 CMS 和框架 例如 WordPress Magento 和 Laravel 都是用 PHP 构建的 在本指南中 我们将讨论如何在 CentOS 8 上安装 PHP 7 2 7 3 或 7