PHP Conference Japan 2024

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

虽然 PHP 可以从源代码安装,但它也可以通过来自 » Debian GNU/Linux 的软件包获得。对于其他基于 Debian 的发行版(如 Ubuntu、Kali Linux 和 Linux Mint)也是如此。

警告

第三方构建被认为是非官方的,并且不受 PHP 项目直接支持。遇到的任何错误都应报告给这些非官方构建的提供者,除非它们可以使用来自 » 官方下载区域 的构建进行重现。

可以使用 aptaptitude 命令安装软件包。本手册页可互换使用这两个命令。

使用 APT

首先,请注意可能需要其他相关软件包,例如 libapache-mod-php 以与 Apache 2 集成,以及 php-pear 用于 PEAR。

其次,在安装软件包之前,最好确保软件包列表是最新的。通常,这是通过运行命令 apt update 来完成的。

示例 #1 Debian 安装示例(使用 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 安装带有 MySQL 和 cURL 的 PHP

# 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 服务器。
添加注释

用户贡献的注释 2 条注释

73
thumbs at apache dot org
11 年前
为了刷新本文档,也许值得一提的是在 apache httpd 下提供 php 内容的更现代方法。

具体来说,首选方法现在是 fastcgi,使用以下两种方法之一

(mod_fastcgi,httpd 2.2)
http://wiki.apache.org/httpd/php-fastcgi

(mod_fcgid,httpd 2.2)
http://wiki.apache.org/httpd/php-fcgid

(mod_proxy_fcgi,httpd 2.4)
http://wiki.apache.org/httpd/PHP-FPM

虽然传统的 mod_php 方法仍然适用于某些旧版安装,但 fastcgi 方法速度更快,并且在类似的流量模式下需要更少的 RAM 来运行。

谢谢!
42
kearney dot taaffe at gmail dot com
6 年前
在 Ubuntu 机器上编译 PHP。

如果您想从源代码编译 PHP,而不是依赖软件包维护者,以下列出了您可以运行的软件包和命令

步骤 1
sudo apt-get install autoconf build-essential curl libtool \
libssl-dev libcurl4-openssl-dev libxml2-dev libreadline7 \
libreadline-dev libzip-dev libzip4 nginx openssl \
pkg-config zlib1g-dev

因此,您不会覆盖系统上任何现有的 PHP 安装,请在您的主目录中安装 PHP。创建一个目录以供 PHP 二进制文件存放

mkdir -p ~/bin/php7-latest/

步骤 2
# 下载最新的 PHP 压缩包,解压缩它,然后 cd 到新目录。

步骤 3
配置 PHP。删除任何不需要的选项(如 MySQL 或 Postgres(--with-pdo-pgsql))

./configure --prefix=$HOME/bin/php-latest \
--enable-mysqlnd \
--with-pdo-mysql \
--with-pdo-mysql=mysqlnd \
--with-pdo-pgsql=/usr/bin/pg_config \
--enable-bcmath \
--enable-fpm \
--with-fpm-user=www-data \
--with-fpm-group=www-data \
--enable-mbstring \
--enable-phpdbg \
--enable-shmop \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-zip \
--with-libzip=/usr/lib/x86_64-linux-gnu \
--with-zlib \
--with-curl \
--with-pear \
--with-openssl \
--enable-pcntl \
--with-readline

步骤 4
通过键入以下命令编译二进制文件:make

如果没有错误,请通过键入以下命令安装:make install

步骤 5
将 PHP.ini 文件复制到安装目录

cp php.ini-development ~/bin/php-latest/lib/

步骤 6

cd ~/bin/php-latest/etc;
mv php-fpm.conf.default php-fpm.conf
mv php-fpm.d/www.conf.default php-fpm.d/www.conf

步骤 7
为您的二进制文件创建符号链接

cd ~/bin
ln -s php-latest/bin/php php
ln -s php-latest/bin/php-cgi php-cgi
ln -s php-latest/bin/php-config php-config
ln -s php-latest/bin/phpize phpize
ln -s php-latest/bin/phar.phar phar
ln -s php-latest/bin/pear pear
ln -s php-latest/bin/phpdbg phpdbg
ln -s php-latest/sbin/php-fpm php-fpm

步骤 8:将您的本地 PHP 链接到 php 命令。您需要注销然后重新登录才能使 php 切换到本地版本而不是已安装的版本

# 将此添加到 .bashrc
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi

步骤 9:启动 PHP-FPM

sudo ~/bin/php7/sbin/php-fpm
To Top