6.13. Веб-приложения, Apache и PHP

6.13.1. Apache

Таблица 6.18. Переменные для портов, использующих Apache
USE_APACHEПорт требует Apache. Возможные значения: yes (берёт любую версию), 22, 24, 22-24, 22+ и так далее. Версия по умолчанию 22. Более подробная информация содержится в файле ports/Mk/bsd.apache.mk и на странице wiki.freebsd.org/Apache/.
APXSПолный путь к исполняемому файлу apxs. Может быть переопределен в вашем порту.
HTTPDПолный путь к исполняемому файлу httpd. Может быть переопределен в вашем порту.
APACHE_VERSIONВерсия установленного Apache (переменная только для чтения). Эта переменная доступна только после подключения bsd.port.pre.mk. Возможные значения: 22, 24.
APACHEMODDIRКаталог для модулей Apache. Значение переменной автоматически подставляется в pkg-plist.
APACHEINCLUDEDIRКаталог для заголовков Apache. Значение переменной автоматически подставляется в pkg-plist.
APACHEETCDIRКаталог для конфигурационных файлов Apache. Значение переменной автоматически подставляется в pkg-plist.

Таблица 6.19. Используемые переменные при портировании модулей Apache
MODULENAMEНазвание модуля. Значением по умолчанию является PORTNAME. Пример: mod_hello
SHORTMODNAMEКраткое название модуля. Наследуется автоматически от MODULENAME, но может быть переопределено. Пример: hello
AP_FAST_BUILDИспользовать apxs для компиляции и установки модуля.
AP_GENPLISTТакже автоматически создает pkg-plist.
AP_INCДобавляет каталог к пути поиска заголовков во время компиляции.
AP_LIBДобавляет каталог к пути поиска библиотек во время компиляции.
AP_EXTRASДополнительные флаги, передаваемые apxs.

6.13.2. Веб-приложения

Веб-приложения следует устанавливать в PREFIX/www/appname. Для вашего удобства этот путь одинаково доступен в Makefile и pkg-plist как переменная WWWDIR, а путь относительно PREFIX доступен в Makefile как WWWDIR_REL.

Пользователь и группа процесса веб-сервера доступны как WWWOWN и WWWGRP, в случае если вам нужно изменить владельца для некоторых файлов. Значением по умолчанию и для владельца, и для группы является www. Если вы хотите использовать в вашем порте другие значения, воспользуйтесь для этого нотацией WWWOWN?= myuser, чтобы позволить пользователю легко переопределить их.

Не добавляйте зависимость от Apache, если веб-приложение явным образом не нуждается в Apache. Учитывайте, что пользователи могут пожелать запустить ваше веб-приложение на другом веб-сервере помимо Apache.

6.13.3. PHP

Таблица 6.20. Переменные для портов, использующих PHP
USE_PHPПорт требует PHP. Значение yes добавляет зависимость от PHP. Вместо этого может быть указан перечень требуемых расширений PHP. Пример: pcre xml gettext
DEFAULT_PHP_VERВыбирает старший номер версии, с которым будет установлен PHP как зависимость в случае, когда PHP еще не установлен. По умолчанию 5. Возможные значения: 4, 5
IGNORE_WITH_PHPПорт не работает с PHP данной версии. Возможные значения: 4, 5
USE_PHPIZEПорт будет построен как расширение PHP.
USE_PHPEXTПорт будет считаться расширением PHP, включая установку и регистрацию в реестре расширений.
USE_PHP_BUILDУстановить PHP как зависимость времени построения.
WANT_PHP_CLIХочет CLI (командная строка) версию PHP.
WANT_PHP_CGIХочет CGI версию PHP.
WANT_PHP_MODХочет PHP как модуль Apache.
WANT_PHP_SCRХочет CLI или CGI версию PHP.
WANT_PHP_WEBХочет модуль Apache или CGI версию PHP.

6.13.4. Модули PEAR

Портирование модулей PEAR является очень простым процессом.

Используйте переменные FILES, TESTS, DATA, SQLS, SCRIPTFILES, DOCS and EXAMPLES для перечисления файлов, которые вы хотите установить. Все перечисленные файлы будут автоматически установлены в подходящие места и добавлены в pkg-plist.

Подключите ${PORTSDIR}/devel/pear/bsd.pear.mk на последней строке Makefile.

Пример 6.7. Пример Makefile для классов PEAR
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>

Этот, и другие документы, могут быть скачаны с http://ftp.FreeBSD.org/pub/FreeBSD/doc/.

По вопросам, связанным с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.

По вопросам, связанным с этой документацией, пишите в рассылку <doc@FreeBSD.org>.