如何在 Ubuntu 20.04 上使用 PHP-FPM 安装 Apache

2023-11-18

PHP FPM(FastCGI 进程管理器)是 PHP FastCGI 的替代实现。它提供了一些附加功能,例如对站点有用的自适应进程生成。本教程将帮助您在 Ubuntu 20.04 系统上使用 PHP-FPM/FastCGI 安装 Apache。在本教程中,我们使用 PHP 7.4 并使用 PHP-FPM 和 FastCGI 配置 Apache。

您还可以访问之前的教程使用多个 PHP 版本配置 Apache在 Ubuntu 系统上使用 PHP-FPM/FastCGI。

第 1 步 – 安装 Apache

Apache Web 服务器 debian 软件包在默认存储库下可用。使用 sudo 权限帐户登录您的 Ubuntu 系统。打开终端并执行以下命令:


sudo apt update 
sudo apt install apache2 libapache2-mod-fcgid
  

上述命令将安装 Apache 和 FastCGI 模块到您的服务器。

第 2 步 – 使用 FPM 安装 PHP

接下来,在 Ubuntu 系统上安装 PHP 和 PHP-FPM。在本教程中,我们选择 PHP 7.4 进行安装

对于 PHP 安装,我们建议使用ppa:ondrej/php购电协议。执行以下几个命令将 PPA 添加到您的系统。


sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
  

然后安装 PHP 7.4(或所需版本)(编写本教程当天可用的最新版本)。只需执行以下命令即可安装 PHP 和 PHP-FPM 软件包。


sudo apt update
sudo apt install php7.4 php7.4-fpm
  
Note:- 当您使用 PHP-FPM 时。所有 PHP 模块配置都位于 /etc/php/7.4/fpm 目录下。您可以阅读更多有关启用/禁用 PHP 模块.

安装软件包后,php7.4-fpm 服务将自动启动。为了确保这一点,请输入:


sudo systemctl status php7.4-fpm

