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

6.12.1. Apache

Таблица 6-17. Переменные для портов, использующих Apache

USE_APACHE Порт требует Apache. Возможные значения: yes (берёт любую версию), 20, 22, 20-22, 20+ и так далее. Версия по умолчанию 22. Более подробная информация содержится в файле ports/Mk/bsd.apache.mk и на странице wiki.freebsd.org/Apache/.
WITH_APACHE2 Эта переменная является устаревшей и не должна больше использоваться.
APXS Полный путь к исполняемому файлу apxs. Может быть переопределен в вашем порту.
HTTPD Полный путь к исполняемому файлу httpd. Может быть переопределен в вашем порту.
APACHE_VERSION Версия установленного Apache (переменная только для чтения). Эта переменная доступна только после подключения bsd.port.pre.mk. Возможные значения: 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. Веб-приложения

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

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

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

6.12.3. PHP

Таблица 6-19. Переменные для портов, использующих 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.12.4. Модули PEAR

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

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

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

Пример 6-6. Пример 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>
По вопросам связанным с системой портов для FreeBSD, пишите по адресу <ports@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите по адресу <doc@FreeBSD.org>.