6.12. Web 应用, Apache 和 PHP

6.12.1. Apache

表 6.17. 用到 Apache 的 port 可以使用的变量
USE_APACHE此 port 需要 Apache。 可用的值: yes (任意可用版本)、 1.32.02.22.0+、 等等。 默认依赖的版本是 1.3
WITH_APACHE2此 port 需要 Apache 2.0。 如果没有这个变量, 则 port 将依赖 Apache 1.3。 这一变量目前已经过时, 因而不应继续使用。
APXSapxs 可执行文件的完整路径。 您可以在 port 中替代该值。
HTTPDhttpd 可执行文件的完整路径。 您可以在 port 中替代该值。
APACHE_VERSION目前系统中安装的 Apache 版本 (只读变量)。 这一变量只有在引用了 bsd.port.pre.mk 之后才能使用, 其可能的值为: 132022
APACHEMODDIRApache 模块所在的文件夹。 在 pkg-plist 中, 这一变量会自动展开。
APACHEINCLUDEDIRApache 头文件所在的文件夹。 在 pkg-plist 中, 这一变量会自动展开。
APACHEETCDIRApache 配置文件所在的文件夹。 在 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/应用程序的名字。 为方便起见, 这个路径在 Makefilepkg-plist 均以 WWWDIR 变量的形式提供。 在 Makefile 中可以使用 WWWDIR_REL 来表示包含了 PREFIX 的该变量值。

web 服务器进程所用的用户和用户组, 分别以 WWWOWNWWWGRP 变量的形式提供, 如果您需要修改某些文件的属主的话。 这两个变量的默认值均为 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。 可选 45 之一。
IGNORE_WITH_PHP此 port 无法与给定版本的 PHP 一同工作。 可选值为 45 之一。
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 模块的过程非常简单。

使用 FILESTESTSDATASQLSSCRIPTFILESDOCS 以及 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>

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

如果对于FreeBSD有问题,请先阅读 文档,如不能解决再联系 <questions@FreeBSD.org>.

关于本文档的问题请发信联系 <doc@FreeBSD.org>.