● php7.4-fpm.service - The PHP 7.4 FastCGI Process Manager
     Loaded: loaded (/lib/systemd/system/php7.4-fpm.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2020-05-09 04:41:44 UTC; 19s ago
       Docs: man:php-fpm7.4(8)
    Process: 375077 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/7.4/fpm/pool.d/www.conf 74 (code=exited>
   Main PID: 375073 (php-fpm7.4)
     Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
      Tasks: 3 (limit: 2283)
     Memory: 9.3M
     CGroup: /system.slice/php7.4-fpm.service
             ├─375073 php-fpm: master process (/etc/php/7.4/fpm/php-fpm.conf)
             ├─375075 php-fpm: pool www
             └─375076 php-fpm: pool www

May 09 04:41:43 tecadmin systemd[1]: Starting The PHP 7.4 FastCGI Process Manager...
May 09 04:41:44 tecadmin systemd[1]: Started The PHP 7.4 FastCGI Process Manager.
  

步骤 3 – Apache 配置

现在,您需要启用 FastCGI 配置所需的一些 Apache 模块。您可以通过运行命令启用所需的模块:


sudo a2enmod actions fcgid alias proxy_fcgi
  

然后配置 Apache 虚拟主机以与 FPM/FastCGI 一起运行。在本教程中,我们使用默认的 VirtualHost。在文本编辑器中编辑 VirtualHost 主机配置文件。您还可以根据您的选择创建新配置。


sudo vim /etc/apache2/sites-available/000-default.conf
  

更新配置如下。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<虚拟主机 *:80>
服务器名称 example.com
服务器别名 www.example.com
文档根目录 /var/www/html
 
    <目录 /var/www/html>
选项 -Indexes +关注符号链接 +多视图
允许覆盖 All
要求 all granted
    </目录>
 
    <文件匹配 \.php$>
        # 2.4.10+ 可以代理到unix套接字
设置处理程序 “代理:unix:/var/run/php/php7.4-fpm.sock|fcgi://localhost”
    </文件匹配>
 
错误日志 ${APACHE_LOG_DIR}/error.log
自定义日志 ${APACHE_LOG_DIR}/access.log combined
</虚拟主机>

保存对配置文件的更改并重新启动 Apache 以重新加载更改。


sudo systemctl restart apache2
  

第 4 步 – 验证设置

Apache 与 PHP-FPM 配置已经完成。现在所有 PHP 文件都将使用 FPM 运行。

要验证这些设置,请使用以下命令创建 PHP 脚本phpinfo()函数并将其放置到您的服务器文档根目录中。使用以下命令创建文件:


echo "<?php phpinfo(); ?>" > /var/www/html/info.php
  

然后使用服务器 IP 地址(默认 VirtualHost)或您在 Apache VirtualHost 中配置的域访问 info.php。

结论

本教程帮助您在 Ubuntu 系统上使用 PHP-FPM 安装 Apache。

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

如何在 Ubuntu 20.04 上使用 PHP-FPM 安装 Apache 的相关文章

  • 检测 JPEG 图像质量

    我允许用户上传图像 但是 我希望保持 JPEG 质量不超过 90 我打算做的是检测当前的质量 如果低于 90 什么都不做 如果超过90 则使用Image Magick将图像重新压缩到90 可以这样做吗 我更喜欢 PHP 但任何语言都会有帮助
  • 只获取倒数第二条记录 - mysql-query

    我有一个如下表记录 my table id rating description 1 0 0 bed 2 1 0 good 3 0 0 bed 4 1 0 good 5 0 0 bed 6 0 0 bed 7 0 0 bed 现在我通过评级
  • Apache Tika 能够提取中文、日语等外语吗?

    Apache Tika 能够提取中文 日语等外语吗 我有以下代码 Detector detector new DefaultDetector Parser parser new AutoDetectParser detector Input
  • 我需要一个实时网站来测试 Facebook Connect 吗?

    我正在尝试将 facebook connect 与 nmy 社交网站集成 目前用户在我的网站上使用自己的帐户创建和登录 但我希望允许用户基本上在我的网站上创建一个新帐户 但使用 facebook connect 登录 我我认为在我的网站上这
  • PHP 裁剪图像以固定宽度和高度而不丢失尺寸比例

    我希望创建尺寸为 100 像素 x 100 像素的缩略图 我看过很多解释这些方法的文章 但如果要保持尺寸比 大多数文章最终都会有宽度 高度 例如 我有一个 450 像素 x 350 像素的图像 我想裁剪为 100px x 100px 如果我
  • 如果遵循 REST 架构,如何访问 codeigniter 中的 URL 参数?

    以下是可用于访问资源的基于 REST 的有效 URL 使用codeigniter 如何访问下面传递的参数1 我在教程中看到了上述内容并设置了我的代码 然而显然 id this gt input gt get id 不起作用 Using th
  • 是否存在可处理 PRC/.mobi 文件的 PHP 库?

    我正在写一个WordPress 插件 http github com chrisclarke eBook Export Plugin for WordPress以大多数主要电子书格式从选定类别创建电子书 我想支持 MobiPocket 因为
  • PHP 中给定日期的下一个工作日

    有人有一个 PHP 代码片段来计算给定日期的下一个工作日吗 例如 需要如何转换 YYYY MM DD 才能找到下一个工作日 例子 对于 03 04 2011 DD MM YYYY 下一个工作日是 04 04 2011 对于 2011 年 4
  • 在 Windows 中使用 PHP 创建受密码保护的 Zip 文件

    我正在 PHP 中创建给定文件的 zip 文件 下面是函数 function create zip file file name zip new ZipArchive zip name file name zip Zip name zip
  • 如何使用 PHP 从图像文件中读取 Lightroom 关键字?

    我有一个照片社区 www jungledragon com http www jungledragon com 允许用户上传照片 我的平台是 PHP CodeIgniter 作为上传过程的一部分 我已经使用 PHP 读取 EXIF 信息ex
  • 如何判断是否ob_start();已经被调用了

    我使用输出缓冲进行 gzip 压缩并访问之前在 PHP 脚本中发布的内容 if ob start ob gzhandler ob start 现在 如果该脚本包含在另一个已使用 ob start 的脚本中 我会收到警告 警告 ob star
  • 如果 Row1 = 值 1,则更新其他行

    我有一个小的 php 脚本 用于访问 mySql 数据库 我想在数据库中插入新记录之前查看该数字 值 1 是否等于数据库中的记录 这也在第 1 行 所以我想 查看传入的电话号码是否等于数据库中的电话号码 如果是这样 则必须保持电话号码相同的
  • 在我的 php 网络服务器内副本中启用 mysqli

    正如这里所讨论的 mysqli 直接运行时有效 但通过 js ajax 运行时无效 https stackoverflow com questions 31523601 mysqli works when run directly but
  • 如何在 PHP 中使用 file_get_contents 获取图像的 MIME 类型

    我需要获取图像的 MIME 类型 但我只有图像的正文file get contents 是否有可能获取 MIME 类型 是的 你可以这样得到它 file info new finfo FILEINFO MIME TYPE mime type
  • 如何将 WordPress 类别选择限制为只有一个?

    我有一个自定义帖子类型和一个自定义分类设置 非常标准的东西 但是 我想知道如何限制我的客户在每个帖子中选择多个分类类别 我不介意他们能够创建和删除分类类型 但我不希望他们选择多个分类类型 因为这些是复选框 所以它们可以 也许单选按钮可以工作
  • 在 php、ajax 或 javascript 中加载进度?

    任何人都知道如何在系统仍在服务器端获取数据的同时在客户端显示加载进度以及完成的百分比 例如 当我在客户端按下 确定 按钮时 它会调用服务器端从数据库收集数据 整个过程可能需要2到3分钟 如何在客户端显示加载进度 大约加载完成了多少 我怎样才
  • 获取url,给定的url重定向到

    我从 rss 链接中挖掘数据并获得一堆网址 例如 http feedproxy google com r electricpig 3 qoF8XbocUbE http feedproxy google com r electricpig 3
  • 如何使用 PHP 正确添加跨站请求伪造 (CSRF) 令牌

    我正在尝试为我网站上的表单添加一些安全性 其中一个表单使用 AJAX 另一个表单是简单的 联系我们 表单 我正在尝试添加 CSRF 令牌 我遇到的问题是令牌有时只显示在 HTML 值 中 其余时间 该值为空 这是我在 AJAX 表单上使用的
  • 检查php中位字段是否打开的正确方法是什么

    检查位字段是否打开的正确方法是什么 在 php 中 我想检查来自 db mysql 的位字段是否打开 这是正确的方法吗 if bit 1 还有其他方法吗 我看到有人使用代码ord http jameslow com 2008 08 12 m
  • openssl_pkey_get_details($res) 不返回公共指数

    我在用着这个例子 https stackoverflow com a 12575951 2016196使用 php 生成的密钥进行 javascript 加密openssl图书馆 但是 details openssl pkey get de

随机推荐

  • 理解低压差稳压器(LDO)

    低压差稳压器 LDO 看似简单 但可提供重要功能 例如将负载与不干净的电源隔离开来或者构建低噪声电源来为敏感电路供电 本简短教程介绍了一些常用的LDO 相关术语 以及一些基本概念 如压差 裕量电压 静态电流 接地电流 关断电流 效率 直流输
  • 【PTA】直直直径 暴搜+剪枝

    Keven现在有一棵树 现在Keven想知道在这颗树上任取两点 他们的距离的最大值是多少 Keven不会做这个题目 于是请教聪明的你 如果你帮助他解决这个问题 他将会让你的排名上升 树中两点之间的距离定义为连接两点的路径边权之和 并且每条路
  • 结合实战,浅析GB/T28181(十)——媒体流保活

    1 问题现象 在实际项目对接过程中 我们有时会碰到这样的问题 视频正在播放着 突然停止了 然后ping一下 也能ping通 下级平台或上级平台看起来也在线 看起来不是网络的问题 这到底咋回事呢 一时摸不着头脑 懵逼了 不要急 我们一起来看看
  • 在 Python 中设置和获取默认时区

    使用时区是许多 Python 应用程序的重要组成部分 无论您是构建调度系统 日志记录工具还是任何其他涉及日期和时间的应用程序 设置默认时区都是一项关键功能 在本文中 我们将讨论如何在 Python 中获取或设置默认时区 使用日期时间模块 d
  • 如何在 Ubuntu 上删除/禁用交换文件

    在 Ubuntu 中 与其他 Linux 发行版一样 交换文件是系统内存管理的重要组成部分 它充当虚拟内存层 允许系统在物理内存已满时将硬盘空间用作 RAM 的形式 尽管它很有用 但在某些情况下您可能想要禁用或删除它 例如 如果您的系统有足
  • 如何在 Fedora 31/30 上安装 MySQL 5.7

    MySQL 是一个关系数据库管理系统 本教程将帮助您在 Fedora Linux 系统上安装 MySQL 5 7 您还可以按照这些说明进行操作安装MySQL 8 or php我的管理员在您的 Fedora 系统上 第 1 步 先决条件 登录
  • 在 Linux 中归档文件和目录的 3 个最流行的工具

    Linux 系统中有多种工具可用于创建归档文件 在本文中 您将发现使用多种工具通过命令行创建或提取存档文件 Tool 1 Zip zip 是 Linux 系统中最流行的命令行归档实用程序 创建文件存档 zip output zip var
  • 使用 .htaccess 限制网站访问:综合指南

    网站安全是网站管理员和开发人员的首要任务 保护您的网站免遭未经授权的访问的最有效方法之一是使用 htaccess 文件 这些特定于 Apache Web 服务器的配置文件允许您定义网站的访问规则 在本综合指南中 我们将探索使用 htacce
  • 如何在 CentOS/RHEL 7/6 和 Fedora 上安装 RabbitMQ

    RabbitMQ是最流行的开源消息代理 RabbitMQ 是一个轻量级应用程序 适用于大多数流行的操作系统 RabbitMQ 支持多种消息协议 RabbitMQ可以轻松地部署在分布式和联邦配置中 以满足高规模 高可用性的需求 本教程将帮助您
  • 检查阿姆斯特朗数的 C 程序

    阿姆斯特朗数是一个 n 位数字 等于其各位数字的 n 次方之和 例如 153 是阿姆斯特朗数 因为它有 3 位 1 3 5 3 3 3 等于 153 在本文中 我们将编写一个 C 程序来检查给定的数字是否是阿姆斯特朗数 我们会将问题分解为可
  • 如何使用 sgdisk 将 GPT 分区表复制到另一个磁盘

    什么是GPT分区 GPT GUID 分区表 是物理硬盘上分区表布局的标准 使用全局唯一标识符 GUID GPT 是 EFI 标准的一部分 定义分区表的布局 GPT 对于在大于 2TB 的磁盘上创建文件系统非常有用 对于较小尺寸的磁盘 通常我
  • 如何在 Windows 10 上安装 Node.js

    Node js 是一个开源的 JavaScript 运行时环境 它允许在 Web 浏览器之外运行 JavaScript 本教程将帮助您在 Windows 系统上安装 Node js 在 Windows 上安装节点 以下是在 Windows
  • 检查阿姆斯特朗数的 Java 程序

    在编程世界中 通常会实现许多不同的任务和算法来测试程序员对某些概念的理解 其中一项任务是检查阿姆斯特朗数字 在我们深入实际的编程部分之前 了解阿姆斯特朗数是什么很重要 什么是阿姆斯特朗数 An 阿姆斯特朗数是一个数字 它等于它自己的数字的总
  • 如何在 Linux 中使用 Chage 命令

    Linux 系统管理员经常需要管理用户帐户及其密码 chage 命令是一个强大的工具 有助于管理 Linux 中的用户密码过期和老化信息 在本文中 我们将指导您在 Linux 中使用 chage 命令 其各种选项以及如何有效使用它们的示例
  • 如何在 CentOS 8 上安装 Roundcube Webmail

    Roundcube 是一种用 PHP 编程语言编写的流行 Webmail 界面 您可以通过 Roundcube Web 界面上的 POP IMAP 访问在 Linux 服务器上创建的邮箱 本教程将帮助您在 CentOS 8 上安装 Roun
  • 如何在 Ubuntu 18.04 Bionic 上重置 Gnome 桌面

    本教程帮助您在 Ubuntu 18 04 LTS Linux 系统上将 Gnome 桌面设置重置为其原始状态 登录到您的 Ubuntu 18 04 Bionic Desktop 系统并按照下面给出的说明进行操作 之后重新启动系统以完成这些步
  • Linux 用户管理:系统管理员的实用方法

    用户管理是 Linux 系统管理的一个重要方面 因为它允许管理员创建 修改和删除用户帐户 管理权限以及控制对系统资源的访问 本文为系统管理员介绍了一种实用的 Linux 用户管理方法 通过了解用户管理的基础知识 您可以确保更安全且组织良好的
  • 了解 Linux 中的僵尸进程

    在操作系统领域 僵尸 一词通常会让人想起不死生物 即被困在生与死之间的生物 令人惊讶的是 Linux 操作系统中也存在类似的现象 僵尸进程潜伏在其中 困扰着系统管理员和开发人员 尽管它们可能并不渴望大脑 但如果不加以控制 这些僵尸进程可能会
  • 如何在 Ubuntu 22.04|20.04|18.04 上安装 Oracle Java 17

    Java 17 是 Java SE 平台的最新长期支持版本 由于这是 LTS 版本 因此将支持到 2024 年 9 月 Java 17 进行了多项改进和错误修复 工作站用户应考虑升级到此版本 此外 生产用户可以在检查所有应用程序兼容性检查后
  • 如何在 Ubuntu 20.04 上使用 PHP-FPM 安装 Apache

    PHP FPM FastCGI 进程管理器 是 PHP FastCGI 的替代实现 它提供了一些附加功能 例如对站点有用的自适应进程生成 本教程将帮助您在 Ubuntu 20 04 系统上使用 PHP FPM FastCGI 安装 Apac