|
Программирование
On-line приложения
Почитать
Web-сервер Apache
Печать и форматирование
MySQL
Разные рецепты
Сборка/установка
Справки
Философия
Мой опыт
Скачать
Программы на Tcl/Tk (GUI)
Программы на Python/Tk (GUI)
Программы (CLI)
Help
Хобби
Фракталы
on-line
Язык для рисования фракталов
Гиперкуб
Теория относительности
Ампуллярии
Преподавание
Студенту/абитуриенту
Мой опыт
Автора!
|
Сборка Perl и mod_perlОбщие замечанияЭта заметка относится к Apache 1.3. Версия 2.0 заметно отличается. При установке ПО из исходников, я предпочитаю не «портить» систему. На большинстве серверов вы обнаружите ПО, собранное именно с общепринятыми опциями. Поэтому я собираю ПО из-под пользователя (не root) и устанавливаю в домашней папке этого пользователя. Сборка PerlЗачем: утечки памяти во FreeBSD/mod_perlОбнаружено (и это достаточно известный факт), что «родной» Perl во FreeBSD (а возможно и в других UNIX) собран с такими опциями, что mod_perl чуть-чуть «течёт» (происходит постоянная утечка памяти). Основное зло — опция perl -V | grep usemymalloc Если вы нашли запись -Dusemymalloc=y то дело скорее всего в этом. ПересборкаЯ пересобираю Perl вот в такой конфигурации: #!/bin/sh
sh Configure -sde \
-Dprefix=/usr/home/c/local \
-Ui_malloc \
-Ui_iconv \
-Uinstallusrbinperl \
-Doptimize=-O2 \
-Ui_gdbm \
-Uusethreads \
-Uusemymalloc \
-Uuse64bitint \
-Uuse64bitall \
-UuselargefilesЭтих опций мне всегда хватало. Основные отличия от «стандартного» Perl:
Если вы захотите установить дополнительные модули для этого Perl,
то просто вызывайте именно его (с указанием полного пути), при запуске
Сборка mod_perlЧтобы собрать mod_perl с собственным Perl (т.е. не с системным Perl), я использую примерно такой скрипт: #!/bin/sh
#
# опции сервера
#
a='--enable-module=info
--enable-module=usertrack
--enable-module=rewrite
--without-execstrip'
#
# массовое отключение возможностей сервера
# (иногда полезно)
#
#for i in setenvif auth alias userdir actions imap asis cgi \
# autoindex include negotiation env
#do
# a="$a --disable-module=$i"
#done
#
# куда ставим
#
root=/usr/home/c/local
#
# собираем сразу и mod_perl и сервер
#
$root/bin/perl Makefile.PL \
PREFIX=$root/perl \
PERL_STACKED_HANDLERS=1 \
PERL_UTIL_API=1 \
PERL_DEBUG=1 \
DO_HTTPD=1 \
USE_APACI=1 \
APACI_ARGS="$a" \
DYNAMIC=1 \
PERL_TABLE_API=1 \
APACHE_PREFIX=$root
#
# опции, которые тоже могут пригодиться
#
# USE_APXS=1 \
# USE_DSO=1
# WITH_APXS=$root/apache/bin/apxs
# APACHE_SRC=../apache_1.3.34/src
#
# ставим
#
make && make test && make installСборка идёт по классической схеме: Распаковывать исходника mod_perl и Apache следует в одной директории. Этот скрипт, естественно, надо запускать в директории, в которую распаковались исходники mod_perl. Если вы всё так и сделаете, то mod_perl сам найдёт исходники Apache'a и соберёт всё. Если вы хотите собрать mod_perl с «родным» Perl —
просто не указывайте путь к |
|
|
|