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
|
||||
|
||||
$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">
|
||||
|
@ -274,7 +274,7 @@ libc.so.4 (DLL Jump 4.5pl26) => /lib/libc.so.4.6.29</screen>
|
|||
<blockquote>
|
||||
<note>
|
||||
<para>Учтите, что если у вас уже есть совместно используемая библиотека
|
||||
Linux с соответствующим первому столбцу результатов
|
||||
Linux с соответствующим первому столбцу результатов
|
||||
<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>
|
||||
|
||||
<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>
|
||||
|
||||
<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>
|
||||
|
||||
<indexterm><primary>GNU toolchain</primary></indexterm>
|
||||
|
||||
<para>В настоящее время набор инструментальных средств GNU
|
||||
(GNU toolchain) помещает необходимую маркировочную информацию
|
||||
(GNU toolchain) помещает необходимую маркировочную информацию
|
||||
в двоичные ELF-файлы автоматически, поэтому необходимость
|
||||
в этом действии возникает всё реже.</para>
|
||||
</sect2>
|
||||
|
@ -441,7 +441,7 @@ multi on</programlisting>
|
|||
|
||||
<para>Скрипты командной оболочки, которые
|
||||
<application>&mathematica;</application> создала во
|
||||
время установки должны быть измененены перед тем, как
|
||||
время установки, должны быть изменены перед тем, как
|
||||
вы сможете использовать их. Если вы выбрали
|
||||
<filename role="directory">/usr/local/bin</filename> в
|
||||
качестве директории для помещения исполняемых файлов
|
||||
|
@ -480,7 +480,7 @@ done</programlisting>
|
|||
<application>&mathematica;</application> на разных машинах.</para>
|
||||
|
||||
<para>При регистрации по электронной почте, по телефону или по факсу
|
||||
вы сообщаете <quote>machine ID</quote>, а в ответ
|
||||
вы сообщаете <quote>machine ID</quote>, а в ответ
|
||||
получаете пароль, состоящий из нескольких групп чисел.</para>
|
||||
</sect2>
|
||||
|
||||
|
@ -647,16 +647,16 @@ LOG=/var/log/lmgrd.log
|
|||
|
||||
case "$1" in
|
||||
start)
|
||||
lmgrd -c ${LICENSE_FILE} 2>> ${LOG} 1>&2
|
||||
echo -n " lmgrd"
|
||||
;;
|
||||
lmgrd -c ${LICENSE_FILE} 2>> ${LOG} 1>&2
|
||||
echo -n " lmgrd"
|
||||
;;
|
||||
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
|
||||
exit 64
|
||||
;;
|
||||
echo "Usage: `basename $0` {start|stop}" 1>&2
|
||||
exit 64
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
@ -813,14 +813,14 @@ case "$1" in
|
|||
fi
|
||||
;;
|
||||
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
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {start|stop}"
|
||||
exit 1
|
||||
;;
|
||||
echo "Usage: $0 {start|stop}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0</programlisting>
|
||||
|
@ -971,14 +971,14 @@ exit 0</programlisting>
|
|||
<title>Установка Linux–среды</title>
|
||||
|
||||
<para>Удостоверьтесь, что порты
|
||||
<filename role='package'>emulators/linux_base</filename> и
|
||||
<filename role='package'>emulators/linux_base</filename> и
|
||||
<filename role='package'>devel/linux_devtools</filename> установлены
|
||||
на вашей системе. Если у вас возникнут трудности с этими портами,
|
||||
воспользуйтесь пакетами или более ранними их версиями из
|
||||
Коллекции Портов.</para>
|
||||
|
||||
<para>Если вы хотите использовать интеллектуальный агент (intelligent
|
||||
agent), придется также установить пакет TCL от Red Hat:
|
||||
agent), придется также установить пакет TCL от Red Hat:
|
||||
<filename>tcl-8.0.3-20.i386.rpm</filename>. Универсальная команда
|
||||
для установки пакетов с помощью официального порта
|
||||
<application>RPM</application>
|
||||
|
@ -1097,7 +1097,7 @@ $ORACLE_HOME/bin</literal></entry>
|
|||
</tgroup>
|
||||
</informaltable>
|
||||
|
||||
<para>Желательно устанавливать все переменные среды в файле
|
||||
<para>Желательно устанавливать все переменные среды в файле
|
||||
<filename>.profile</filename>. Вот реальный пример:</para>
|
||||
|
||||
<programlisting>ORACLE_BASE=/oracle; export ORACLE_BASE
|
||||
|
@ -1598,7 +1598,7 @@ export PATH</programlisting>
|
|||
|
||||
<para>Для этой установки был использован &dell; &poweredge; 2500:
|
||||
двухпроцессорная плата с двумя процессорами &pentium; III
|
||||
1000 MHz (256 Кбайт кеш), 2 Гбайта PC133 ECC SDRAM,
|
||||
1000 MHz (256 Кбайт кэш), 2 Гбайта PC133 ECC SDRAM,
|
||||
PERC/3 DC PCI RAID-контроллер со 128 Мбайтами и приводом
|
||||
EIDE DVD-ROM. К RAID-контроллеру подключены два диска по
|
||||
18 Гбайт (зеркалированы) и четыре диска по 36 Гбайт
|
||||
|
@ -2070,14 +2070,14 @@ sapgw00s 4800/tcp # SAP Secure Gateway 4800 + Instance-Number</programlistin
|
|||
производственной системы (хотя это и сработало для системы
|
||||
IDES безо всяких проблем). Необходимы следующие локали:</para>
|
||||
|
||||
<programlisting>de_DE.ISO-8859-1
|
||||
en_US.ISO-8859-1</programlisting>
|
||||
<programlisting>de_DE.ISO8859-1
|
||||
en_US.ISO8859-1</programlisting>
|
||||
|
||||
<para>Создайте ссылки следующим образом:</para>
|
||||
|
||||
<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 en_US en_US.ISO-8859-1</userinput></screen>
|
||||
&prompt.root; <userinput>ln -s de_DE de_DE.ISO8859-1</userinput>
|
||||
&prompt.root; <userinput>ln -s en_US en_US.ISO8859-1</userinput></screen>
|
||||
|
||||
<para>Если их не будет, в ходе установки возникнет ряд проблем.
|
||||
Если их просто проигнорировать (установив <literal>STATUS</literal>
|
||||
|
@ -2586,7 +2586,8 @@ options SEMUME=100 #
|
|||
<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-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;
|
||||
<filename>Readme</filename>. Если установить эти пакеты не
|
||||
|
@ -3341,11 +3342,11 @@ options SHMMAXPGS=393216
|
|||
загрузчик.</para>
|
||||
|
||||
<para>Если файл не опознавался системой как двоичный, системный
|
||||
вызов &man.execve.2; возвращал ошибку, и текущий командный
|
||||
вызов &man.execve.2; возвращал ошибку, и текущий командный
|
||||
интерпретатор начинал выполнять файл как скрипт.</para>
|
||||
|
||||
<para>По умолчанию скрипт выполнялся <quote>текущим командным
|
||||
интерпретатором</quote>.</para>
|
||||
интерпретатором</quote>.</para>
|
||||
|
||||
<para>Позднее, &man.sh.1; был модифицирован, так, чтобы проверять
|
||||
первые два символа в файле, и если они оказывались
|
||||
|
@ -3354,20 +3355,20 @@ options SHMMAXPGS=393216
|
|||
эту модификацию).</para>
|
||||
|
||||
<para>FreeBSD сейчас ведет себя по-другому: пробегает по списку
|
||||
загрузчиков,включающему специальный загрузчик <literal>#!</literal>,
|
||||
загрузчиков,включающему специальный загрузчик <literal>#!</literal>,
|
||||
который вызывает нужный интерпретатор, указанный после этих символов
|
||||
до следующего пробела, или <filename>/bin/sh</filename>, если
|
||||
не нашел подходящего.</para>
|
||||
<indexterm><primary>ELF</primary></indexterm>
|
||||
|
||||
<para>Для поддержки Linux ABI FreeBSD ищет магическое число,
|
||||
соответствующее двоичному файлу ELF (на этой стадии не различаются
|
||||
соответствующее двоичному файлу ELF (на этой стадии не различаются
|
||||
FreeBSD, &solaris;, Linux или любая другая ОС поддерживающая формат
|
||||
ELF).</para>
|
||||
<indexterm><primary>Solaris</primary></indexterm>
|
||||
|
||||
<para>Далее, ELF-загрузчик определяет <quote>марку</quote> (brand)
|
||||
двоичного файла ELF (специальный комментарий в ELF-файле,
|
||||
двоичного файла ELF (специальный комментарий в ELF-файле,
|
||||
отсутствующий в двоичных файлах ELF SVR4/&solaris;).</para>
|
||||
|
||||
<para>Соответственно, Linux программы должны быть
|
||||
|
@ -3379,7 +3380,7 @@ options SHMMAXPGS=393216
|
|||
<para>Когда это сделано, загрузчик ELF выявит марку
|
||||
<literal>Linux</literal> в файле.</para>
|
||||
<indexterm>
|
||||
<primary>ELF</primary>
|
||||
<primary>ELF</primary>
|
||||
<secondary>branding</secondary>
|
||||
</indexterm>
|
||||
|
||||
|
@ -3394,11 +3395,11 @@ options SHMMAXPGS=393216
|
|||
поддержки Linux.</para>
|
||||
|
||||
<para>Вектор системных вызовов Linux содержит, среди прочего, список
|
||||
записей <literal>sysent[]</literal>, адреса которых находятся в
|
||||
записей <literal>sysent[]</literal>, адреса которых находятся в
|
||||
модуле ядра.</para>
|
||||
|
||||
<para>При выполнении системного вызова из двоичного файла Linux,
|
||||
код обработчика разыменовывает указатель на функцию системного вызова
|
||||
код обработчика разыменовывает указатель на функцию системного вызова
|
||||
из структуры <literal>proc</literal>, и получает точки входа
|
||||
системных вызовов Linux, а не FreeBSD.</para>
|
||||
|
||||
|
@ -3420,7 +3421,7 @@ options SHMMAXPGS=393216
|
|||
разобраться, что они работают не в Linux.</para>
|
||||
|
||||
<para>Фактически, имеется ядро Linux в ядре FreeBSD; различные
|
||||
базовые функции, реализующие все услуги ядра, идентичны как
|
||||
базовые функции, реализующие все услуги ядра, идентичны как
|
||||
в записях таблицы системных вызовов FreeBSD, так и в записях
|
||||
таблицы системных вызовов Linux: операции с файловой системой,
|
||||
виртуальная память, средства доставки сигналов,
|
||||
|
@ -3435,7 +3436,7 @@ options SHMMAXPGS=393216
|
|||
<literal>proc</literal> процесса, выполняющего вызов).</para>
|
||||
|
||||
<para>Какая же реализация ABI для FreeBSD <quote>родная</quote>? Это
|
||||
не имеет значения. Единственное различие (на данный момент, в
|
||||
не имеет значения. Единственное различие (на данный момент, в
|
||||
будущем все может и, вероятно, изменится), пожалуй, в том, что
|
||||
функции системных вызовов FreeBSD зашиты в ядро, а для Linux они
|
||||
могут быть либо статически скомпонованы в ядро, либо получаться
|
||||
|
@ -3446,7 +3447,7 @@ options SHMMAXPGS=393216
|
|||
отсутствует.</para>
|
||||
|
||||
<para>В таком случае, почему же иногда говорят об
|
||||
<quote>эмуляции Linux</quote>? Чтобы <quote>насолить</quote>
|
||||
<quote>эмуляции Linux</quote>? Чтобы <quote>насолить</quote>
|
||||
FreeBSD! Фактически, причина в том, что на момент первой реализации
|
||||
не существовало слова, которое бы точнее описывало этот процесс.
|
||||
Нельзя было сказать, что FreeBSD запускает приложения Linux (без
|
||||
|
|
|
@ -2,9 +2,9 @@
|
|||
The FreeBSD Russian Documentation Project
|
||||
|
||||
$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">
|
||||
|
@ -399,15 +399,6 @@
|
|||
(éÓÐÏÌØÚÕÊÔÅ <command>cvs login</command> É ××ÅÄÉÔÅ ÐÁÒÏÌØ
|
||||
<quote>anoncvs</quote> × ÏÔ×ÅÔ ÎÁ ÐÒÉÇÌÁÛÅÎÉÅ.)</para>
|
||||
</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>
|
||||
<para><emphasis>óûá</emphasis>:
|
||||
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>
|
||||
|
||||
<example>
|
||||
<title>éÚ×ÌÅÞÅÎÉÅ ËÏÄÁ ÉÚ -CURRENT (&man.ls.1;) Ó
|
||||
ÐÏÓÌÅÄÕÀÝÉÍ ÕÄÁÌÅÎÉÅÍ:</title>
|
||||
<title>Извлечение кода из -CURRENT (&man.ls.1;):</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>
|
||||
<emphasis>At the prompt, enter the password</emphasis> <quote>anoncvs</quote>.
|
||||
&prompt.user; <userinput>cvs co ls</userinput>
|
||||
&prompt.user; <userinput>cvs release -d ls</userinput>
|
||||
&prompt.user; <userinput>cvs logout</userinput>
|
||||
</screen>
|
||||
</example>
|
||||
|
||||
|
@ -487,38 +475,33 @@ Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known host
|
|||
</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>
|
||||
<emphasis>At the prompt, enter the password</emphasis> <quote>anoncvs</quote>.
|
||||
&prompt.user; <userinput>cvs co -rRELENG_3 ls</userinput>
|
||||
&prompt.user; <userinput>cvs release -d ls</userinput>
|
||||
&prompt.user; <userinput>cvs logout</userinput>
|
||||
&prompt.user; <userinput>cvs co -rRELENG_6 ls</userinput>
|
||||
</screen>
|
||||
</example>
|
||||
|
||||
<example>
|
||||
<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>
|
||||
<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 logout</userinput>
|
||||
&prompt.user; <userinput>cvs rdiff -u -rRELENG_5_3_0_RELEASE -rRELENG_5_4_0_RELEASE ls</userinput>
|
||||
</screen>
|
||||
</example>
|
||||
|
||||
<example>
|
||||
<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>
|
||||
<emphasis>At the prompt, enter the password</emphasis> <quote>anoncvs</quote>.
|
||||
&prompt.user; <userinput>cvs co modules</userinput>
|
||||
&prompt.user; <userinput>more modules/modules</userinput>
|
||||
&prompt.user; <userinput>cvs release -d modules</userinput>
|
||||
&prompt.user; <userinput>cvs logout</userinput>
|
||||
</screen>
|
||||
</example>
|
||||
</sect2>
|
||||
|
@ -536,7 +519,7 @@ Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known host
|
|||
</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>
|
||||
</listitem>
|
||||
|
||||
|
@ -1798,6 +1781,15 @@ doc/zh_*</screen>
|
|||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><literal>ports-net-im
|
||||
release=cvs</literal></term>
|
||||
|
||||
<listitem>
|
||||
<para>Программы обмена быстрыми сообщениями.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><literal>ports-net-mgmt
|
||||
release=cvs</literal></term>
|
||||
|
@ -1807,6 +1799,15 @@ doc/zh_*</screen>
|
|||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><literal>ports-net-p2p
|
||||
release=cvs</literal></term>
|
||||
|
||||
<listitem>
|
||||
<para>Сети клиентского обмена (peer-to-peer).</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><literal>ports-news
|
||||
release=cvs</literal></term>
|
||||
|
@ -2325,6 +2326,170 @@ doc/zh_*</screen>
|
|||
</sect2>
|
||||
</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">
|
||||
<title>ôÅÇÉ CVS</title>
|
||||
|
||||
|
@ -2368,13 +2533,23 @@ doc/zh_*</screen>
|
|||
|
||||
<varlistentry>
|
||||
<term>RELENG_6</term>
|
||||
|
||||
|
||||
<listitem>
|
||||
<para>÷ÅÔר ÒÁÚÒÁÂÏÔËÉ FreeBSD-6.X, ÉÚ×ÅÓÔÎÁÑ ÔÁËÖÅ ËÁË
|
||||
FreeBSD 6-STABLE.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>RELENG_6_0</term>
|
||||
|
||||
<listitem>
|
||||
<para>Ветвь релиза для FreeBSD-6.0, используемая только
|
||||
для исправлений безопасности и других критических
|
||||
исправлений.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>RELENG_5</term>
|
||||
|
||||
|
@ -2571,6 +2746,14 @@ doc/zh_*</screen>
|
|||
ÎÅÔ ÓÐÅÃÉÁÌØÎÙÈ ÉÍÅÎ ÄÌÑ ÒÅÌÉÚÏ×.</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>RELENG_6_0_0_RELEASE</term>
|
||||
|
||||
<listitem>
|
||||
<para>FreeBSD 6.0</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>RELENG_5_4_0_RELEASE</term>
|
||||
|
||||
|
|
|
@ -2,9 +2,9 @@
|
|||
The FreeBSD Russian Documentation Project
|
||||
|
||||
$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">
|
||||
|
@ -106,6 +106,12 @@
|
|||
<contrib>Текст предоставил </contrib>
|
||||
</author>
|
||||
</authorgroup>
|
||||
<authorgroup>
|
||||
<author>
|
||||
<contrib>Обновлено для &os; 6.1-RELEASE</contrib>
|
||||
<othername>Проект документации &os;</othername>
|
||||
</author>
|
||||
</authorgroup>
|
||||
</sect1info>
|
||||
|
||||
<title><quote>Супер-сервер</quote> <application>inetd</application></title>
|
||||
|
@ -113,15 +119,15 @@
|
|||
<sect2 id="network-inetd-overview">
|
||||
<title>Обзор</title>
|
||||
|
||||
<para>&man.inetd.8; называют также <quote>супер-сервером
|
||||
<para>&man.inetd.8; иногда называют также <quote>супер-сервером
|
||||
Интернет</quote>, потому что он управляет соединениями к многим
|
||||
сервисам. Когда
|
||||
<application>inetd</application> принимает соединение, он определяет,
|
||||
для какой программы предназначено соединение, запускает соответствующий
|
||||
процесс и предоставляет ему сокет, ссылка на который передается
|
||||
процессу в качестве стандартных устройств ввода, вывода и сообщения об
|
||||
ошибках. Запуск одного экземпляра
|
||||
<application>inetd</application> уменьшает общую нагрузку на систему по
|
||||
ошибках. Для не слишком нагруженных серверов запуск через
|
||||
<application>inetd</application> может уменьшить общую нагрузку на систему по
|
||||
сравнению с запуском каждого даемона индивидуально в выделенном
|
||||
режиме.</para>
|
||||
|
||||
|
@ -141,15 +147,19 @@
|
|||
<title>Настройки</title>
|
||||
|
||||
<para><application>inetd</application> инициализируется посредством
|
||||
системы <filename>/etc/rc.conf</filename>. Параметр
|
||||
системы &man.rc.8;. Параметр
|
||||
<literal>inetd_enable</literal> по умолчанию установлен в
|
||||
<literal>NO</literal>, однако часто включается утилитой
|
||||
<application>sysinstall</application> при выборе профиля среднего
|
||||
уровня безопасности. Указание
|
||||
<literal>NO</literal>, однако может быть включен утилитой
|
||||
<application>sysinstall</application> в процессе установки.
|
||||
Указание
|
||||
<programlisting>inetd_enable="YES"</programlisting> или
|
||||
<programlisting>inetd_enable="NO"</programlisting> в файле
|
||||
<filename>/etc/rc.conf</filename> может задать или запретить запуск
|
||||
<application>inetd</application> во время загрузки.</para>
|
||||
<filename>/etc/rc.conf</filename> разрешит или запретит запуск
|
||||
<application>inetd</application> во время загрузки.
|
||||
Команда
|
||||
<programlisting>/etc/rc.d/inetd rcvar</programlisting>
|
||||
покажет текущие установки переменных, относящихся к
|
||||
<application>inetd</application>.</para>
|
||||
|
||||
<para>Кроме того, через <literal>inetd_flags</literal> даемону
|
||||
<application>inetd</application> могут быть переданы различные
|
||||
|
@ -159,47 +169,29 @@
|
|||
<sect2 id="network-inetd-cmdline">
|
||||
<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]
|
||||
[-p filename] [-R rate] [configuration file]</option></para>
|
||||
<para><command>inetd</command> <option>[-d] [-l] [-w] [-W] [-c maximum] [-C rate] [-a address | hostname]
|
||||
[-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>
|
||||
<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>
|
||||
<term>-c maximum</term>
|
||||
|
||||
|
@ -234,86 +226,50 @@
|
|||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>-a</term>
|
||||
<term>-s maximum</term>
|
||||
|
||||
<listitem>
|
||||
<para>Задает один IP-адрес, к которому делается привязка.
|
||||
Альтернативно может быть указано имя хоста, и в этом случае
|
||||
используется соответствующий этому имени хоста адрес IPv4 или
|
||||
IPv6. Обычно имя хоста задается, когда
|
||||
<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>
|
||||
<para>Задает максимальное количество процессов, одновременно
|
||||
обслуживающих один сервис для одного IP-адреса; по умолчанию
|
||||
не ограничено. Может переопределяться для каждой службы
|
||||
параметром <option>max-child-per-ip</option>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</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 id="network-inetd-conf">
|
||||
<!-- XXX This section isn't very clear, and could do with some lovin' -->
|
||||
<title><filename>inetd.conf</filename></title>
|
||||
|
||||
<para>Настройка <application>inetd</application> управляется через файл
|
||||
<para>Настройка <application>inetd</application> производится через файл
|
||||
<filename>/etc/inetd.conf</filename>.</para>
|
||||
|
||||
<para>Если в файле <filename>/etc/inetd.conf</filename> делались
|
||||
изменения, то <application>inetd</application> можно заставить считать
|
||||
его конфигурационный файл повторно, послав сигнал HangUP процессу
|
||||
<application>inetd</application>, как показано здесь:</para>
|
||||
его конфигурационный файл повторно посредством команды</para>
|
||||
|
||||
<example id="network-inetd-hangup">
|
||||
<title>Посылка сигнала HangUP процессу
|
||||
<example id="network-inetd-reread">
|
||||
<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>
|
||||
|
||||
<para>В каждой строке конфигурационного файла описывается отдельный
|
||||
даемон. Комментариям в файле предшествует знак <quote>#</quote>. Файл
|
||||
<filename>/etc/inetd.conf</filename> имеет такой формат:</para>
|
||||
даемон. Комментариям в файле предшествует знак <quote>#</quote>.
|
||||
Строки в файле
|
||||
<filename>/etc/inetd.conf</filename> имеют такой формат:</para>
|
||||
|
||||
<programlisting>service-name
|
||||
socket-type
|
||||
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]
|
||||
server-program
|
||||
server-program-arguments</programlisting>
|
||||
|
||||
<para>Пример записи для даемона <application>ftpd</application>,
|
||||
<para>Пример записи для даемона &man.ftpd.8;,
|
||||
использующего IPv4:</para>
|
||||
|
||||
<programlisting>ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l</programlisting>
|
||||
|
@ -396,7 +352,7 @@ server-program-arguments</programlisting>
|
|||
</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>
|
||||
<para><option>wait|nowait</option> определяет, может ли даемон,
|
||||
|
@ -414,41 +370,55 @@ server-program-arguments</programlisting>
|
|||
параметром <option>max-child</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-адрес на выполнение десяти попыток подключения
|
||||
к некоторому сервису в минуту. Это полезно для предотвращения
|
||||
к некоторому сервису в минуту. Параметр
|
||||
<option>max-child-per-ip</option> ограничивает количество
|
||||
дочерних процессов, которые могут быть одновременно
|
||||
задействованы на обслуживание одного IP-адреса.
|
||||
Эти опции полезны для предотвращения
|
||||
намеренного или ненамеренного расходования ресурсов и атак типа
|
||||
Denial of Service (DoS) на машину.</para>
|
||||
|
||||
<para>В этом поле <option>wait</option> или <option>nowait</option>
|
||||
обязательны. <option>max-child</option> и
|
||||
<option>max-connections-per-ip-per-minute</option>
|
||||
<para>В этом поле одно из значений <option>wait</option>
|
||||
или <option>nowait</option>
|
||||
обязательны. <option>max-child</option>,
|
||||
<option>max-connections-per-ip-per-minute</option> и
|
||||
<option>max-child-per-ip</option>
|
||||
опциональны.</para>
|
||||
|
||||
<para>Многопоточный даемон типа stream без ограничений
|
||||
<option>max-child</option> или
|
||||
<option>max-connections-per-ip-per-minute</option> будет
|
||||
определен просто вот так: <literal>nowait</literal>.</para>
|
||||
<option>max-child</option>,
|
||||
<option>max-connections-per-ip-per-minute</option> или
|
||||
<option>max-child-per-ip</option> будет
|
||||
определен просто как <literal>nowait</literal>.</para>
|
||||
|
||||
<para>Тот же самый даемон с ограничением в максимум десять даемонов
|
||||
будет определен так: <literal>nowait/10</literal>.</para>
|
||||
|
||||
<para>Наконец, та же конфигурация с ограничением в двадцать
|
||||
<para>Та же конфигурация с ограничением в двадцать
|
||||
соединений на IP-адрес в минуту и общим ограничением в максимум
|
||||
десять порожденных даемонов выглядит так:
|
||||
<literal>nowait/10/20</literal>.</para>
|
||||
|
||||
<para>Эти параметры, используемые все со значениями по умолчанию
|
||||
даемоном <application>fingerd</application>, имеют такой
|
||||
даемоном &man.fingerd.8;, имеют такой
|
||||
вид:</para>
|
||||
|
||||
<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>
|
||||
</varlistentry>
|
||||
|
||||
|
@ -497,23 +467,25 @@ server-program-arguments</programlisting>
|
|||
<sect2 id="network-inetd-security">
|
||||
<title>Безопасность</title>
|
||||
|
||||
<para>В зависимости от схемы безопасности, выбранной при установке,
|
||||
многие из даемонов <application>inetd</application> могут оказаться по
|
||||
умолчанию включенными. Если нет особой нужды в некотором даемоне, то
|
||||
выключите его! Поместите знак <quote>#</quote> перед ненужным даемоном
|
||||
<para>В зависимости от выбранных при установке параметров,
|
||||
многие из служб <application>inetd</application> могут оказаться по
|
||||
умолчанию включенными. Если нет особой нужды в некотором даемоне,
|
||||
подумайте, не стоит ли его выключить?
|
||||
Поместите знак <quote>#</quote> перед ненужным даемоном
|
||||
в <filename>/etc/inetd.conf</filename>
|
||||
и <link linkend="network-inetd-hangup">пошлите сигнал для inetd</link>.
|
||||
и <link linkend="network-inetd-reread">пошлите сигнал для inetd</link>.
|
||||
Некоторые даемоны, такие, как <application>fingerd</application>,
|
||||
вообще нежелательны, потому что они дают атакующему слишком много
|
||||
информации.</para>
|
||||
вообще нежелательны, потому что они дают информацию, которая
|
||||
может оказаться полезной атакующему.</para>
|
||||
|
||||
<para>Некоторые даемоны не заботятся о безопасности и имеют большие
|
||||
тайм-ауты для соединений или вообще их не имеют. Это позволяет
|
||||
атакующему неспешно устанавливать соединения к конкретному даемону,
|
||||
истощая имеющиеся ресурсы. Может оказаться полезным задать для
|
||||
некоторых даемонов ограничения
|
||||
<option>max-connections-per-ip-per-minute</option> и
|
||||
<option>max-child</option>.</para>
|
||||
<option>max-connections-per-ip-per-minute</option>,
|
||||
<option>max-child</option> и <option>max-child-per-ip</option>,
|
||||
особенно если вы обнаружите слишком большое число соединений.</para>
|
||||
|
||||
<para>По умолчанию механизм TCP wrapping включен. Обратитесь к
|
||||
справочной странице по &man.hosts.access.5; для получения более
|
||||
|
@ -534,8 +506,7 @@ server-program-arguments</programlisting>
|
|||
|
||||
<para>Сервис <application>auth</application> предоставляет
|
||||
идентификационные сетевые услуги
|
||||
(<application>ident</application>, <application>identd</application>)
|
||||
и поддается настройке.</para>
|
||||
и поддается настройке; прочие сервисы ненастраиваемы.</para>
|
||||
|
||||
<para>Обратитесь к справочной странице по &man.inetd.8; для получения
|
||||
более подробной информации.</para>
|
||||
|
@ -4291,7 +4262,7 @@ zone "0.168.192.in-addr.arpa" {
|
|||
в поставку FreeBSD. Если вы не установили их во вместе с
|
||||
системой, воспользуйтесь портами <filename
|
||||
role="package">www/apache13</filename> или <filename
|
||||
role="package">www/apache2</filename>.</para>
|
||||
role="package">www/apache20</filename>.</para>
|
||||
|
||||
<para>Как только <application>Apache</application> был успешно
|
||||
установлен, его необходимо настроить.</para>
|
||||
|
@ -4523,7 +4494,7 @@ DocumentRoot /www/someotherdomain.tld
|
|||
role="package">www/apache13-modssl</filename>.
|
||||
Поддержка SSL также доступна для
|
||||
<application>Apache</application> 2.X
|
||||
через порт <filename role="package">www/apache2</filename>,
|
||||
через порт <filename role="package">www/apache20</filename>,
|
||||
где она включена по умолчанию.</para>
|
||||
|
||||
<!-- XXX add more information about configuring mod_ssl here. -->
|
||||
|
@ -4532,9 +4503,24 @@ DocumentRoot /www/someotherdomain.tld
|
|||
</sect3>
|
||||
|
||||
<sect3>
|
||||
<title>Построение динамических сайтов при помощи Perl и PHP</title>
|
||||
|
||||
<para>В последние годы все большее число компаний обращает внимание
|
||||
на Интернет как площадку для ведения и расширения бизнеса.
|
||||
Среди прочего, этот процесс подчеркивает потребность в
|
||||
интерактивном содержимом сайтов. Некоторые компании, такие как
|
||||
µsoft;, представляют свои закрытые решения; сообщество
|
||||
разработчиков открытых программ отвечает на вызов.
|
||||
Два возможных пути решения проблемы динамического контента —
|
||||
mod_perl и mod_php.</para>
|
||||
|
||||
<sect4>
|
||||
<title>mod_perl</title>
|
||||
|
||||
<indexterm><primary>Perl</primary></indexterm>
|
||||
<indexterm>
|
||||
<primary>mod_perl</primary>
|
||||
<secondary>Perl</secondary>
|
||||
</indexterm>
|
||||
|
||||
<para>Проект интеграции
|
||||
<application>Apache</application>/Perl объединяет мощь
|
||||
|
@ -4547,15 +4533,22 @@ DocumentRoot /www/someotherdomain.tld
|
|||
позволяет не тратить ресурсы на запуск внешнего
|
||||
интерпретатора и время на запуск Perl.</para>
|
||||
|
||||
<para>Если вы еще не установили <application>Apache</application>,
|
||||
его версия с модулем <application>mod_perl</application> может
|
||||
быть установлена через
|
||||
порт <filename
|
||||
role="package">www/apache13-modperl</filename>.</para>
|
||||
</sect3>
|
||||
<para><application>mod_perl</application> можно использовать
|
||||
различными способами. Помните, что
|
||||
<application>mod_perl</application> 1.0 работает только с
|
||||
<application>Apache</application> 1.3, тогда как
|
||||
<application>mod_perl</application> 2.0 совместим только с
|
||||
<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>
|
||||
<sect3info>
|
||||
<sect4>
|
||||
<sect4info>
|
||||
<authorgroup>
|
||||
<author>
|
||||
<firstname>Tom</firstname>
|
||||
|
@ -4563,21 +4556,16 @@ DocumentRoot /www/someotherdomain.tld
|
|||
<contrib>Написал </contrib>
|
||||
</author>
|
||||
</authorgroup>
|
||||
</sect3info>
|
||||
<title>PHP</title>
|
||||
</sect4info>
|
||||
<title>mod_php</title>
|
||||
|
||||
<indexterm><primary>PHP</primary></indexterm>
|
||||
<indexterm>
|
||||
<primary>mod_php</primary>
|
||||
<secondary>PHP</secondary>
|
||||
</indexterm>
|
||||
|
||||
<para>В последние несколько лет все большее количество компаний
|
||||
выходит в интернет, стараясь повысить свою узнаваемость и получить
|
||||
больший доход. Это увеличивает потребность в интерактивном
|
||||
веб контенте. В то время, как некоторые компании, такие
|
||||
как µsoft;, представили свои решения в проприетарных
|
||||
продуктах, сообщество открытых исходных текстов ответило
|
||||
на вызов. Один из таких ответов, это широко используемый
|
||||
<acronym>PHP</acronym>.
|
||||
|
||||
<para>PHP, также известный как <quote>Hypertext Preprocessor</quote>,
|
||||
<para>PHP, также известный как <quote>Препроцессор гипертекста</quote>
|
||||
(<quote>Hypertext Preprocessor</quote>), —
|
||||
это скриптовый язык общего назначения, в основном предназначенный
|
||||
для веб разработки. Этот язык может быть встроен в
|
||||
<acronym>HTML</acronym>, его синтаксис заимствован из C, &java;
|
||||
|
@ -4589,42 +4577,47 @@ DocumentRoot /www/someotherdomain.tld
|
|||
порта <filename role="package">www/mod_php5</filename>.</para>
|
||||
|
||||
<para>Этот порт устанавливает и настраивает модули, необходимые
|
||||
для поддержки динамических веб страниц. Убедитесь, что в файл
|
||||
для поддержки динамических <acronym>PHP</acronym> веб страниц.
|
||||
Убедитесь, что в файл
|
||||
<filename>/usr/local/etc/apache/httpd.conf</filename> были
|
||||
добавлены следующие строки:</para>
|
||||
добавлены следующие секции:</para>
|
||||
|
||||
<programlisting>LoadModule php5_module libexec/apache/libphp5.so
|
||||
AddModule mod_php5.c
|
||||
<programlisting>LoadModule php5_module libexec/apache/libphp5.so</programlisting>
|
||||
|
||||
<programlisting>AddModule mod_php5.c
|
||||
<IfModule mod_php5.c>
|
||||
DirectoryIndex index.php index.html
|
||||
</IfModule>
|
||||
|
||||
<IfModule mod_php5.c>
|
||||
AddType application/x-httpd-php .php
|
||||
AddType application/x-httpd-php-source .phps
|
||||
</IfModule></programlisting>
|
||||
|
||||
<para>После этого просто вызовите команду
|
||||
<para>Для загрузки модуля <acronym>PHP</acronym>
|
||||
после этого просто вызовите команду
|
||||
<command>apachectl</command> с параметром graceful:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>apachectl graceful</userinput></screen>
|
||||
|
||||
<para>Поддержка <acronym>PHP</acronym> в &os; построена по
|
||||
модульному принципу. Если требуется поддержка какого-либо
|
||||
расширения, администратор должен лишь установить
|
||||
соответствующий порт и перезапустить
|
||||
<application>Apache</application>, как показано выше.</para>
|
||||
модульному принципу, поэтому базовая установка обладает очень
|
||||
ограниченной функциональностью. Дополнительная функциональность
|
||||
может быть легко добавлена при помощи порта <filename
|
||||
role="package">lang/php5-extensions</filename>, управляющего набором
|
||||
расширений <acronym>PHP</acronym> через меню, либо просто путем
|
||||
установки дополнительных портов.</para>
|
||||
|
||||
<para>Например, для добавления поддержки
|
||||
<application>MySQL</application> к <acronym>PHP</acronym>5,
|
||||
просто установите
|
||||
<filename role="package">databases/php5-mysql</filename>
|
||||
и выполните следующую команду:</para>
|
||||
просто установите порт
|
||||
<filename role="package">databases/php5-mysql</filename>.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>apachectl graceful</userinput></screen>
|
||||
<para>После установки новых расширений сервер
|
||||
<application>Apache</application> должен быть рестартован,
|
||||
чтобы изменения в конфигурации вступили в силу:</para>
|
||||
|
||||
<para>Это включит поддержку <application>MySQL</application>
|
||||
в <acronym>PHP</acronym>.</para>
|
||||
<screen>&prompt.root; <userinput>apachectl graceful</userinput></screen>
|
||||
</sect4>
|
||||
</sect3>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
@ -4705,9 +4698,9 @@ AddModule mod_php5.c
|
|||
|
||||
<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>
|
||||
необходимо отправить HangUP сигнал.</para>
|
||||
необходимо перечитать конфигурацию.</para>
|
||||
|
||||
<para>Как только <application>swat</application> был включен
|
||||
<filename>inetd.conf</filename>, вы можете использовать
|
||||
|
@ -4961,8 +4954,8 @@ Starting smbd.</screen>
|
|||
|
||||
<programlisting>ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l</programlisting>
|
||||
|
||||
<para>Как описано в <xref linkend="network-inetd-hangup">,
|
||||
сигнал HangUP должен быть отправлен <application>inetd</application>
|
||||
<para>Как описано в <xref linkend="network-inetd-reread">,
|
||||
<application>inetd</application> должен перечитать конфигурацию
|
||||
после того, как этот файл настройки был изменен.</para>
|
||||
|
||||
<para>Теперь вы можете войти на FTP сервер, введя:</para>
|
||||
|
|
Loading…
Reference in a new issue