Руководство FreeBSD по созданию портов
Пред. | Глава 6. Особые соглашения | След.

# 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>

Пред. | Начало | След.
Использование Java | Уровень выше | Использование Python

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