Debian GNU/Linux 及其相关发行版上从软件包中安装 PHP

虽然 PHP 可以从源码安装,但也可以通过 » Debian GNU/Linux 中的软件包获取。其他基于 Debian 的发行版也是如此,例如 Ubuntu、Kali Linux 和 Linux Mint。

警告

第三方提供的版本被视为非官方版本,不直接受 PHP 项目支持。 除非可以通过 » 官方下载区的构建版重现, 否则遇到的任何错误都应报告给这些非官方构建版的提供者。

可以使用 aptaptitude 命令来安装软件包。本节中这两条命令可以互换。

使用 APT

首先,注意其它有关的包可能需要 libapache-mod-php 集成入 Apache 2,以及 PEAR 的 php-pear

其次,在安装一个包之前,最好先确定该包是最新版。通常可以运行命令 apt update

示例 #1 Debian 下将 PHP 安装入 Apache 2 的例子

# apt install php-common libapache2-mod-php php-cli

APT 将自动安装 Apache 2 的 PHP 模块以及所有依赖的库并激活之。应重启动 Apache 以使更改生效,例如:

示例 #2 安装完 PHP 后停止并启动 Apache

# /etc/init.d/apache2 stop
# /etc/init.d/apache2 start

更好地控制配置

上一节中 PHP 仅安装了核心模块。很可能还需要更多模块,例如 MySQLcURLGD 等。这些模块也可以通过 apt 命令安装。

示例 #3 取得 PHP 附加软件包的列表

# apt-cache search php
# apt search php | grep -i mysql
# aptitude search php

软件包列表将包含大量软件包,其中包括基本 PHP 组件,比如 php-cgiphp-cliphp-dev 以及许多 PHP 扩展。安装扩展时,将根据需要自动安装其他软件包以满足这些软件包的依赖关系。

示例 #4 安装 PHP 的 MySQL 和 cURL 支持

# apt install php-mysql php-curl

APT 会自动把适当的行添加到不同的 php.ini 相关文件中去,例如 /etc/php/7.4/php.ini/etc/php/7.4/conf.d/*.ini 等,并且根据扩展,还会添加类似 extension=foo.so 的内容。不过还是需要重新启动 web 服务器(例如 Apache)以使这些改动生效。

常见问题

  • 如果 PHP 脚本没有通过 web 服务器被解析,则有可能是 PHP 没有被加入到 web 服务器的配置文件中,在 Debian 中可能是 /etc/apache2/apache2.conf 或类似文件。具体内容参见 Debian 手册。
  • 如果某扩展貌似已经安装,但其函数却又未定义,确保合适的 ini 文件已被加载并且 web 服务器在安装后重新启动过。