Unix 系统上的安装

目录

本节将指导您完成在 Unix 系统上配置和安装 PHP 的一般步骤。在开始之前,请务必查看适用于您的平台或 Web 服务器的任何特定部分。

正如我们的手册在 一般安装注意事项 部分中所述,本节主要处理 PHP 的以 Web 为中心的设置,但我们也会介绍如何为命令行使用设置 PHP。

有几种方法可以在 Unix 平台上安装 PHP,无论是通过编译和配置过程,还是通过各种预打包方法。本文档主要关注编译和配置 PHP 的过程。许多类 Unix 系统都有某种包安装系统。这可以帮助您设置标准配置,但如果您需要不同的功能集(例如安全服务器或不同的数据库驱动程序),您可能需要构建 PHP 和/或您的 Web 服务器。如果您不熟悉构建和编译自己的软件,值得检查一下是否有人已经构建了具有您所需功能的 PHP 打包版本。

编译所需的先决知识和软件

  • 基本的 Unix 技能(能够操作“make”和 C 编译器)
  • ANSI C 编译器
  • Web 服务器
  • 任何模块特定的组件(例如 GDPDF 库等)

直接从 Git 源代码构建或进行自定义修改后,您可能还需要

  • autoconf
    • PHP 7.3 及更高版本:2.68+
    • PHP 7.2:2.64+
    • PHP 7.1 及更早版本:2.59+
  • automake:1.4+
  • libtool:1.4.x+(除 1.4.2 外)
  • re2c
    • PHP 8.3 及更高版本:1.0.3+
    • PHP 8.2 及更早版本:0.13.4+
  • bison
    • PHP 7.4 及更高版本:3.0.0+
    • PHP 7.3 及更早版本:2.4+(包括 Bison 3.x)

初始 PHP 设置和配置过程由 configure 脚本的命令行选项控制。您可以运行 ./configure --help 获取所有可用选项及其简要说明的列表。我们的手册分别记录了不同的选项。您会在 附录中找到核心选项,而不同的扩展特定选项在参考页面上进行了说明。

配置 PHP 后,您就可以构建模块和/或可执行文件。命令 make 应该可以完成这项工作。如果它失败,并且您无法弄清楚原因,请参阅 问题部分

注意:

一些 Unix 系统(例如 OpenBSD 和 SELinux)可能出于安全原因不允许将页面映射为可写和可执行,这被称为 PaX MPROTECT 或 W^X 违规保护。但是,这种类型的内存映射对于 PCRE 的 JIT 支持是必需的,因此 PHP 必须 不使用 PCRE 的 JIT 支持进行构建,或者二进制文件必须通过系统提供的任何方式列入白名单。

注意 使用 Android 工具链交叉编译 ARM 目前不支持。

添加注释

用户贡献的注释 1 个注释

cj3 at clifjackson dot net
6 年前
我最近遇到了一个情况,我在从源代码构建 PHP 7.1.13。配置和 make 运行良好,但是当我运行 make install 时,它挂起了。事实证明,如果您使用 Apache(apxs)构建 PHP,make 文件会使用 -a 标志调用 apxs,该标志告诉它修改 httpd.conf 文件。如果由于任何原因,该文件不可写,那么它将失败,您会遇到挂起。

我 Makefile 中的第 108 行如下所示

INSTALL_IT = $(mkinstalldirs) '$(INSTALL_ROOT)/usr/lib64/httpd/modules' && $(mkinstalldirs) '$(INSTALL_ROOT)/etc/httpd/conf' && /usr/sbin/apxs -S LIBEXECDIR='$(INSTALL_ROOT)/usr/lib64/httpd/modules' -S SYSCONFDIR='$(INSTALL_ROOT)/etc/httpd/conf' -i -a -n php7 libphp7.la

我不得不删除 -a 标志,然后它就正常了。
To Top