Это Yaws, веб-сервер для динамического контента, написанный на Erlang.
Yaws Web Page
Yaws Web Page доступна онлайн с документацией и примерами.
Yaws Mailing List
Для обсуждения Yaws используется erlyaws-list. Архив списков рассылки может быть полезен.
https://lists.sourceforge.net/lists/listinfo/erlyaws-list https://sourceforge.net/p/erlyaws/mailman/erlyaws-list/
Подготовка к сборке
Получите и установите систему Erlang (http://www.erlang.org).
Требуется Erlang/OTP 22.0 или выше для компиляции Yaws.
Если вы клонировали исходный код с GitHub и хотите собрать его с помощью autotools, обратите внимание, что в исходном коде нет скрипта ./configure, поэтому создайте его:
$> autoreconf -fi
Установите зависимости сборки. Необходимые пакеты для компиляции Yaws (на основе пакетов Debian):
Чтобы собрать документацию (необязательно), вам также необходимо установить:
На Ubuntu/debian это примерно равно:
$> apt-get build-dep yaws
В MacOS и OS X убедитесь, что необходимые инструменты командной строки Xcode и среда разработки настроены правильно, выполнив следующую команду:
xcode-select --install
Наконец, чтобы запустить тестовые наборы, Yaws должен установить:
Сборка
Вы можете собрать через autotools:
$> ./configure --prefix=/usr/local
или через rebar3:
$> rebar3 compile
При использовании rebar3 вы получите «локальную установку», которую можно запустить через rebar3 shell
.
При использовании autotools сборка будет настроена по умолчанию для установки в /usr/local. Для получения дополнительной информации о каталогах установки и других поддерживаемых параметрах см. справку по настройке. Полезные параметры:
--with-defaultcharset=CHARSET указать кодировку по умолчанию, например UTF-8
--with-extrainclude=DIR каталог для включения, если, например, pam установлен в каком-то странном месте
--with-erlang=PREFIX префикс, где установлен Erlang (необязательно)
Примечание для упаковщиков (rpm, deb...): все цели установки поддерживают переменную DESTDIR. Таким образом, если мы сделаем:
$> ./configure --prefix=/usr; make
мы можем впоследствии сделать:
$> make install DESTDIR=/foo/bar
Все файлы Yaws будут установлены в DESTDIR, но весь код будет предполагать, что Yaws установлен под /usr.
Основные цели make:
Воспроизводимые сборки
Можно создавать детерминированные сборки, что позволяет выполнять воспроизводимые сборки Yaws.
Детерминированная сборка включается либо путём запуска configure с параметрами --enable-deterministic-build
и --with-source-date-epoch
:
$> ./configure --enable-deterministic-build
--with-source-date-epoch=$known_unix_timestamp
либо путём установки переменных среды YAWS_DETERMINISTIC_BUILD
и SOURCE_DATE_EPOCH
перед запуском autoreconf
и configure
, соответственно:
$> export YAWS_DETERMINISTIC_BUILD=true # установка любого значения включит Автоконфигурация и сборка
После выполнения любой из двух указанных конфигураций выполните сборку как обычно:
$> make all doc
Конфигурации для включения детерминированных сборок добавляют флаг erlc +deterministic
, удаляют флаг +debug_info
, генерируют детерминированный файл yaws_generated.beam
и устанавливают, например, дату создания в yaws.ps
и yaws.pdf
на основе значения SOURCE_DATE_EPOCH
, которое должно быть целым числом, отражающим количество секунд с начала эпохи Unix. (Один из способов получить значение эпохи — использовать команду date '+%s'
в Linux или macOS, например. Если вы используете версию оболочки bash 4.2 или новее, printf '%(%s)T\n' -1
даёт значение эпохи в виде целого числа, а начиная с версии 5 оболочка bash предоставляет переменную $EPOCHSECONDS
.)
Обратите внимание, что различные пути в файлах конфигурации, шаблонах, примерах и т. д. создаются на основе настроенного префикса установки в конфигурационных файлах; таким образом, они будут различаться, если префикс установки отличается в разных сборках. Это можно смягчить, используя DESTDIR при установке (подробнее см. раздел «Сборка» выше).
Тестирование сборки
С помощью autotools для тестирования сборки необходимо установить её где-нибудь:
$> ./configure --prefix=$PWD/_inst && make install
$> $PWD/_inst/bin/yaws -i
Если вы использовали rebar3 для сборки Yaws, вы можете запустить Yaws с помощью
$> rebar3 shell
Любой подход запустит веб-сервер по адресу http://0.0.0.0:8000. Завершите работу через ^C или ^G, затем q, или
> init:stop()
Примечание: если вы использовали rebar3 для сборки системы, ни одно из следующих направлений не применимо.
Установка и запуск
Примечание: следующие команды могут потребовать привилегий суперпользователя, в зависимости от префикса установки.
Просто запустите:
$> make install
Затем, чтобы запустить Yaws, используйте его скрипт:
$> ${bindir}/yaws -i
Это запускает интерактивную систему.
При использовании файла yaws.conf по умолчанию это создаст веб-сервер на http://${host} и один на https://${host}.
Вы можете адаптировать конфигурацию Yaws, отредактировав файл '${sysconfig}/yaws/yaws.conf'.
Демонизация Yaws
Запустите его с использованием опций '--daemon' и '--heart':
$> ${bindir}/yaws --daemon --heart
Это запустит демон (--daemon), который будет автоматически перезапускаться при сбое или зависании (--heart). Также для большинства систем мы создаём соответствующие сценарии запуска в ${sysconfdir}/init.d.
Пример:
$> autoreconf -fi
$> ./configure --sysconfdir=/etc
$> make && make install
$> /etc/init.d/yaws start
Политика безопасности
Чтобы сообщить об уязвимостях безопасности или других проблемах, связанных с безопасностью, пожалуйста, обратитесь к Политике безопасности Yaws.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )