在 Gentoo 系统下的安装

本节包含了在 Gentoo Linux 系统下安装 PHP 的说明和提示。

使用 Portage (emerge)

当可以下载和自己编译 PHP 源代码时,使用 Gentoo 的包系统安装 PHP 是最简单和干净的方法。但如果不熟悉在 Linux 下编译软件,可以使用本节提到的方法。

如果目前为止已经安装好了 Gentoo 系统,可能已经习惯于使用 Portage 了。安装 Apache 和 PHP 与安装其它系统工具没有什么不同。

首先要决定是安装 Apache 1.3.x 还是 Apache 2.x。二者均可使用 PHP,下面的步骤是基于 Apache 1.3.x 的。另一件要考虑的事情是,本地的 Portage 树是否为最新的。如果最近没有更新它,需要首先运行 emerge sync。这样,便可以使用最新稳定版本的 Apache 和 PHP。

现在一切都准备好了,可以参照下面的示例安装 Apache 和 PHP:

例子 4-7. Gentoo 下 Apache 1.3 + PHP 的安装示例

# emerge \<apache-2
# USE="-*" emerge php mod_php
# ebuild /var/db/pkg/dev-php/mod_php-<your PHP version>/mod_php-<your PHP version>.ebuild config
# nano /etc/conf.d/apache
  Add "-D PHP4" to APACHE_OPTS

# rc-update add apache default
# /etc/init.d/apache start

可以在 Gentoo 网站上的 Portage 手册中获得更多关于 emerge 的信息。

如果需要使用 Apache 2,可以在上例中简单的使用 emerge apache 命令。

配置时进行更好的控制

在上一节,PHP 安装时几乎没有安装任何激活的模块。在写本文档时,唯一被激活的模块是 XML,因为 PEAR 需要它。这可能不是想要的,不久就会发现需要更多激活的模块,例如 MySQL、gettext、GD 等。

当自己从源代码编译 PHP 时,需要使用 configure 激活所需模块。而在 Gentoo 中,只需使用 USE 标记,它会被自动传递到配置脚本中。要了解 USE 标记在 emerge 中是怎么工作的,可以尝试:

例子 4-8. 获得所有可用的 USE 标记列表

# USE="-*" emerge -pv php

[ebuild  N    ] dev-php/php-4.3.6-r1  -X -berkdb -crypt -curl -debug -doc
-fdftk -firebird -flash -freetds -gd -gd-external -gdbm -gmp -hardenedphp
-imap -informix -ipv6 -java -jpeg -kerberos -ldap -mcal -memlimit -mssql
-mysql -ncurses -nls -oci8 -odbc -pam -pdflib -png -postgres -qt -readline
-snmp -spell -ssl -tiff -truetype -xml2 -yaz  3,876 kB

可以从输出中看到,PHP 可用使用很多 USE 标记。请仔细查看和选择所需要的标记。如果选择的标记所需的库没有安装,Portage 会自动编译它们。可以再次使用 emerge -pv 命令以了解 Portage 会根据 USE 标记编译哪些内容。例如,如果没有安装 X,而在 USE 标记中包括了 X,Portage 将会首先编译 X,然后再编译 PHP。这会花去好几个小时。

如果要编译 PHP 并使其支持 MySQL、cURL 和 GD,使用的命令为:

例子 4-9. 使用 USE 标记安装 PHP

# USE="-* curl mysql gd" emerge php mod_php

在上例中,不要忘记同时 emerge php 和 mod_php。php 是 PHP 的命令行版本,而 mod_php 是 PHP 的 Apache 模块版本。

常见问题