6.12. Web 应用， Apache 和 PHP
上一页 | 第 6 章 特殊情况 | 下一页

## 6.12. Web 应用， Apache 和 PHP

### 6.12.1. Apache

表 6.17. 用到 Apache 的 port 可以使用的变量

`USE_APACHE` | 此 port 需要 Apache。 可用的值： `yes` (任意可用版本)、 `1.3`、 `2.0`、 `2.2`、 `2.0+`、 等等。 默认依赖的版本是 `1.3`。
`WITH_APACHE2` | 此 port 需要 Apache 2.0。 如果没有这个变量， 则 port 将依赖 Apache 1.3。 这一变量目前已经过时， 因而不应继续使用。
`APXS` | 到 `apxs` 可执行文件的完整路径。 您可以在 port 中替代该值。
`HTTPD` | 到 `httpd` 可执行文件的完整路径。 您可以在 port 中替代该值。
`APACHE_VERSION` | 目前系统中安装的 Apache 版本 (只读变量)。 这一变量只有在引用了 `bsd.port.pre.mk` 之后才能使用， 其可能的值为： `13`、 `20`、 `22`。
`APACHEMODDIR` | Apache 模块所在的文件夹。 在 pkg-plist 中， 这一变量会自动展开。
`APACHEINCLUDEDIR` | Apache 头文件所在的文件夹。 在 pkg-plist 中， 这一变量会自动展开。
`APACHEETCDIR` | Apache 配置文件所在的文件夹。 在 pkg-plist 中， 这一变量会自动展开。

表 6.18. 在移植 Apache 模块时比较有用的变量

`MODULENAME` | 模块的名称。 默认值为 `PORTNAME`。 例如： `mod_hello`
`SHORTMODNAME` | 模块的简略名字。 默认情况下会自动根据 `MODULENAME` 计算， 但您也可以自行设置值来替代它。 例如： `hello`
`AP_FAST_BUILD` | 使用 `apxs` 来编译和安装模块。
`AP_GENPLIST` | 同时自动创建 `pkg-plist`。
`AP_INC` | 在编译过程中， 将指定的目录加入到搜索头文件的目录中。
`AP_LIB` | 在编译过程中， 将指定的目录加入到搜索函数库的目录中。
`AP_EXTRAS` | 传递给 `apxs` 的额外参数。

### 6.12.2. Web 应用

Web 应用程序应安装到 ``PREFIX`/www/`应用程序的名字``。 为方便起见， 这个路径在 `Makefile` 和 `pkg-plist` 均以 `WWWDIR` 变量的形式提供。 在 `Makefile` 中可以使用 `WWWDIR_REL` 来表示包含了 `PREFIX` 的该变量值。

web 服务器进程所用的用户和用户组， 分别以 `WWWOWN` 和 `WWWGRP` 变量的形式提供， 如果您需要修改某些文件的属主的话。 这两个变量的默认值均为 `www`。 如果您的 port 希望使用其他值， 请使用 `WWWOWN?= myuser` 这种写法， 以便让用户能够更容易地修改它。

除非您的 port 必需使用 Apache， 否则不要将其写入依赖关系。 请尊重运行您的应用程序的用户选择 Apache 以外的其他 web 服务器的需求。

### 6.12.3. PHP

表 6.19. 用到 PHP 的 port 中可以使用的变量

`USE_PHP` | 此 port 需要 PHP。 取值为 `yes` 将把 PHP 加入依赖关系。 此外， 还可以在此指定将所需要的 PHP 扩展模块。 例如： `pcre xml gettext`
`DEFAULT_PHP_VER` | 选择在没有安装 PHP 时自动安装的 PHP 主版本。 默认是 `4`。 可选 `4`、 `5` 之一。
`IGNORE_WITH_PHP` | 此 port 无法与给定版本的 PHP 一同工作。 可选值为 `4`、 `5` 之一。
`USE_PHPIZE` | 此 port 将作为 PHP 扩展模块进行联编。
`USE_PHPEXT` | 此 port 将作为 PHP 扩展， 且需要作为扩展模块注册。
`USE_PHP_BUILD` | 联编依赖于 PHP。
`WANT_PHP_CLI` | 希望使用 CLI (命令行) 版本的 PHP。
`WANT_PHP_CGI` | 希望使用 CGI 版本的 PHP。
`WANT_PHP_MOD` | 希望使用 Apache 模块版本的 PHP。
`WANT_PHP_SCR` | 希望使用 CLI 或 CGI 版本的 PHP。
`WANT_PHP_WEB` | 希望使用 Apache 模块或 CGI 版本的 PHP。

### 6.12.4. PEAR 模块

移植 PEAR 模块的过程非常简单。

使用 `FILES`、 `TESTS`、 `DATA`、 `SQLS`、 `SCRIPTFILES`、 `DOCS` 以及 `EXAMPLES` 这些变量来指明您希望安装的文件。 所有这里列出的文件都会自动安装到合适的位置， 并加入 `pkg-plist`。

在 `Makefile` 文件的最后一行引入 `${PORTSDIR}/devel/pear/bsd.pear.mk`。

例 6.5. 用于 PEAR 类的 Makefile 例子
PORTNAME= Date PORTVERSION= 1.4.3 CATEGORIES= devel www pear MAINTAINER= example@domain.com COMMENT= PEAR Date and Time Zone Classes BUILD_DEPENDS= ${PEARDIR}/PEAR.php:${PORTSDIR}/devel/pear-PEAR RUN_DEPENDS= ${BUILD_DEPENDS} FILES= Date.php Date/Calc.php Date/Human.php Date/Span.php \ Date/TimeZone.php TESTS= test_calc.php test_date_methods_span.php testunit.php \ testunit_date.php testunit_date_span.php wknotest.txt \ bug674.php bug727_1.php bug727_2.php bug727_3.php \ bug727_4.php bug967.php weeksinmonth_4_monday.txt \ weeksinmonth_4_sunday.txt weeksinmonth_rdm_monday.txt \ weeksinmonth_rdm_sunday.txt DOCS= TODO _DOCSDIR= . .include <bsd.port.pre.mk> .include "${PORTSDIR}/devel/pear/bsd.pear.mk" .include <bsd.port.post.mk>

上一页 | 上一级 | 下一页
6.11. 使用 Java | 起始页 | 6.13. 使用 Python

本文档和其它文档可从这里下载： ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题，请先阅读 文档，如不能解决再联系 <questions@FreeBSD.org>.
关于本文档的问题请发信联系 <doc@FreeBSD.org>.