MFen:
1.127 -> 1.128 linuxemu/chapter.sgml 1.387 -> 1.409 mirrors/chapter.sgml 1.72 -> 1.78 network-servers/chapter.sgml Whitespace cleanups. Obtained from: The FreeBSD Russian Documentation Project
This commit is contained in:
parent
b5a791a740
commit
f8f0e11e47
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=27181
3 changed files with 418 additions and 241 deletions
|
@ -2,9 +2,9 @@
|
||||||
The FreeBSD Russian Documentation Project
|
The FreeBSD Russian Documentation Project
|
||||||
|
|
||||||
$FreeBSD$
|
$FreeBSD$
|
||||||
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/linuxemu/chapter.sgml,v 1.21 2006/01/30 16:20:05 gad Exp $
|
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/linuxemu/chapter.sgml,v 1.24 2006/02/18 17:42:08 marck Exp $
|
||||||
|
|
||||||
Original revision: 1.127
|
Original revision: 1.128
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<chapter id="linuxemu">
|
<chapter id="linuxemu">
|
||||||
|
@ -274,7 +274,7 @@ libc.so.4 (DLL Jump 4.5pl26) => /lib/libc.so.4.6.29</screen>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<note>
|
<note>
|
||||||
<para>Учтите, что если у вас уже есть совместно используемая библиотека
|
<para>Учтите, что если у вас уже есть совместно используемая библиотека
|
||||||
Linux с соответствующим первому столбцу результатов
|
Linux с соответствующим первому столбцу результатов
|
||||||
<command>ldd</command> основным номером версии, вам не
|
<command>ldd</command> основным номером версии, вам не
|
||||||
обязательно копировать файл, указанный в последнем столбце,
|
обязательно копировать файл, указанный в последнем столбце,
|
||||||
в вашу систему. Уже существующий файл должен подойти.
|
в вашу систему. Уже существующий файл должен подойти.
|
||||||
|
@ -294,7 +294,7 @@ libc.so.4 (DLL Jump 4.5pl26) => /lib/libc.so.4.6.29</screen>
|
||||||
<screen>libc.so.4 (DLL Jump 4.5pl26) -> libc.so.4.6.29</screen>
|
<screen>libc.so.4 (DLL Jump 4.5pl26) -> libc.so.4.6.29</screen>
|
||||||
|
|
||||||
<para>Если версии немного отличаются в последней цифре,
|
<para>Если версии немного отличаются в последней цифре,
|
||||||
копировать <filename>/lib/libc.so.4.6.29</filename>
|
копировать <filename>/lib/libc.so.4.6.29</filename>
|
||||||
необязательно, так как программа, скорее всего, будет
|
необязательно, так как программа, скорее всего, будет
|
||||||
нормально работать и с немного устаревшей версией.
|
нормально работать и с немного устаревшей версией.
|
||||||
Тем не менее, вы можете заменить
|
Тем не менее, вы можете заменить
|
||||||
|
@ -335,14 +335,14 @@ ELF binary type not known
|
||||||
Abort</screen>
|
Abort</screen>
|
||||||
|
|
||||||
<para>Чтобы помочь ядру FreeBSD отличить ELF-файл FreeBSD от
|
<para>Чтобы помочь ядру FreeBSD отличить ELF-файл FreeBSD от
|
||||||
двоичного файла Linux, используется утилита &man.brandelf.1;:</para>
|
двоичного файла Linux, используется утилита &man.brandelf.1;:</para>
|
||||||
|
|
||||||
<screen>&prompt.user; <userinput>brandelf -t Linux моя-linux-elf-программа</userinput></screen>
|
<screen>&prompt.user; <userinput>brandelf -t Linux моя-linux-elf-программа</userinput></screen>
|
||||||
|
|
||||||
<indexterm><primary>GNU toolchain</primary></indexterm>
|
<indexterm><primary>GNU toolchain</primary></indexterm>
|
||||||
|
|
||||||
<para>В настоящее время набор инструментальных средств GNU
|
<para>В настоящее время набор инструментальных средств GNU
|
||||||
(GNU toolchain) помещает необходимую маркировочную информацию
|
(GNU toolchain) помещает необходимую маркировочную информацию
|
||||||
в двоичные ELF-файлы автоматически, поэтому необходимость
|
в двоичные ELF-файлы автоматически, поэтому необходимость
|
||||||
в этом действии возникает всё реже.</para>
|
в этом действии возникает всё реже.</para>
|
||||||
</sect2>
|
</sect2>
|
||||||
|
@ -441,7 +441,7 @@ multi on</programlisting>
|
||||||
|
|
||||||
<para>Скрипты командной оболочки, которые
|
<para>Скрипты командной оболочки, которые
|
||||||
<application>&mathematica;</application> создала во
|
<application>&mathematica;</application> создала во
|
||||||
время установки должны быть измененены перед тем, как
|
время установки, должны быть изменены перед тем, как
|
||||||
вы сможете использовать их. Если вы выбрали
|
вы сможете использовать их. Если вы выбрали
|
||||||
<filename role="directory">/usr/local/bin</filename> в
|
<filename role="directory">/usr/local/bin</filename> в
|
||||||
качестве директории для помещения исполняемых файлов
|
качестве директории для помещения исполняемых файлов
|
||||||
|
@ -480,7 +480,7 @@ done</programlisting>
|
||||||
<application>&mathematica;</application> на разных машинах.</para>
|
<application>&mathematica;</application> на разных машинах.</para>
|
||||||
|
|
||||||
<para>При регистрации по электронной почте, по телефону или по факсу
|
<para>При регистрации по электронной почте, по телефону или по факсу
|
||||||
вы сообщаете <quote>machine ID</quote>, а в ответ
|
вы сообщаете <quote>machine ID</quote>, а в ответ
|
||||||
получаете пароль, состоящий из нескольких групп чисел.</para>
|
получаете пароль, состоящий из нескольких групп чисел.</para>
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
|
@ -647,16 +647,16 @@ LOG=/var/log/lmgrd.log
|
||||||
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
start)
|
start)
|
||||||
lmgrd -c ${LICENSE_FILE} 2>> ${LOG} 1>&2
|
lmgrd -c ${LICENSE_FILE} 2>> ${LOG} 1>&2
|
||||||
echo -n " lmgrd"
|
echo -n " lmgrd"
|
||||||
;;
|
;;
|
||||||
stop)
|
stop)
|
||||||
lmgrd -c ${LICENSE_FILE} -x lmdown 2>> ${LOG} 1>&2
|
lmgrd -c ${LICENSE_FILE} -x lmdown 2>> ${LOG} 1>&2
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Usage: `basename $0` {start|stop}" 1>&2
|
echo "Usage: `basename $0` {start|stop}" 1>&2
|
||||||
exit 64
|
exit 64
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
@ -813,14 +813,14 @@ case "$1" in
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
stop)
|
stop)
|
||||||
if [ -f /usr/local/etc/lmdown_TMW ]; then
|
if [ -f /usr/local/etc/lmdown_TMW ]; then
|
||||||
/compat/linux/bin/sh /usr/local/etc/lmdown_TMW > /dev/null 2>&1
|
/compat/linux/bin/sh /usr/local/etc/lmdown_TMW > /dev/null 2>&1
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Usage: $0 {start|stop}"
|
echo "Usage: $0 {start|stop}"
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
exit 0</programlisting>
|
exit 0</programlisting>
|
||||||
|
@ -971,14 +971,14 @@ exit 0</programlisting>
|
||||||
<title>Установка Linux–среды</title>
|
<title>Установка Linux–среды</title>
|
||||||
|
|
||||||
<para>Удостоверьтесь, что порты
|
<para>Удостоверьтесь, что порты
|
||||||
<filename role='package'>emulators/linux_base</filename> и
|
<filename role='package'>emulators/linux_base</filename> и
|
||||||
<filename role='package'>devel/linux_devtools</filename> установлены
|
<filename role='package'>devel/linux_devtools</filename> установлены
|
||||||
на вашей системе. Если у вас возникнут трудности с этими портами,
|
на вашей системе. Если у вас возникнут трудности с этими портами,
|
||||||
воспользуйтесь пакетами или более ранними их версиями из
|
воспользуйтесь пакетами или более ранними их версиями из
|
||||||
Коллекции Портов.</para>
|
Коллекции Портов.</para>
|
||||||
|
|
||||||
<para>Если вы хотите использовать интеллектуальный агент (intelligent
|
<para>Если вы хотите использовать интеллектуальный агент (intelligent
|
||||||
agent), придется также установить пакет TCL от Red Hat:
|
agent), придется также установить пакет TCL от Red Hat:
|
||||||
<filename>tcl-8.0.3-20.i386.rpm</filename>. Универсальная команда
|
<filename>tcl-8.0.3-20.i386.rpm</filename>. Универсальная команда
|
||||||
для установки пакетов с помощью официального порта
|
для установки пакетов с помощью официального порта
|
||||||
<application>RPM</application>
|
<application>RPM</application>
|
||||||
|
@ -1097,7 +1097,7 @@ $ORACLE_HOME/bin</literal></entry>
|
||||||
</tgroup>
|
</tgroup>
|
||||||
</informaltable>
|
</informaltable>
|
||||||
|
|
||||||
<para>Желательно устанавливать все переменные среды в файле
|
<para>Желательно устанавливать все переменные среды в файле
|
||||||
<filename>.profile</filename>. Вот реальный пример:</para>
|
<filename>.profile</filename>. Вот реальный пример:</para>
|
||||||
|
|
||||||
<programlisting>ORACLE_BASE=/oracle; export ORACLE_BASE
|
<programlisting>ORACLE_BASE=/oracle; export ORACLE_BASE
|
||||||
|
@ -1598,7 +1598,7 @@ export PATH</programlisting>
|
||||||
|
|
||||||
<para>Для этой установки был использован &dell; &poweredge; 2500:
|
<para>Для этой установки был использован &dell; &poweredge; 2500:
|
||||||
двухпроцессорная плата с двумя процессорами &pentium; III
|
двухпроцессорная плата с двумя процессорами &pentium; III
|
||||||
1000 MHz (256 Кбайт кеш), 2 Гбайта PC133 ECC SDRAM,
|
1000 MHz (256 Кбайт кэш), 2 Гбайта PC133 ECC SDRAM,
|
||||||
PERC/3 DC PCI RAID-контроллер со 128 Мбайтами и приводом
|
PERC/3 DC PCI RAID-контроллер со 128 Мбайтами и приводом
|
||||||
EIDE DVD-ROM. К RAID-контроллеру подключены два диска по
|
EIDE DVD-ROM. К RAID-контроллеру подключены два диска по
|
||||||
18 Гбайт (зеркалированы) и четыре диска по 36 Гбайт
|
18 Гбайт (зеркалированы) и четыре диска по 36 Гбайт
|
||||||
|
@ -2070,14 +2070,14 @@ sapgw00s 4800/tcp # SAP Secure Gateway 4800 + Instance-Number</programlistin
|
||||||
производственной системы (хотя это и сработало для системы
|
производственной системы (хотя это и сработало для системы
|
||||||
IDES безо всяких проблем). Необходимы следующие локали:</para>
|
IDES безо всяких проблем). Необходимы следующие локали:</para>
|
||||||
|
|
||||||
<programlisting>de_DE.ISO-8859-1
|
<programlisting>de_DE.ISO8859-1
|
||||||
en_US.ISO-8859-1</programlisting>
|
en_US.ISO8859-1</programlisting>
|
||||||
|
|
||||||
<para>Создайте ссылки следующим образом:</para>
|
<para>Создайте ссылки следующим образом:</para>
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>cd /compat/linux/usr/share/locale</userinput>
|
<screen>&prompt.root; <userinput>cd /compat/linux/usr/share/locale</userinput>
|
||||||
&prompt.root; <userinput>ln -s de_DE de_DE.ISO-8859-1</userinput>
|
&prompt.root; <userinput>ln -s de_DE de_DE.ISO8859-1</userinput>
|
||||||
&prompt.root; <userinput>ln -s en_US en_US.ISO-8859-1</userinput></screen>
|
&prompt.root; <userinput>ln -s en_US en_US.ISO8859-1</userinput></screen>
|
||||||
|
|
||||||
<para>Если их не будет, в ходе установки возникнет ряд проблем.
|
<para>Если их не будет, в ходе установки возникнет ряд проблем.
|
||||||
Если их просто проигнорировать (установив <literal>STATUS</literal>
|
Если их просто проигнорировать (установив <literal>STATUS</literal>
|
||||||
|
@ -2586,7 +2586,8 @@ options SEMUME=100 #
|
||||||
<para><filename>compat-libs-5.2-2.i386.rpm</filename></para>
|
<para><filename>compat-libs-5.2-2.i386.rpm</filename></para>
|
||||||
<para><filename>compat-glibc-5.2-2.0.7.2.i386.rpm</filename></para>
|
<para><filename>compat-glibc-5.2-2.0.7.2.i386.rpm</filename></para>
|
||||||
<para><filename>compat-egcs-5.2-1.0.3a.1.i386.rpm</filename></para>
|
<para><filename>compat-egcs-5.2-1.0.3a.1.i386.rpm</filename></para>
|
||||||
<para><filename>compat-egcs-c++-5.2-1.0.3a.1.i386.rpm</filename></para> <para><filename>compat-binutils-5.2-2.9.1.0.23.1.i386.rpm</filename></para>
|
<para><filename>compat-egcs-c++-5.2-1.0.3a.1.i386.rpm</filename></para>
|
||||||
|
<para><filename>compat-binutils-5.2-2.9.1.0.23.1.i386.rpm</filename></para>
|
||||||
|
|
||||||
<para>Дополнительную информацию см. в файлах &sap; Notes или &oracle;
|
<para>Дополнительную информацию см. в файлах &sap; Notes или &oracle;
|
||||||
<filename>Readme</filename>. Если установить эти пакеты не
|
<filename>Readme</filename>. Если установить эти пакеты не
|
||||||
|
@ -3341,11 +3342,11 @@ options SHMMAXPGS=393216
|
||||||
загрузчик.</para>
|
загрузчик.</para>
|
||||||
|
|
||||||
<para>Если файл не опознавался системой как двоичный, системный
|
<para>Если файл не опознавался системой как двоичный, системный
|
||||||
вызов &man.execve.2; возвращал ошибку, и текущий командный
|
вызов &man.execve.2; возвращал ошибку, и текущий командный
|
||||||
интерпретатор начинал выполнять файл как скрипт.</para>
|
интерпретатор начинал выполнять файл как скрипт.</para>
|
||||||
|
|
||||||
<para>По умолчанию скрипт выполнялся <quote>текущим командным
|
<para>По умолчанию скрипт выполнялся <quote>текущим командным
|
||||||
интерпретатором</quote>.</para>
|
интерпретатором</quote>.</para>
|
||||||
|
|
||||||
<para>Позднее, &man.sh.1; был модифицирован, так, чтобы проверять
|
<para>Позднее, &man.sh.1; был модифицирован, так, чтобы проверять
|
||||||
первые два символа в файле, и если они оказывались
|
первые два символа в файле, и если они оказывались
|
||||||
|
@ -3354,20 +3355,20 @@ options SHMMAXPGS=393216
|
||||||
эту модификацию).</para>
|
эту модификацию).</para>
|
||||||
|
|
||||||
<para>FreeBSD сейчас ведет себя по-другому: пробегает по списку
|
<para>FreeBSD сейчас ведет себя по-другому: пробегает по списку
|
||||||
загрузчиков,включающему специальный загрузчик <literal>#!</literal>,
|
загрузчиков,включающему специальный загрузчик <literal>#!</literal>,
|
||||||
который вызывает нужный интерпретатор, указанный после этих символов
|
который вызывает нужный интерпретатор, указанный после этих символов
|
||||||
до следующего пробела, или <filename>/bin/sh</filename>, если
|
до следующего пробела, или <filename>/bin/sh</filename>, если
|
||||||
не нашел подходящего.</para>
|
не нашел подходящего.</para>
|
||||||
<indexterm><primary>ELF</primary></indexterm>
|
<indexterm><primary>ELF</primary></indexterm>
|
||||||
|
|
||||||
<para>Для поддержки Linux ABI FreeBSD ищет магическое число,
|
<para>Для поддержки Linux ABI FreeBSD ищет магическое число,
|
||||||
соответствующее двоичному файлу ELF (на этой стадии не различаются
|
соответствующее двоичному файлу ELF (на этой стадии не различаются
|
||||||
FreeBSD, &solaris;, Linux или любая другая ОС поддерживающая формат
|
FreeBSD, &solaris;, Linux или любая другая ОС поддерживающая формат
|
||||||
ELF).</para>
|
ELF).</para>
|
||||||
<indexterm><primary>Solaris</primary></indexterm>
|
<indexterm><primary>Solaris</primary></indexterm>
|
||||||
|
|
||||||
<para>Далее, ELF-загрузчик определяет <quote>марку</quote> (brand)
|
<para>Далее, ELF-загрузчик определяет <quote>марку</quote> (brand)
|
||||||
двоичного файла ELF (специальный комментарий в ELF-файле,
|
двоичного файла ELF (специальный комментарий в ELF-файле,
|
||||||
отсутствующий в двоичных файлах ELF SVR4/&solaris;).</para>
|
отсутствующий в двоичных файлах ELF SVR4/&solaris;).</para>
|
||||||
|
|
||||||
<para>Соответственно, Linux программы должны быть
|
<para>Соответственно, Linux программы должны быть
|
||||||
|
@ -3379,7 +3380,7 @@ options SHMMAXPGS=393216
|
||||||
<para>Когда это сделано, загрузчик ELF выявит марку
|
<para>Когда это сделано, загрузчик ELF выявит марку
|
||||||
<literal>Linux</literal> в файле.</para>
|
<literal>Linux</literal> в файле.</para>
|
||||||
<indexterm>
|
<indexterm>
|
||||||
<primary>ELF</primary>
|
<primary>ELF</primary>
|
||||||
<secondary>branding</secondary>
|
<secondary>branding</secondary>
|
||||||
</indexterm>
|
</indexterm>
|
||||||
|
|
||||||
|
@ -3394,11 +3395,11 @@ options SHMMAXPGS=393216
|
||||||
поддержки Linux.</para>
|
поддержки Linux.</para>
|
||||||
|
|
||||||
<para>Вектор системных вызовов Linux содержит, среди прочего, список
|
<para>Вектор системных вызовов Linux содержит, среди прочего, список
|
||||||
записей <literal>sysent[]</literal>, адреса которых находятся в
|
записей <literal>sysent[]</literal>, адреса которых находятся в
|
||||||
модуле ядра.</para>
|
модуле ядра.</para>
|
||||||
|
|
||||||
<para>При выполнении системного вызова из двоичного файла Linux,
|
<para>При выполнении системного вызова из двоичного файла Linux,
|
||||||
код обработчика разыменовывает указатель на функцию системного вызова
|
код обработчика разыменовывает указатель на функцию системного вызова
|
||||||
из структуры <literal>proc</literal>, и получает точки входа
|
из структуры <literal>proc</literal>, и получает точки входа
|
||||||
системных вызовов Linux, а не FreeBSD.</para>
|
системных вызовов Linux, а не FreeBSD.</para>
|
||||||
|
|
||||||
|
@ -3420,7 +3421,7 @@ options SHMMAXPGS=393216
|
||||||
разобраться, что они работают не в Linux.</para>
|
разобраться, что они работают не в Linux.</para>
|
||||||
|
|
||||||
<para>Фактически, имеется ядро Linux в ядре FreeBSD; различные
|
<para>Фактически, имеется ядро Linux в ядре FreeBSD; различные
|
||||||
базовые функции, реализующие все услуги ядра, идентичны как
|
базовые функции, реализующие все услуги ядра, идентичны как
|
||||||
в записях таблицы системных вызовов FreeBSD, так и в записях
|
в записях таблицы системных вызовов FreeBSD, так и в записях
|
||||||
таблицы системных вызовов Linux: операции с файловой системой,
|
таблицы системных вызовов Linux: операции с файловой системой,
|
||||||
виртуальная память, средства доставки сигналов,
|
виртуальная память, средства доставки сигналов,
|
||||||
|
@ -3435,7 +3436,7 @@ options SHMMAXPGS=393216
|
||||||
<literal>proc</literal> процесса, выполняющего вызов).</para>
|
<literal>proc</literal> процесса, выполняющего вызов).</para>
|
||||||
|
|
||||||
<para>Какая же реализация ABI для FreeBSD <quote>родная</quote>? Это
|
<para>Какая же реализация ABI для FreeBSD <quote>родная</quote>? Это
|
||||||
не имеет значения. Единственное различие (на данный момент, в
|
не имеет значения. Единственное различие (на данный момент, в
|
||||||
будущем все может и, вероятно, изменится), пожалуй, в том, что
|
будущем все может и, вероятно, изменится), пожалуй, в том, что
|
||||||
функции системных вызовов FreeBSD зашиты в ядро, а для Linux они
|
функции системных вызовов FreeBSD зашиты в ядро, а для Linux они
|
||||||
могут быть либо статически скомпонованы в ядро, либо получаться
|
могут быть либо статически скомпонованы в ядро, либо получаться
|
||||||
|
@ -3446,7 +3447,7 @@ options SHMMAXPGS=393216
|
||||||
отсутствует.</para>
|
отсутствует.</para>
|
||||||
|
|
||||||
<para>В таком случае, почему же иногда говорят об
|
<para>В таком случае, почему же иногда говорят об
|
||||||
<quote>эмуляции Linux</quote>? Чтобы <quote>насолить</quote>
|
<quote>эмуляции Linux</quote>? Чтобы <quote>насолить</quote>
|
||||||
FreeBSD! Фактически, причина в том, что на момент первой реализации
|
FreeBSD! Фактически, причина в том, что на момент первой реализации
|
||||||
не существовало слова, которое бы точнее описывало этот процесс.
|
не существовало слова, которое бы точнее описывало этот процесс.
|
||||||
Нельзя было сказать, что FreeBSD запускает приложения Linux (без
|
Нельзя было сказать, что FreeBSD запускает приложения Linux (без
|
||||||
|
|
|
@ -2,9 +2,9 @@
|
||||||
The FreeBSD Russian Documentation Project
|
The FreeBSD Russian Documentation Project
|
||||||
|
|
||||||
$FreeBSD$
|
$FreeBSD$
|
||||||
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/mirrors/chapter.sgml,v 1.28 2005/09/25 09:51:47 marck Exp $
|
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/mirrors/chapter.sgml,v 1.31 2006/02/18 17:54:40 marck Exp $
|
||||||
|
|
||||||
Original revision: 1.387
|
Original revision: 1.409
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<appendix id="mirrors">
|
<appendix id="mirrors">
|
||||||
|
@ -399,15 +399,6 @@
|
||||||
(éÓÐÏÌØÚÕÊÔÅ <command>cvs login</command> É ××ÅÄÉÔÅ ÐÁÒÏÌØ
|
(éÓÐÏÌØÚÕÊÔÅ <command>cvs login</command> É ××ÅÄÉÔÅ ÐÁÒÏÌØ
|
||||||
<quote>anoncvs</quote> × ÏÔ×ÅÔ ÎÁ ÐÒÉÇÌÁÛÅÎÉÅ.)</para>
|
<quote>anoncvs</quote> × ÏÔ×ÅÔ ÎÁ ÐÒÉÇÌÁÛÅÎÉÅ.)</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
|
||||||
<para><emphasis>û×ÅÃÉÑ</emphasis>:
|
|
||||||
freebsdanoncvs@anoncvs.se.FreeBSD.org:/home/ncvs
|
|
||||||
(ÔÏÌØËÏ ssh - ÂÅÚ ÐÁÒÏÌÑ)</para>
|
|
||||||
|
|
||||||
<programlisting>SSH HostKey: 1024 a7:34:15:ee:0e:c6:65:cf:40:78:2d:f3:cd:87:bd:a6 root@apelsin.fruitsalad.org
|
|
||||||
SSH2 HostKey: 1024 21:df:04:03:c7:26:3e:e8:36:1a:50:2d:c7:ae:b8:5f ssh_host_dsa_key.pub</programlisting>
|
|
||||||
|
|
||||||
</listitem>
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para><emphasis>óûá</emphasis>:
|
<para><emphasis>óûá</emphasis>:
|
||||||
freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs
|
freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs
|
||||||
|
@ -464,15 +455,12 @@ SSH2 HostKey: 1024 80:a7:87:fa:61:d9:25:5c:33:d5:48:51:aa:8f:b6:12 ssh_host_dsa_
|
||||||
ÐÒÉÍÅÒÏ× ÉÓÐÏÌØÚÏ×ÁÎÉÑ Anonymous CVS:</para>
|
ÐÒÉÍÅÒÏ× ÉÓÐÏÌØÚÏ×ÁÎÉÑ Anonymous CVS:</para>
|
||||||
|
|
||||||
<example>
|
<example>
|
||||||
<title>éÚ×ÌÅÞÅÎÉÅ ËÏÄÁ ÉÚ -CURRENT (&man.ls.1;) Ó
|
<title>Извлечение кода из -CURRENT (&man.ls.1;):</title>
|
||||||
ÐÏÓÌÅÄÕÀÝÉÍ ÕÄÁÌÅÎÉÅÍ:</title>
|
|
||||||
|
|
||||||
<screen>&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs</userinput>
|
<screen>&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs</userinput>
|
||||||
&prompt.user; <userinput>cvs login</userinput>
|
&prompt.user; <userinput>cvs login</userinput>
|
||||||
<emphasis>At the prompt, enter the password</emphasis> <quote>anoncvs</quote>.
|
<emphasis>At the prompt, enter the password</emphasis> <quote>anoncvs</quote>.
|
||||||
&prompt.user; <userinput>cvs co ls</userinput>
|
&prompt.user; <userinput>cvs co ls</userinput>
|
||||||
&prompt.user; <userinput>cvs release -d ls</userinput>
|
|
||||||
&prompt.user; <userinput>cvs logout</userinput>
|
|
||||||
</screen>
|
</screen>
|
||||||
</example>
|
</example>
|
||||||
|
|
||||||
|
@ -487,38 +475,33 @@ Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known host
|
||||||
</example>
|
</example>
|
||||||
|
|
||||||
<example>
|
<example>
|
||||||
<title>éÚ×ÌÅÞÅÎÉÅ &man.ls.1; ÉÚ ×ÅÔ×É ÄÌÑ 3.X-STABLE:</title>
|
<title>Извлечение &man.ls.1; из ветви для 6-STABLE:</title>
|
||||||
|
|
||||||
<screen>&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs</userinput>
|
<screen>&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs</userinput>
|
||||||
&prompt.user; <userinput>cvs login</userinput>
|
&prompt.user; <userinput>cvs login</userinput>
|
||||||
<emphasis>At the prompt, enter the password</emphasis> <quote>anoncvs</quote>.
|
<emphasis>At the prompt, enter the password</emphasis> <quote>anoncvs</quote>.
|
||||||
&prompt.user; <userinput>cvs co -rRELENG_3 ls</userinput>
|
&prompt.user; <userinput>cvs co -rRELENG_6 ls</userinput>
|
||||||
&prompt.user; <userinput>cvs release -d ls</userinput>
|
|
||||||
&prompt.user; <userinput>cvs logout</userinput>
|
|
||||||
</screen>
|
</screen>
|
||||||
</example>
|
</example>
|
||||||
|
|
||||||
<example>
|
<example>
|
||||||
<title>óÏÚÄÁÎÉÅ ÓÐÉÓËÁ ÉÚÍÅÎÅÎÉÊ &man.ls.1; (× ×ÉÄÅ unified diff)</title>
|
<title>óÏÚÄÁÎÉÅ ÓÐÉÓËÁ ÉÚÍÅÎÅÎÉÊ &man.ls.1; (× ×ÉÄÅ unified diff)</title>
|
||||||
|
|
||||||
<screen>&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs</userinput>
|
<screen>&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs</userinput>
|
||||||
&prompt.user; <userinput>cvs login</userinput>
|
&prompt.user; <userinput>cvs login</userinput>
|
||||||
<emphasis>At the prompt, enter the password</emphasis> <quote>anoncvs</quote>.
|
<emphasis>At the prompt, enter the password</emphasis> <quote>anoncvs</quote>.
|
||||||
&prompt.user; <userinput>cvs rdiff -u -rRELENG_3_0_0_RELEASE -rRELENG_3_4_0_RELEASE ls</userinput>
|
&prompt.user; <userinput>cvs rdiff -u -rRELENG_5_3_0_RELEASE -rRELENG_5_4_0_RELEASE ls</userinput>
|
||||||
&prompt.user; <userinput>cvs logout</userinput>
|
|
||||||
</screen>
|
</screen>
|
||||||
</example>
|
</example>
|
||||||
|
|
||||||
<example>
|
<example>
|
||||||
<title>ðÏÉÓË ÄÏÓÔÕÐÎÙÈ ÉÍÅÎ ÍÏÄÕÌÅÊ:</title>
|
<title>ðÏÉÓË ÄÏÓÔÕÐÎÙÈ ÉÍÅÎ ÍÏÄÕÌÅÊ:</title>
|
||||||
|
|
||||||
<screen>&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs</userinput>
|
<screen>&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs</userinput>
|
||||||
&prompt.user; <userinput>cvs login</userinput>
|
&prompt.user; <userinput>cvs login</userinput>
|
||||||
<emphasis>At the prompt, enter the password</emphasis> <quote>anoncvs</quote>.
|
<emphasis>At the prompt, enter the password</emphasis> <quote>anoncvs</quote>.
|
||||||
&prompt.user; <userinput>cvs co modules</userinput>
|
&prompt.user; <userinput>cvs co modules</userinput>
|
||||||
&prompt.user; <userinput>more modules/modules</userinput>
|
&prompt.user; <userinput>more modules/modules</userinput>
|
||||||
&prompt.user; <userinput>cvs release -d modules</userinput>
|
|
||||||
&prompt.user; <userinput>cvs logout</userinput>
|
|
||||||
</screen>
|
</screen>
|
||||||
</example>
|
</example>
|
||||||
</sect2>
|
</sect2>
|
||||||
|
@ -536,7 +519,7 @@ Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known host
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para><ulink url="http://www.cvshome.org/">CVS Home</ulink>,
|
<para><ulink url="http://ximbiot.com/cvs/wiki/">CVS Home</ulink>,
|
||||||
ÓÏÏÂÝÅÓÔ×Ï ÒÁÚÒÁÂÏÔËÉ É ÐÏÄÄÅÒÖËÉ CVS.</para>
|
ÓÏÏÂÝÅÓÔ×Ï ÒÁÚÒÁÂÏÔËÉ É ÐÏÄÄÅÒÖËÉ CVS.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
|
@ -1798,6 +1781,15 @@ doc/zh_*</screen>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><literal>ports-net-im
|
||||||
|
release=cvs</literal></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Программы обмена быстрыми сообщениями.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><literal>ports-net-mgmt
|
<term><literal>ports-net-mgmt
|
||||||
release=cvs</literal></term>
|
release=cvs</literal></term>
|
||||||
|
@ -1807,6 +1799,15 @@ doc/zh_*</screen>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><literal>ports-net-p2p
|
||||||
|
release=cvs</literal></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Сети клиентского обмена (peer-to-peer).</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><literal>ports-news
|
<term><literal>ports-news
|
||||||
release=cvs</literal></term>
|
release=cvs</literal></term>
|
||||||
|
@ -2325,6 +2326,170 @@ doc/zh_*</screen>
|
||||||
</sect2>
|
</sect2>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
|
<sect1 id="portsnap">
|
||||||
|
<title>Использование Portsnap</title>
|
||||||
|
|
||||||
|
<sect2 id="portsnap-intro">
|
||||||
|
<title>Введение</title>
|
||||||
|
|
||||||
|
<para><application>Portsnap</application> — система для
|
||||||
|
защищенного распространения дерева портов &os;. Примерно раз
|
||||||
|
в час генерируется <quote>снэпшот</quote> дерева портов,
|
||||||
|
который затем архивируется и подписывается электронной подписью.
|
||||||
|
Полученные файлы затем распространяются при помощи HTTP.</para>
|
||||||
|
|
||||||
|
<para>Подобно <application>CVSup</application>,
|
||||||
|
<application>portsnap</application> использует
|
||||||
|
<emphasis>активную (pull)</emphasis> модель обновлений:
|
||||||
|
упакованное и подписанное дерево помещается на веб-сервер, откуда
|
||||||
|
его должны забирать клиенты. Пользователь должен либо запустить
|
||||||
|
&man.portsnap.8; вручную, чтобы получить
|
||||||
|
обновления, либо настроить периодическое задание при помощи
|
||||||
|
&man.cron.8;.<para>
|
||||||
|
|
||||||
|
<para>По техническим причинам <application>Portsnap</application>
|
||||||
|
не обновляет основное (<quote>живое</quote>) дерево портов в
|
||||||
|
каталоге <filename>/usr/ports/</filename>, а работает со сжатой
|
||||||
|
копией дерева в каталоге <filename>/var/db/portsnap/</filename>.
|
||||||
|
Впоследствии эта копия используется для обновления основного
|
||||||
|
дерева.</para>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<para>Если <application>Portsnap</application> был установлен из
|
||||||
|
Коллекции портов &os;, каталогом для снэпшотов будет
|
||||||
|
<filename>/usr/local/portsnap/</filename>, а не
|
||||||
|
<filename>/var/db/portsnap/</filename>.</para>
|
||||||
|
</note>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2 id="portsnap-install">
|
||||||
|
<title>Установка</title>
|
||||||
|
|
||||||
|
<para>&os; начиная с версии 6.0 содержит
|
||||||
|
<application>Portsnap</application> в базовой поставке системы.
|
||||||
|
Для более ранних релизов &os; эта утилита может быть установлена
|
||||||
|
из порта <filename role="package">sysutils/portsnap</filename>.</para>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2 id="portsnap-config">
|
||||||
|
<title>Конфигурация Portsnap</title>
|
||||||
|
|
||||||
|
<para>Конфигурация <application>Portsnap</application> описывается
|
||||||
|
файлом <filename>/etc/portsnap.conf</filename>. Для большинства
|
||||||
|
пользователей вполне подойдет конфигурация по умолчанию;
|
||||||
|
за подробностями обращайтесь к странице справочника
|
||||||
|
&man.portsnap.conf.5;.</para>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<para>При установке <application>Portsnap</application> из
|
||||||
|
Коллекции портов используется файл конфигурации
|
||||||
|
<filename>/usr/local/etc/portsnap.conf</filename>.
|
||||||
|
При установке порта этот файл не создается; вам нужно создать
|
||||||
|
его самостоятельно командой</para>
|
||||||
|
|
||||||
|
<screen>&prompt.root; <userinput>cd /usr/local/etc && cp portsnap.conf.sample portsnap.conf</userinput></screen>
|
||||||
|
</note>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Первый запуск <application>Portsnap</application></title>
|
||||||
|
|
||||||
|
<para>При первом запуске утилите &man.portsnap.8;
|
||||||
|
потребуется загрузить упакованный снэпшот полного дерева портов
|
||||||
|
в каталог <filename>/var/db/portsnap/</filename>
|
||||||
|
(<filename>/usr/local/portsnap/</filename>, если
|
||||||
|
<application>Portsnap</application> был установлен из Коллекции
|
||||||
|
портов). На начало 2006 года размер снэпшота составляет около
|
||||||
|
55 МБ.</para>
|
||||||
|
|
||||||
|
<screen>&prompt.root; <userinput>portsnap fetch</userinput></screen>
|
||||||
|
|
||||||
|
<para>После загрузки снэпшота из него может быть развернуто основное
|
||||||
|
дерево портов. Это необходимо, даже есть каталог
|
||||||
|
<filename>/usr/ports/</filename>заполнен каким-либо другим
|
||||||
|
способом, например при помощи <application>CVSup</application>,
|
||||||
|
поскольку позволяет установить точку отсчета, от которой
|
||||||
|
<command>portsnap</command> будет определять необходимый
|
||||||
|
объем изменений.</para>
|
||||||
|
|
||||||
|
<screen>&prompt.root; <userinput>portsnap extract</userinput></screen>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<para>В конфигурации установки по умолчанию каталог
|
||||||
|
<filename role="directory">/usr/ports</filename> не создан.
|
||||||
|
Создайте его самостоятельно перед первым запуском
|
||||||
|
утилиты <command>portsnap</command>.</para>
|
||||||
|
</note>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Обновление дерева портов</title>
|
||||||
|
|
||||||
|
<para>После того как первоначальный снэпшот дерева портов будет
|
||||||
|
развернут в каталог <filename>/usr/ports/</filename>, обновление
|
||||||
|
дерева портов будет состоять из двух шагов:
|
||||||
|
загрузки (<emphasis>fetch</emphasis>) обновлений к упакованному
|
||||||
|
снэпшоту и последующего обновления (<emphasis>update</emphasis>)
|
||||||
|
основного дерева. Оба шага могут быть выполнены одним запуском
|
||||||
|
<command>portsnap</command>:</para>
|
||||||
|
|
||||||
|
<screen>&prompt.root; <userinput>portsnap fetch update</userinput></screen>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<para>Некоторые из старых версий <command>portsnap</command>
|
||||||
|
не поддерживают такой синтаксис; в этом случае, используйте две
|
||||||
|
последовательные команды:</para>
|
||||||
|
|
||||||
|
<screen>&prompt.root; <userinput>portsnap fetch</userinput>
|
||||||
|
&prompt.root; <userinput>portsnap update</userinput></screen>
|
||||||
|
</note>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Запуск portsnap из cron</title>
|
||||||
|
|
||||||
|
<para>Для того, чтобы избежать проблем с <quote>безумными
|
||||||
|
толпами</quote> клиентов, одновременно приходящими на сервера
|
||||||
|
<application>Portsnap</application>, команда <command>portsnap
|
||||||
|
fetch</command> не запустится как задание &man.cron.8;.
|
||||||
|
Для работы из <command>cron</command> предназначена специальная
|
||||||
|
команда <command>portsnap cron</command>, которая перед
|
||||||
|
загрузкой обновлений ожидает случайное время до 3600 секунд.</para>
|
||||||
|
|
||||||
|
<para>Кроме того, настоятельно не рекомендуется запускать из
|
||||||
|
<command>cron</command> команду <command>portsnap
|
||||||
|
update</command>, поскольку при пересечении с процессом сборки
|
||||||
|
или установки какого-либо порта неизбежно возникнет конфликт.
|
||||||
|
С другой стороны, безопасно обновить индексный файл, запустив
|
||||||
|
<command>portsnap -I update</command> (разумеется, команду
|
||||||
|
<command>portsnap update</command> без ключа <option>-I</option>
|
||||||
|
для обновления оставшейся части дерева портов придется запустить
|
||||||
|
вручную).</para>
|
||||||
|
|
||||||
|
<para>Для ежедневного обновления упакованного снэпшота и индексного
|
||||||
|
файла при помощи <command>portsnap</command> и последующего
|
||||||
|
отчета почтой об устаревших установленных пакетах добавьте
|
||||||
|
в ваш файл <filename>/etc/crontab</filename> строку</para>
|
||||||
|
|
||||||
|
<programlisting>0 3 * * * root portsnap -I cron update && pkg_version -vIL=</programlisting>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<para>Если системные часы не установлены в локальное время,
|
||||||
|
пожалуйста, замените <literal>3</literal> на случайное
|
||||||
|
число между 0 и 23, чтобы не создавать пиковых нагрузок на
|
||||||
|
серверы <application>portsnap</application>.</para>
|
||||||
|
</note>
|
||||||
|
<note>
|
||||||
|
<para>Старые версии утилиты <command>portsnap</command>
|
||||||
|
не поддерживали несколько команд при одном запуске (например,
|
||||||
|
<literal>cron update</literal>). Если команда, указанная выше,
|
||||||
|
не сработает, попробуйте заменить
|
||||||
|
<command>portsnap -I cron update</command> на
|
||||||
|
<command>portsnap cron && portsnap -I update</command>.</para>
|
||||||
|
</note>
|
||||||
|
</sect2>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="cvs-tags">
|
<sect1 id="cvs-tags">
|
||||||
<title>ôÅÇÉ CVS</title>
|
<title>ôÅÇÉ CVS</title>
|
||||||
|
|
||||||
|
@ -2368,13 +2533,23 @@ doc/zh_*</screen>
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term>RELENG_6</term>
|
<term>RELENG_6</term>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>÷ÅÔר ÒÁÚÒÁÂÏÔËÉ FreeBSD-6.X, ÉÚ×ÅÓÔÎÁÑ ÔÁËÖÅ ËÁË
|
<para>÷ÅÔר ÒÁÚÒÁÂÏÔËÉ FreeBSD-6.X, ÉÚ×ÅÓÔÎÁÑ ÔÁËÖÅ ËÁË
|
||||||
FreeBSD 6-STABLE.</para>
|
FreeBSD 6-STABLE.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term>RELENG_6_0</term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Ветвь релиза для FreeBSD-6.0, используемая только
|
||||||
|
для исправлений безопасности и других критических
|
||||||
|
исправлений.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term>RELENG_5</term>
|
<term>RELENG_5</term>
|
||||||
|
|
||||||
|
@ -2571,6 +2746,14 @@ doc/zh_*</screen>
|
||||||
ÎÅÔ ÓÐÅÃÉÁÌØÎÙÈ ÉÍÅÎ ÄÌÑ ÒÅÌÉÚÏ×.</para>
|
ÎÅÔ ÓÐÅÃÉÁÌØÎÙÈ ÉÍÅÎ ÄÌÑ ÒÅÌÉÚÏ×.</para>
|
||||||
|
|
||||||
<variablelist>
|
<variablelist>
|
||||||
|
<varlistentry>
|
||||||
|
<term>RELENG_6_0_0_RELEASE</term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>FreeBSD 6.0</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term>RELENG_5_4_0_RELEASE</term>
|
<term>RELENG_5_4_0_RELEASE</term>
|
||||||
|
|
||||||
|
|
|
@ -2,9 +2,9 @@
|
||||||
The FreeBSD Russian Documentation Project
|
The FreeBSD Russian Documentation Project
|
||||||
|
|
||||||
$FreeBSD$
|
$FreeBSD$
|
||||||
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/network-servers/chapter.sgml,v 1.27 2006/01/06 18:40:03 gad Exp $
|
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/network-servers/chapter.sgml,v 1.30 2006/02/18 17:54:40 marck Exp $
|
||||||
|
|
||||||
Original revision: 1.72
|
Original revision: 1.78
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<chapter id="network-servers">
|
<chapter id="network-servers">
|
||||||
|
@ -106,6 +106,12 @@
|
||||||
<contrib>Текст предоставил </contrib>
|
<contrib>Текст предоставил </contrib>
|
||||||
</author>
|
</author>
|
||||||
</authorgroup>
|
</authorgroup>
|
||||||
|
<authorgroup>
|
||||||
|
<author>
|
||||||
|
<contrib>Обновлено для &os; 6.1-RELEASE</contrib>
|
||||||
|
<othername>Проект документации &os;</othername>
|
||||||
|
</author>
|
||||||
|
</authorgroup>
|
||||||
</sect1info>
|
</sect1info>
|
||||||
|
|
||||||
<title><quote>Супер-сервер</quote> <application>inetd</application></title>
|
<title><quote>Супер-сервер</quote> <application>inetd</application></title>
|
||||||
|
@ -113,15 +119,15 @@
|
||||||
<sect2 id="network-inetd-overview">
|
<sect2 id="network-inetd-overview">
|
||||||
<title>Обзор</title>
|
<title>Обзор</title>
|
||||||
|
|
||||||
<para>&man.inetd.8; называют также <quote>супер-сервером
|
<para>&man.inetd.8; иногда называют также <quote>супер-сервером
|
||||||
Интернет</quote>, потому что он управляет соединениями к многим
|
Интернет</quote>, потому что он управляет соединениями к многим
|
||||||
сервисам. Когда
|
сервисам. Когда
|
||||||
<application>inetd</application> принимает соединение, он определяет,
|
<application>inetd</application> принимает соединение, он определяет,
|
||||||
для какой программы предназначено соединение, запускает соответствующий
|
для какой программы предназначено соединение, запускает соответствующий
|
||||||
процесс и предоставляет ему сокет, ссылка на который передается
|
процесс и предоставляет ему сокет, ссылка на который передается
|
||||||
процессу в качестве стандартных устройств ввода, вывода и сообщения об
|
процессу в качестве стандартных устройств ввода, вывода и сообщения об
|
||||||
ошибках. Запуск одного экземпляра
|
ошибках. Для не слишком нагруженных серверов запуск через
|
||||||
<application>inetd</application> уменьшает общую нагрузку на систему по
|
<application>inetd</application> может уменьшить общую нагрузку на систему по
|
||||||
сравнению с запуском каждого даемона индивидуально в выделенном
|
сравнению с запуском каждого даемона индивидуально в выделенном
|
||||||
режиме.</para>
|
режиме.</para>
|
||||||
|
|
||||||
|
@ -141,15 +147,19 @@
|
||||||
<title>Настройки</title>
|
<title>Настройки</title>
|
||||||
|
|
||||||
<para><application>inetd</application> инициализируется посредством
|
<para><application>inetd</application> инициализируется посредством
|
||||||
системы <filename>/etc/rc.conf</filename>. Параметр
|
системы &man.rc.8;. Параметр
|
||||||
<literal>inetd_enable</literal> по умолчанию установлен в
|
<literal>inetd_enable</literal> по умолчанию установлен в
|
||||||
<literal>NO</literal>, однако часто включается утилитой
|
<literal>NO</literal>, однако может быть включен утилитой
|
||||||
<application>sysinstall</application> при выборе профиля среднего
|
<application>sysinstall</application> в процессе установки.
|
||||||
уровня безопасности. Указание
|
Указание
|
||||||
<programlisting>inetd_enable="YES"</programlisting> или
|
<programlisting>inetd_enable="YES"</programlisting> или
|
||||||
<programlisting>inetd_enable="NO"</programlisting> в файле
|
<programlisting>inetd_enable="NO"</programlisting> в файле
|
||||||
<filename>/etc/rc.conf</filename> может задать или запретить запуск
|
<filename>/etc/rc.conf</filename> разрешит или запретит запуск
|
||||||
<application>inetd</application> во время загрузки.</para>
|
<application>inetd</application> во время загрузки.
|
||||||
|
Команда
|
||||||
|
<programlisting>/etc/rc.d/inetd rcvar</programlisting>
|
||||||
|
покажет текущие установки переменных, относящихся к
|
||||||
|
<application>inetd</application>.</para>
|
||||||
|
|
||||||
<para>Кроме того, через <literal>inetd_flags</literal> даемону
|
<para>Кроме того, через <literal>inetd_flags</literal> даемону
|
||||||
<application>inetd</application> могут быть переданы различные
|
<application>inetd</application> могут быть переданы различные
|
||||||
|
@ -159,47 +169,29 @@
|
||||||
<sect2 id="network-inetd-cmdline">
|
<sect2 id="network-inetd-cmdline">
|
||||||
<title>Параметры командной строки</title>
|
<title>Параметры командной строки</title>
|
||||||
|
|
||||||
<para>Формат вызова <application>inetd</application>:</para>
|
<para>Как и большинство даемонов, для <application>inetd</application>
|
||||||
|
существует большое количество разнообразных опций, изменяющих
|
||||||
|
его поведение. Полный из список таков;</para>
|
||||||
|
|
||||||
<para><option> inetd [-d] [-l] [-w] [-W] [-c maximum] [-C rate] [-a address | hostname]
|
<para><command>inetd</command> <option>[-d] [-l] [-w] [-W] [-c maximum] [-C rate] [-a address | hostname]
|
||||||
[-p filename] [-R rate] [configuration file]</option></para>
|
[-p filename] [-R rate] [-s maximum] [configuration file]</option></para>
|
||||||
|
|
||||||
|
<para>Опции могут передаваться <application>inetd</application>
|
||||||
|
при помощи переменной <literal>inetd_flags</literal> файла
|
||||||
|
<filename>/etc/rc.conf</filename>. По умолчанию переменная
|
||||||
|
<literal>inetd_flags</literal> установлена в <literal>-wW -C
|
||||||
|
60</literal>, то есть включает обработку TCP wrapping и запрещает
|
||||||
|
обращаться с одного IP-адреса к сервису более чем 60 раз в
|
||||||
|
минуту.</para>
|
||||||
|
|
||||||
|
<para>Начинающих пользователей порадует отсутствие необходимости
|
||||||
|
менять эти параметры в стандартных случаях. Тем не менее, мы
|
||||||
|
остановимся на опциях, ограничивающих количество и частоту
|
||||||
|
соединений, поскольку они могут быть полезны для исключения
|
||||||
|
массированных атак. Полный список опций можно найти на странице
|
||||||
|
справочника &man.inetd.8;.</para>
|
||||||
|
|
||||||
<variablelist>
|
<variablelist>
|
||||||
<varlistentry>
|
|
||||||
<term>-d</term>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>Включение отладочной информации.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term>-l</term>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>Включение регистрации успешных соединений.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term>-w</term>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>Включение механизма TCP Wrapping для внешних служб (по
|
|
||||||
умолчанию включено).</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term>-W</term>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>Включение механизма TCP Wrapping для внутренних служб,
|
|
||||||
которые встроены в <application>inetd</application> (по
|
|
||||||
умолчанию включено).</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term>-c maximum</term>
|
<term>-c maximum</term>
|
||||||
|
|
||||||
|
@ -234,86 +226,50 @@
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term>-a</term>
|
<term>-s maximum</term>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Задает один IP-адрес, к которому делается привязка.
|
<para>Задает максимальное количество процессов, одновременно
|
||||||
Альтернативно может быть указано имя хоста, и в этом случае
|
обслуживающих один сервис для одного IP-адреса; по умолчанию
|
||||||
используется соответствующий этому имени хоста адрес IPv4 или
|
не ограничено. Может переопределяться для каждой службы
|
||||||
IPv6. Обычно имя хоста задается, когда
|
параметром <option>max-child-per-ip</option>.</para>
|
||||||
<application>inetd</application> запускается в окружении
|
|
||||||
&man.jail.8;, и в этом случае имя хоста соответствует этому
|
|
||||||
&man.jail.8;-окружению.</para>
|
|
||||||
|
|
||||||
<para>Если используется формат с именем хоста и требуется привязка
|
|
||||||
как для IPv4, так и для IPv6, то для каждой привязки требуется
|
|
||||||
запись с соответствующим типом протокола для каждой службы в
|
|
||||||
файле <filename>/etc/inetd.conf</filename>. К примеру, службе
|
|
||||||
на основе TCP потребуется две записи, в одной для протокола
|
|
||||||
используется <literal>tcp4</literal>, а в другой
|
|
||||||
используется <literal>tcp6</literal>.</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term>-p</term>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>Задает альтернативный файл для хранения ID процесса.</para>
|
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
</variablelist>
|
</variablelist>
|
||||||
|
|
||||||
<para>Эти параметры могут быть переданы в
|
|
||||||
<application>inetd</application> при помощи
|
|
||||||
<literal>inetd_flags</literal> в файле
|
|
||||||
<filename>/etc/rc.conf</filename>. По умолчанию значение
|
|
||||||
<literal>inetd_flags</literal> установлено в <literal>-wW</literal>,
|
|
||||||
что включает механизм TCP wrapping для внутренних и внешних служб
|
|
||||||
<application>inetd</application>. Новичкам эти параметры изменять и
|
|
||||||
даже задавать их в файле <filename>/etc/rc.conf</filename> не
|
|
||||||
нужно.</para>
|
|
||||||
|
|
||||||
<note>
|
|
||||||
<para>Внешняя служба является даемоном вне
|
|
||||||
<application>inetd</application>, который запускается при получении
|
|
||||||
соединения к нему. С другой стороны, внутренней службой является
|
|
||||||
услуга, которую <application>inetd</application> предоставляет
|
|
||||||
сам.</para>
|
|
||||||
</note>
|
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
<sect2 id="network-inetd-conf">
|
<sect2 id="network-inetd-conf">
|
||||||
|
<!-- XXX This section isn't very clear, and could do with some lovin' -->
|
||||||
<title><filename>inetd.conf</filename></title>
|
<title><filename>inetd.conf</filename></title>
|
||||||
|
|
||||||
<para>Настройка <application>inetd</application> управляется через файл
|
<para>Настройка <application>inetd</application> производится через файл
|
||||||
<filename>/etc/inetd.conf</filename>.</para>
|
<filename>/etc/inetd.conf</filename>.</para>
|
||||||
|
|
||||||
<para>Если в файле <filename>/etc/inetd.conf</filename> делались
|
<para>Если в файле <filename>/etc/inetd.conf</filename> делались
|
||||||
изменения, то <application>inetd</application> можно заставить считать
|
изменения, то <application>inetd</application> можно заставить считать
|
||||||
его конфигурационный файл повторно, послав сигнал HangUP процессу
|
его конфигурационный файл повторно посредством команды</para>
|
||||||
<application>inetd</application>, как показано здесь:</para>
|
|
||||||
|
|
||||||
<example id="network-inetd-hangup">
|
<example id="network-inetd-reread">
|
||||||
<title>Посылка сигнала HangUP процессу
|
<title>Перезагрузка конфигурационного файла
|
||||||
<application>inetd</application></title>
|
<application>inetd</application></title>
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>kill -HUP `cat /var/run/inetd.pid`</userinput></screen>
|
<screen>&prompt.root; <userinput>/etc/rc.d/inetd reload</userinput></screen>
|
||||||
</example>
|
</example>
|
||||||
|
|
||||||
<para>В каждой строке конфигурационного файла описывается отдельный
|
<para>В каждой строке конфигурационного файла описывается отдельный
|
||||||
даемон. Комментариям в файле предшествует знак <quote>#</quote>. Файл
|
даемон. Комментариям в файле предшествует знак <quote>#</quote>.
|
||||||
<filename>/etc/inetd.conf</filename> имеет такой формат:</para>
|
Строки в файле
|
||||||
|
<filename>/etc/inetd.conf</filename> имеют такой формат:</para>
|
||||||
|
|
||||||
<programlisting>service-name
|
<programlisting>service-name
|
||||||
socket-type
|
socket-type
|
||||||
protocol
|
protocol
|
||||||
{wait|nowait}[/max-child[/max-connections-per-ip-per-minute]]
|
{wait|nowait}[/max-child[/max-connections-per-ip-per-minute[/max-child-per-ip]]]
|
||||||
user[:group][/login-class]
|
user[:group][/login-class]
|
||||||
server-program
|
server-program
|
||||||
server-program-arguments</programlisting>
|
server-program-arguments</programlisting>
|
||||||
|
|
||||||
<para>Пример записи для даемона <application>ftpd</application>,
|
<para>Пример записи для даемона &man.ftpd.8;,
|
||||||
использующего IPv4:</para>
|
использующего IPv4:</para>
|
||||||
|
|
||||||
<programlisting>ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l</programlisting>
|
<programlisting>ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l</programlisting>
|
||||||
|
@ -396,7 +352,7 @@ server-program-arguments</programlisting>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term>{wait|nowait}[/max-child[/max-connections-per-ip-per-minute]]</term>
|
<term>{wait|nowait}[/max-child[/max-connections-per-ip-per-minute[/max-child-per-ip]]]</term>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para><option>wait|nowait</option> определяет, может ли даемон,
|
<para><option>wait|nowait</option> определяет, может ли даемон,
|
||||||
|
@ -414,41 +370,55 @@ server-program-arguments</programlisting>
|
||||||
параметром <option>max-child</option>. Если нужно ограничение в
|
параметром <option>max-child</option>. Если нужно ограничение в
|
||||||
десять экземпляров некоторого даемона, то после параметра
|
десять экземпляров некоторого даемона, то после параметра
|
||||||
<option>nowait</option> нужно задать
|
<option>nowait</option> нужно задать
|
||||||
<literal>/10</literal>.</para>
|
<literal>/10</literal>. При задании <literal>/0</literal>
|
||||||
|
ограничения на количество экземпляров снимаются.</para>
|
||||||
|
|
||||||
<para>Кроме <option>max-child</option>, может быть задействован
|
<para>Кроме <option>max-child</option>, могут быть задействованы
|
||||||
другой параметр, ограничивающий максимальное число соединений от
|
два других параметра, ограничивающих максимальное число соединений от
|
||||||
одного источника.
|
одного источника.
|
||||||
<option>max-connections-per-ip-per-minute</option> служит именно
|
<option>max-connections-per-ip-per-minute</option> ограничивает
|
||||||
для этого. Здесь значение, равное десяти, будет ограничивать
|
количество соединений от одного IP-адреса в течение минуты, так что
|
||||||
|
значение, равное десяти, будет ограничивать
|
||||||
любой заданный IP-адрес на выполнение десяти попыток подключения
|
любой заданный IP-адрес на выполнение десяти попыток подключения
|
||||||
к некоторому сервису в минуту. Это полезно для предотвращения
|
к некоторому сервису в минуту. Параметр
|
||||||
|
<option>max-child-per-ip</option> ограничивает количество
|
||||||
|
дочерних процессов, которые могут быть одновременно
|
||||||
|
задействованы на обслуживание одного IP-адреса.
|
||||||
|
Эти опции полезны для предотвращения
|
||||||
намеренного или ненамеренного расходования ресурсов и атак типа
|
намеренного или ненамеренного расходования ресурсов и атак типа
|
||||||
Denial of Service (DoS) на машину.</para>
|
Denial of Service (DoS) на машину.</para>
|
||||||
|
|
||||||
<para>В этом поле <option>wait</option> или <option>nowait</option>
|
<para>В этом поле одно из значений <option>wait</option>
|
||||||
обязательны. <option>max-child</option> и
|
или <option>nowait</option>
|
||||||
<option>max-connections-per-ip-per-minute</option>
|
обязательны. <option>max-child</option>,
|
||||||
|
<option>max-connections-per-ip-per-minute</option> и
|
||||||
|
<option>max-child-per-ip</option>
|
||||||
опциональны.</para>
|
опциональны.</para>
|
||||||
|
|
||||||
<para>Многопоточный даемон типа stream без ограничений
|
<para>Многопоточный даемон типа stream без ограничений
|
||||||
<option>max-child</option> или
|
<option>max-child</option>,
|
||||||
<option>max-connections-per-ip-per-minute</option> будет
|
<option>max-connections-per-ip-per-minute</option> или
|
||||||
определен просто вот так: <literal>nowait</literal>.</para>
|
<option>max-child-per-ip</option> будет
|
||||||
|
определен просто как <literal>nowait</literal>.</para>
|
||||||
|
|
||||||
<para>Тот же самый даемон с ограничением в максимум десять даемонов
|
<para>Тот же самый даемон с ограничением в максимум десять даемонов
|
||||||
будет определен так: <literal>nowait/10</literal>.</para>
|
будет определен так: <literal>nowait/10</literal>.</para>
|
||||||
|
|
||||||
<para>Наконец, та же конфигурация с ограничением в двадцать
|
<para>Та же конфигурация с ограничением в двадцать
|
||||||
соединений на IP-адрес в минуту и общим ограничением в максимум
|
соединений на IP-адрес в минуту и общим ограничением в максимум
|
||||||
десять порожденных даемонов выглядит так:
|
десять порожденных даемонов выглядит так:
|
||||||
<literal>nowait/10/20</literal>.</para>
|
<literal>nowait/10/20</literal>.</para>
|
||||||
|
|
||||||
<para>Эти параметры, используемые все со значениями по умолчанию
|
<para>Эти параметры, используемые все со значениями по умолчанию
|
||||||
даемоном <application>fingerd</application>, имеют такой
|
даемоном &man.fingerd.8;, имеют такой
|
||||||
вид:</para>
|
вид:</para>
|
||||||
|
|
||||||
<programlisting>finger stream tcp nowait/3/10 nobody /usr/libexec/fingerd fingerd -s</programlisting>
|
<programlisting>finger stream tcp nowait/3/10 nobody /usr/libexec/fingerd fingerd -s</programlisting>
|
||||||
|
|
||||||
|
<para>Наконец, пример, описывающий ограничение на 100 даемонов
|
||||||
|
в целом, при этом не более чем по 5 на один IP-адрес,
|
||||||
|
будет выглядеть так:
|
||||||
|
<literal>nowait/100/0/5</literal>.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
|
@ -497,23 +467,25 @@ server-program-arguments</programlisting>
|
||||||
<sect2 id="network-inetd-security">
|
<sect2 id="network-inetd-security">
|
||||||
<title>Безопасность</title>
|
<title>Безопасность</title>
|
||||||
|
|
||||||
<para>В зависимости от схемы безопасности, выбранной при установке,
|
<para>В зависимости от выбранных при установке параметров,
|
||||||
многие из даемонов <application>inetd</application> могут оказаться по
|
многие из служб <application>inetd</application> могут оказаться по
|
||||||
умолчанию включенными. Если нет особой нужды в некотором даемоне, то
|
умолчанию включенными. Если нет особой нужды в некотором даемоне,
|
||||||
выключите его! Поместите знак <quote>#</quote> перед ненужным даемоном
|
подумайте, не стоит ли его выключить?
|
||||||
|
Поместите знак <quote>#</quote> перед ненужным даемоном
|
||||||
в <filename>/etc/inetd.conf</filename>
|
в <filename>/etc/inetd.conf</filename>
|
||||||
и <link linkend="network-inetd-hangup">пошлите сигнал для inetd</link>.
|
и <link linkend="network-inetd-reread">пошлите сигнал для inetd</link>.
|
||||||
Некоторые даемоны, такие, как <application>fingerd</application>,
|
Некоторые даемоны, такие, как <application>fingerd</application>,
|
||||||
вообще нежелательны, потому что они дают атакующему слишком много
|
вообще нежелательны, потому что они дают информацию, которая
|
||||||
информации.</para>
|
может оказаться полезной атакующему.</para>
|
||||||
|
|
||||||
<para>Некоторые даемоны не заботятся о безопасности и имеют большие
|
<para>Некоторые даемоны не заботятся о безопасности и имеют большие
|
||||||
тайм-ауты для соединений или вообще их не имеют. Это позволяет
|
тайм-ауты для соединений или вообще их не имеют. Это позволяет
|
||||||
атакующему неспешно устанавливать соединения к конкретному даемону,
|
атакующему неспешно устанавливать соединения к конкретному даемону,
|
||||||
истощая имеющиеся ресурсы. Может оказаться полезным задать для
|
истощая имеющиеся ресурсы. Может оказаться полезным задать для
|
||||||
некоторых даемонов ограничения
|
некоторых даемонов ограничения
|
||||||
<option>max-connections-per-ip-per-minute</option> и
|
<option>max-connections-per-ip-per-minute</option>,
|
||||||
<option>max-child</option>.</para>
|
<option>max-child</option> и <option>max-child-per-ip</option>,
|
||||||
|
особенно если вы обнаружите слишком большое число соединений.</para>
|
||||||
|
|
||||||
<para>По умолчанию механизм TCP wrapping включен. Обратитесь к
|
<para>По умолчанию механизм TCP wrapping включен. Обратитесь к
|
||||||
справочной странице по &man.hosts.access.5; для получения более
|
справочной странице по &man.hosts.access.5; для получения более
|
||||||
|
@ -534,8 +506,7 @@ server-program-arguments</programlisting>
|
||||||
|
|
||||||
<para>Сервис <application>auth</application> предоставляет
|
<para>Сервис <application>auth</application> предоставляет
|
||||||
идентификационные сетевые услуги
|
идентификационные сетевые услуги
|
||||||
(<application>ident</application>, <application>identd</application>)
|
и поддается настройке; прочие сервисы ненастраиваемы.</para>
|
||||||
и поддается настройке.</para>
|
|
||||||
|
|
||||||
<para>Обратитесь к справочной странице по &man.inetd.8; для получения
|
<para>Обратитесь к справочной странице по &man.inetd.8; для получения
|
||||||
более подробной информации.</para>
|
более подробной информации.</para>
|
||||||
|
@ -4291,7 +4262,7 @@ zone "0.168.192.in-addr.arpa" {
|
||||||
в поставку FreeBSD. Если вы не установили их во вместе с
|
в поставку FreeBSD. Если вы не установили их во вместе с
|
||||||
системой, воспользуйтесь портами <filename
|
системой, воспользуйтесь портами <filename
|
||||||
role="package">www/apache13</filename> или <filename
|
role="package">www/apache13</filename> или <filename
|
||||||
role="package">www/apache2</filename>.</para>
|
role="package">www/apache20</filename>.</para>
|
||||||
|
|
||||||
<para>Как только <application>Apache</application> был успешно
|
<para>Как только <application>Apache</application> был успешно
|
||||||
установлен, его необходимо настроить.</para>
|
установлен, его необходимо настроить.</para>
|
||||||
|
@ -4523,7 +4494,7 @@ DocumentRoot /www/someotherdomain.tld
|
||||||
role="package">www/apache13-modssl</filename>.
|
role="package">www/apache13-modssl</filename>.
|
||||||
Поддержка SSL также доступна для
|
Поддержка SSL также доступна для
|
||||||
<application>Apache</application> 2.X
|
<application>Apache</application> 2.X
|
||||||
через порт <filename role="package">www/apache2</filename>,
|
через порт <filename role="package">www/apache20</filename>,
|
||||||
где она включена по умолчанию.</para>
|
где она включена по умолчанию.</para>
|
||||||
|
|
||||||
<!-- XXX add more information about configuring mod_ssl here. -->
|
<!-- XXX add more information about configuring mod_ssl here. -->
|
||||||
|
@ -4532,9 +4503,24 @@ DocumentRoot /www/someotherdomain.tld
|
||||||
</sect3>
|
</sect3>
|
||||||
|
|
||||||
<sect3>
|
<sect3>
|
||||||
|
<title>Построение динамических сайтов при помощи Perl и PHP</title>
|
||||||
|
|
||||||
|
<para>В последние годы все большее число компаний обращает внимание
|
||||||
|
на Интернет как площадку для ведения и расширения бизнеса.
|
||||||
|
Среди прочего, этот процесс подчеркивает потребность в
|
||||||
|
интерактивном содержимом сайтов. Некоторые компании, такие как
|
||||||
|
µsoft;, представляют свои закрытые решения; сообщество
|
||||||
|
разработчиков открытых программ отвечает на вызов.
|
||||||
|
Два возможных пути решения проблемы динамического контента —
|
||||||
|
mod_perl и mod_php.</para>
|
||||||
|
|
||||||
|
<sect4>
|
||||||
<title>mod_perl</title>
|
<title>mod_perl</title>
|
||||||
|
|
||||||
<indexterm><primary>Perl</primary></indexterm>
|
<indexterm>
|
||||||
|
<primary>mod_perl</primary>
|
||||||
|
<secondary>Perl</secondary>
|
||||||
|
</indexterm>
|
||||||
|
|
||||||
<para>Проект интеграции
|
<para>Проект интеграции
|
||||||
<application>Apache</application>/Perl объединяет мощь
|
<application>Apache</application>/Perl объединяет мощь
|
||||||
|
@ -4547,15 +4533,22 @@ DocumentRoot /www/someotherdomain.tld
|
||||||
позволяет не тратить ресурсы на запуск внешнего
|
позволяет не тратить ресурсы на запуск внешнего
|
||||||
интерпретатора и время на запуск Perl.</para>
|
интерпретатора и время на запуск Perl.</para>
|
||||||
|
|
||||||
<para>Если вы еще не установили <application>Apache</application>,
|
<para><application>mod_perl</application> можно использовать
|
||||||
его версия с модулем <application>mod_perl</application> может
|
различными способами. Помните, что
|
||||||
быть установлена через
|
<application>mod_perl</application> 1.0 работает только с
|
||||||
порт <filename
|
<application>Apache</application> 1.3, тогда как
|
||||||
role="package">www/apache13-modperl</filename>.</para>
|
<application>mod_perl</application> 2.0 совместим только с
|
||||||
</sect3>
|
<application>Apache</application> 2.
|
||||||
|
<application>mod_perl</application> 1.0 доступен как порт <filename
|
||||||
|
role="package">www/mod_perl</filename>, а также в виде статически
|
||||||
|
скомпилированной версии в <filename
|
||||||
|
role="package">www/apache13-modperl</filename>.
|
||||||
|
<application>mod_perl</application> 2.0 доступен как <filename
|
||||||
|
role="package">www/mod_perl2</filename>.</para>
|
||||||
|
</sect4>
|
||||||
|
|
||||||
<sect3>
|
<sect4>
|
||||||
<sect3info>
|
<sect4info>
|
||||||
<authorgroup>
|
<authorgroup>
|
||||||
<author>
|
<author>
|
||||||
<firstname>Tom</firstname>
|
<firstname>Tom</firstname>
|
||||||
|
@ -4563,21 +4556,16 @@ DocumentRoot /www/someotherdomain.tld
|
||||||
<contrib>Написал </contrib>
|
<contrib>Написал </contrib>
|
||||||
</author>
|
</author>
|
||||||
</authorgroup>
|
</authorgroup>
|
||||||
</sect3info>
|
</sect4info>
|
||||||
<title>PHP</title>
|
<title>mod_php</title>
|
||||||
|
|
||||||
<indexterm><primary>PHP</primary></indexterm>
|
<indexterm>
|
||||||
|
<primary>mod_php</primary>
|
||||||
|
<secondary>PHP</secondary>
|
||||||
|
</indexterm>
|
||||||
|
|
||||||
<para>В последние несколько лет все большее количество компаний
|
<para>PHP, также известный как <quote>Препроцессор гипертекста</quote>
|
||||||
выходит в интернет, стараясь повысить свою узнаваемость и получить
|
(<quote>Hypertext Preprocessor</quote>), —
|
||||||
больший доход. Это увеличивает потребность в интерактивном
|
|
||||||
веб контенте. В то время, как некоторые компании, такие
|
|
||||||
как µsoft;, представили свои решения в проприетарных
|
|
||||||
продуктах, сообщество открытых исходных текстов ответило
|
|
||||||
на вызов. Один из таких ответов, это широко используемый
|
|
||||||
<acronym>PHP</acronym>.
|
|
||||||
|
|
||||||
<para>PHP, также известный как <quote>Hypertext Preprocessor</quote>,
|
|
||||||
это скриптовый язык общего назначения, в основном предназначенный
|
это скриптовый язык общего назначения, в основном предназначенный
|
||||||
для веб разработки. Этот язык может быть встроен в
|
для веб разработки. Этот язык может быть встроен в
|
||||||
<acronym>HTML</acronym>, его синтаксис заимствован из C, &java;
|
<acronym>HTML</acronym>, его синтаксис заимствован из C, &java;
|
||||||
|
@ -4589,42 +4577,47 @@ DocumentRoot /www/someotherdomain.tld
|
||||||
порта <filename role="package">www/mod_php5</filename>.</para>
|
порта <filename role="package">www/mod_php5</filename>.</para>
|
||||||
|
|
||||||
<para>Этот порт устанавливает и настраивает модули, необходимые
|
<para>Этот порт устанавливает и настраивает модули, необходимые
|
||||||
для поддержки динамических веб страниц. Убедитесь, что в файл
|
для поддержки динамических <acronym>PHP</acronym> веб страниц.
|
||||||
|
Убедитесь, что в файл
|
||||||
<filename>/usr/local/etc/apache/httpd.conf</filename> были
|
<filename>/usr/local/etc/apache/httpd.conf</filename> были
|
||||||
добавлены следующие строки:</para>
|
добавлены следующие секции:</para>
|
||||||
|
|
||||||
<programlisting>LoadModule php5_module libexec/apache/libphp5.so
|
<programlisting>LoadModule php5_module libexec/apache/libphp5.so</programlisting>
|
||||||
AddModule mod_php5.c
|
|
||||||
|
<programlisting>AddModule mod_php5.c
|
||||||
<IfModule mod_php5.c>
|
<IfModule mod_php5.c>
|
||||||
DirectoryIndex index.php index.html
|
DirectoryIndex index.php index.html
|
||||||
</IfModule>
|
</IfModule>
|
||||||
|
|
||||||
<IfModule mod_php5.c>
|
<IfModule mod_php5.c>
|
||||||
AddType application/x-httpd-php .php
|
AddType application/x-httpd-php .php
|
||||||
AddType application/x-httpd-php-source .phps
|
AddType application/x-httpd-php-source .phps
|
||||||
</IfModule></programlisting>
|
</IfModule></programlisting>
|
||||||
|
|
||||||
<para>После этого просто вызовите команду
|
<para>Для загрузки модуля <acronym>PHP</acronym>
|
||||||
|
после этого просто вызовите команду
|
||||||
<command>apachectl</command> с параметром graceful:</para>
|
<command>apachectl</command> с параметром graceful:</para>
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>apachectl graceful</userinput></screen>
|
<screen>&prompt.root; <userinput>apachectl graceful</userinput></screen>
|
||||||
|
|
||||||
<para>Поддержка <acronym>PHP</acronym> в &os; построена по
|
<para>Поддержка <acronym>PHP</acronym> в &os; построена по
|
||||||
модульному принципу. Если требуется поддержка какого-либо
|
модульному принципу, поэтому базовая установка обладает очень
|
||||||
расширения, администратор должен лишь установить
|
ограниченной функциональностью. Дополнительная функциональность
|
||||||
соответствующий порт и перезапустить
|
может быть легко добавлена при помощи порта <filename
|
||||||
<application>Apache</application>, как показано выше.</para>
|
role="package">lang/php5-extensions</filename>, управляющего набором
|
||||||
|
расширений <acronym>PHP</acronym> через меню, либо просто путем
|
||||||
|
установки дополнительных портов.</para>
|
||||||
|
|
||||||
<para>Например, для добавления поддержки
|
<para>Например, для добавления поддержки
|
||||||
<application>MySQL</application> к <acronym>PHP</acronym>5,
|
<application>MySQL</application> к <acronym>PHP</acronym>5,
|
||||||
просто установите
|
просто установите порт
|
||||||
<filename role="package">databases/php5-mysql</filename>
|
<filename role="package">databases/php5-mysql</filename>.</para>
|
||||||
и выполните следующую команду:</para>
|
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>apachectl graceful</userinput></screen>
|
<para>После установки новых расширений сервер
|
||||||
|
<application>Apache</application> должен быть рестартован,
|
||||||
|
чтобы изменения в конфигурации вступили в силу:</para>
|
||||||
|
|
||||||
<para>Это включит поддержку <application>MySQL</application>
|
<screen>&prompt.root; <userinput>apachectl graceful</userinput></screen>
|
||||||
в <acronym>PHP</acronym>.</para>
|
</sect4>
|
||||||
</sect3>
|
</sect3>
|
||||||
</sect2>
|
</sect2>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
@ -4705,9 +4698,9 @@ AddModule mod_php5.c
|
||||||
|
|
||||||
<programlisting>swat stream tcp nowait/400 root /usr/local/sbin/swat</programlisting>
|
<programlisting>swat stream tcp nowait/400 root /usr/local/sbin/swat</programlisting>
|
||||||
|
|
||||||
<para>Как описано в <xref linkend="network-inetd-hangup">,
|
<para>Как описано в <xref linkend="network-inetd-reread">,
|
||||||
после изменения настроек <application>inetd</application>
|
после изменения настроек <application>inetd</application>
|
||||||
необходимо отправить HangUP сигнал.</para>
|
необходимо перечитать конфигурацию.</para>
|
||||||
|
|
||||||
<para>Как только <application>swat</application> был включен
|
<para>Как только <application>swat</application> был включен
|
||||||
<filename>inetd.conf</filename>, вы можете использовать
|
<filename>inetd.conf</filename>, вы можете использовать
|
||||||
|
@ -4961,8 +4954,8 @@ Starting smbd.</screen>
|
||||||
|
|
||||||
<programlisting>ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l</programlisting>
|
<programlisting>ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l</programlisting>
|
||||||
|
|
||||||
<para>Как описано в <xref linkend="network-inetd-hangup">,
|
<para>Как описано в <xref linkend="network-inetd-reread">,
|
||||||
сигнал HangUP должен быть отправлен <application>inetd</application>
|
<application>inetd</application> должен перечитать конфигурацию
|
||||||
после того, как этот файл настройки был изменен.</para>
|
после того, как этот файл настройки был изменен.</para>
|
||||||
|
|
||||||
<para>Теперь вы можете войти на FTP сервер, введя:</para>
|
<para>Теперь вы можете войти на FTP сервер, введя:</para>
|
||||||
|
|
Loading…
Reference in a new issue