如何在 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 的相关文章

  • 使用 php 变量更改 css 类

    这里需要您的帮助 正如标题所示 我正在尝试使用 PHP 变量更改 css 类 所以基本上我想创建一个回显某些代码的循环 但我希望第一个循环中的 div 类有所不同 它应该被隐藏 这是我为使问题变得清晰而编写的简化代码 我不知道错误在哪里 请
  • PHP - SQLite 与 SQLite3

    我已经使用 SQLite 2 8 17 制作了一个 Web 应用程序 我现在才发现有一个 SQLite3 在制作 Web 应用程序时 它以某种方式逃避了我的注意 可能是由于缺少 php 函数的文档 我想知道 使用 SQLite3 比 SQL
  • PHP三元运算符错误[重复]

    这个问题在这里已经有答案了 可能的重复 PHP 三元运算符未按预期工作 https stackoverflow com questions 14214427 php ternary operator not working as expec
  • 请求标头与响应标头

    我正在尝试将图像缓存在网站上 该图像由 PHP 提供服务 其中我使用适当的值设置缓存控制的响应标头 但这不是缓存图像 我认为这可能与具有无缓存缓存控制的请求标头有关 标题如下 响应头 Access Control Allow Origin
  • 如何使用 PHP 调整缩略图大小时提高图像质量?

    我在网上找到了这个脚本 它可以从图像中创建缩略图 但创建的缩略图质量很差 如何提高图像的质量 有没有更好的方法来创建缩略图 如果有的话 您能给我指点一下如何使用 PHP 创建缩略图的教程吗 这是下面的代码
  • 如何捕获 Symfony2/Silex 中的错误和异常?

    我想在我的 Silex 应用程序中捕获错误和异常 将它们包装在始终返回给客户端的自定义 JSON 响应中 我发现了三种基本方法 app gt error Symfony Component Debug ErrorHandler regist
  • 在 PHP $_SESSION 中存储数据不安全吗?

    根据我的理解 PHP 进程的行为并不像应用程序服务器进程 因此 执行脚本后 PHP 进程不会保留任何用户特定数据 相反 它将它们存储在用户的 cookie 中 所以无论我们存储在什么地方 SESSSION进入cookie 这是真的 如果是
  • Codeigniter - 检查用户是否已登录并存在(它是真实用户)

    我正在尝试在用户登录我的网站时为他们设置会话数据 因此 如果用户存在于数据库中 我将设置一个会话数据 例如 this gt session gt set userdata user exists 1 现在 每次我想检查用户是否存在并已登录时
  • dompdf 在文档末尾插入空白页

    我正在使用 dompdf 0 6 0 生成 pdf 文档 并且遇到一个奇怪的问题 即最后创建了一个空白页面 我的 简化的 html
  • php_zip 在 php 5.3.5 中不存在

    我正在使用 PHPExcel 要求之一是我需要启用 php zip 如果您需要 PHPExcel 来处理 xlsx 或 ods 文件 您将需要 邮政编码扩展名 我正在使用 PHP v5 3 5 并在我的php ini文件中 我有以下几行 e
  • PHP shell_exec 使用 ssh 运行 shell 脚本

    我有一个 shell 脚本 使用 ssh 和密钥连接到另一台机器 因此它不需要用户名和密码 当我从命令行运行这个脚本时 它工作正常 但是当我从 php shell exec 运行这个脚本时 它不起作用 如果我与 PHP 建立 ssh 连接并
  • 递归替换多维数组中特定键每次出现的值

    我有一个数组 其数组深度可能会有所不同 例如 array one gt array array something gt value array something2 gt value2 another gt anothervalue tw
  • \r 和 \n 在 PHP(和其他语言)中意味着什么?

    这些叫什么 r n 有解释它们的教程吗 它们分别是 回车 和 换行 通常在 Windows 上 您需要将两者一起表示行终止符 r n 而在大多数 全部 Unix 系统上 n 就足够了 See the 维基百科换行条目 http en wik
  • PHP 中比较运算符“==”的混淆

    In PHP null 0 0 0 如果将这两者结合起来 您会期望 null 0 但是这是错误的 有人可以向我解释一下吗 在第一种情况下 null 0 null评估为false 与 一样0其评估结果为false 所以两者都是false所以比
  • htaccess - XAMPP 上的互联网服务器错误 500 [已关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我尝试在 XAMPP 上运行脚本 但收到 互联网服务器错误 500 在实时服务器上运行时效果很好 我认为这是一个 htaccess 错误 htacce
  • 在php中将数组写入文件并获取数据

    我有一个数组 使用后如下所示print r Array 0 gt Array 0 gt piklu name gt piklu 1 gt Array 0 gt arindam name gt arindam 2 gt Array 0 gt
  • 如何在 PHP 中使用 foreach 循环仅回显一次特定的多个相同记录?

    我在 PHP 中使用 foreach 循环得到这些输出 现在 foreach 内部的输出如下所示 PHP代码 table thead tr th ACCOUNT NUMBER th th CATEGORY th th AMOUNT th t
  • 尝试在本地主机上测试我的 php 文件,但只出现一个空白页面,没有错误消息

    我正在运行 Apache 和 mySQL 因为我检查了所有日志 似乎没有任何错误 我的目标是每当有新的表单条目时就向特定地址发送电子邮件 我对后端和 PHP 缺乏经验 所以我不太确定哪里出了问题 任何帮助将不胜感激
  • PHPExcel输出乱码

    我正在尝试 PHPExcel 附带的简单示例 01simple xls 我得到乱码输出 它 LibreOffice 想要导入文件 它认为字符集是西欧 DOS OS2 861 icelandic 输出是这样的
  • 是否需要使用fetch_object或fetch_array?

    我最近发现我可以打印数据库中的结果而不使用mysqli fetch object功能 例如 假设我们有一个简单的 sql select 语句 可以使用如下所示的语句来执行 conn mysqli connect localhost root

随机推荐

  • 理解低压差稳压器(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