<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://wwoss.direct.quickconnect.to/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel xmlns:g="http://base.google.com/ns/1.0">
        <title>worldwide open-source software - wiki:farms</title>
        <description></description>
        <link>https://wwoss.direct.quickconnect.to/</link>
        <lastBuildDate>Fri, 10 Apr 2026 22:15:40 +0000</lastBuildDate>
        <generator>FeedCreator 1.8</generator>
        <image>
            <url>https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=wiki:logo.png</url>
            <title>worldwide open-source software</title>
            <link>https://wwoss.direct.quickconnect.to/</link>
        </image>
        <item>
            <title>advanced</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=wiki:farms:advanced&amp;rev=1736967323</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;расширенные_настройки_фермы_и_советы&quot;&gt;Расширенные настройки фермы и советы&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/images/smileys/fixme.jpg&quot; class=&quot;icon smiley&quot; alt=&quot;FIXME&quot; /&gt; Большую часть &lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=tips:farm&quot; class=&quot;wikilink2&quot; title=&quot;tips:farm&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;tips:farm&quot;&gt;старой документации фермы&lt;/a&gt;, которая не охвачена &lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=wiki:farms&quot; class=&quot;wikilink2&quot; title=&quot;wiki:farms&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;wiki:farms&quot;&gt;новой документацией фермы&lt;/a&gt;, следует добавить сюда.
&lt;/p&gt;

&lt;p&gt;
В следующих разделах предполагается установка, аналогичная той, что описана на &lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=wiki:farms&quot; class=&quot;wikilink2&quot; title=&quot;wiki:farms&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;wiki:farms&quot;&gt;фермах&lt;/a&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0444\u0435\u0440\u043c\u044b \u0438 \u0441\u043e\u0432\u0435\u0442\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0435_\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438_\u0444\u0435\u0440\u043c\u044b_\u0438_\u0441\u043e\u0432\u0435\u0442\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-501&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;cli_tools&quot;&gt;CLI tools&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
CLI-инструменты &lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=wiki:cli&quot; class=&quot;wikilink1&quot; title=&quot;wiki:cli&quot; data-wiki-id=&quot;wiki:cli&quot;&gt; инструменты командной строки&lt;/a&gt; вам нужно только задать имя животного в &lt;code&gt;animal&lt;/code&gt; переменной окружения. Например, если вы хотите выполнить &lt;code&gt;bin/indexer.php&lt;/code&gt; для животного «foo» вы можете использовать &lt;code&gt;animal=foo bin/indexer.php&lt;/code&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;CLI tools&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;cli_tools&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;502-937&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;установка_значений_по_умолчанию_и_ограничение_опций&quot;&gt;Установка значений по умолчанию и ограничение опций&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Вы можете добавить дополнительные файлы конфигурации для значений по умолчанию, которые должны использоваться в животных, и для ограничения определенных параметров конфигурации. Если вы добавите следующий код в конец &lt;code&gt;inc/preload.php&lt;/code&gt;, основной файл конфигурации фермера будет использоваться как файл по умолчанию для всех животных, а защищенный файл фермера будет использоваться как последний защищенный файл для всех животных, что означает, что животные не смогут изменять эти параметры. Это может быть использовано для отключения определенных параметров, таких как &lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=wiki:config:phpok&quot; class=&quot;wikilink1&quot; title=&quot;wiki:config:phpok&quot; data-wiki-id=&quot;wiki:config:phpok&quot;&gt;phpok&lt;/a&gt; если вы не доверяете администратору животных.
&lt;/p&gt;
&lt;pre class=&quot;code file php&quot;&gt;&lt;span class=&quot;re0&quot;&gt;$config_cascade&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;main&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;default&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; DOKU_INC&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;conf/local.php&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$config_cascade&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;main&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;protected&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; DOKU_INC&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;conf/local.protected.php&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Обратите внимание, что эти изменения также влияют на фермера, если к нему есть доступ. Это сломает менеджер конфигурации в фермере, поскольку он предполагает, что все измененные значения являются значениями по умолчанию, и удалит их из конфигурации.
&lt;/p&gt;

&lt;p&gt;
Аналогичные изменения можно использовать для каскада плагинов, чтобы определить набор плагинов, которые включены по умолчанию, или набор плагинов, которые должны или не должны быть включены.
&lt;/p&gt;

&lt;p&gt;
Конечно, вы также можете полностью изменить каскад конфигурации, каскад конфигурации по умолчанию, который используется в фермах, вы можете найти в конце &lt;code&gt;inc/farm.php&lt;/code&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u043e\u043f\u0446\u0438\u0439&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430_\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439_\u043f\u043e_\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e_\u0438_\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435_\u043e\u043f\u0446\u0438\u0439&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;938-3470&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;отключение_доступа_к_фермеру&quot;&gt;Отключение доступа к фермеру&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Если вы хотите отключить доступ к фермеру, вы можете добавить что-то вроде
&lt;/p&gt;
&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;DOKU_FARM &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; nice_die&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;Access to the farmer denied&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
в конце &lt;code&gt;inc/preload.php&lt;/code&gt; (после включения &lt;code&gt;farm.php&lt;/code&gt;).
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0444\u0435\u0440\u043c\u0435\u0440\u0443&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435_\u0434\u043e\u0441\u0442\u0443\u043f\u0430_\u043a_\u0444\u0435\u0440\u043c\u0435\u0440\u0443&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;3471-3844&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;централизованное_управление_пользователями&quot;&gt;Централизованное управление пользователями&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Если некоторые или все ваши животные должны иметь общих пользователей, вы можете сделать это не только с помощью той же внешней аутентификации, но и с помощью управления пользователями DokuWiki по умолчанию, указав путь к списку пользователей в том же месте в конце &lt;code&gt;inc/preload.php&lt;/code&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;re0&quot;&gt;$config_cascade&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;plainauth.users&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/array&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;
    &lt;span class=&quot;st_h&quot;&gt;&#039;default&#039;&lt;/span&gt;   &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/your/path/to/conf/users.auth.php&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Если вы хотите сделать это только для некоторых животных, вы, конечно, можете просто добавить условие, основанное на значении &lt;code&gt;DOKU_CONF&lt;/code&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0435_\u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435_\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;3845-4810&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;гибкие_настройки_на_основе_htaccess&quot;&gt;Гибкие настройки на основе .htaccess&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
На самом деле настройки на основе .htaccess могут быть намного более гибкими, чем настройки, описанные на &lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=wiki:farms&quot; class=&quot;wikilink2&quot; title=&quot;wiki:farms&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;wiki:farms&quot;&gt;фермах&lt;/a&gt;. Для этих расширенных настроек ваш каталог фермы может и даже должен быть вне корня документов (каталога, доступного из Интернета). Если ваш каталог фермы находится внутри корня документов, вам нужно убедиться, что вы должным образом защищаете каждый каталог данных (например, используя .htaccess, как это делается в обычной настройке DokuWiki), так как в этих расширенных настройках они могут не быть автоматически защищены (зависит от используемых вами условий перезаписи).
&lt;/p&gt;

&lt;p&gt;
Чтобы сделать животных доступными, как в стандартной настройке, вы можете создать второй каталог фермы внутри корня документа с файлом .htaccess и без каталогов животных. Вы также можете добавить &lt;code&gt;RewriteCond&lt;/code&gt; операторы, как в примере ниже, чтобы предотвратить циклы перенаправления. Тогда ваши животные могут быть в корневом каталоге домена, т. е. вы можете иметь &lt;code&gt;example.com/animal1/&lt;/code&gt; для животного &lt;code&gt;animal1&lt;/code&gt; и &lt;code&gt;example.com/dokuwiki/&lt;/code&gt; для фермера.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=wiki:farms:advanced&amp;amp;codeblock=3&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_htaccess&quot;&gt;.htaccess&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code apache&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;RewriteEngine&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;On&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# Prevent rewrite loops by making sure that the farmer directory won&#039;t be matched&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# If you need to enable access to other directories either add them here or try something like&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# RewriteCond %{REQUEST_FILENAME}       !-f&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# RewriteCond %{REQUEST_FILENAME}       !-d&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# but then also the files of your animals (if they should be in this directory) will be accessible&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# so make sure you have properly protected them&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;RewriteCond&lt;/span&gt; %{REQUEST_URI} !^/?dokuwiki/
&lt;span class=&quot;kw1&quot;&gt;RewriteRule&lt;/span&gt; ^/?([^/]+)/(.*)  /dokuwiki/$2?animal=$1 [QSA]
&lt;span class=&quot;kw1&quot;&gt;RewriteCond&lt;/span&gt; %{REQUEST_URI} !^/?dokuwiki$
&lt;span class=&quot;co1&quot;&gt;# RewriteCond %{REQUEST_FILENAME}       !-f # allow files in the root directory (like some index file)&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;RewriteRule&lt;/span&gt; ^/?([^/]+)$      /dokuwiki/?animal=$1 [QSA]
&lt;span class=&quot;kw1&quot;&gt;Options&lt;/span&gt; +&lt;span class=&quot;kw2&quot;&gt;FollowSymLinks&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0413\u0438\u0431\u043a\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 .htaccess&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0433\u0438\u0431\u043a\u0438\u0435_\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438_\u043d\u0430_\u043e\u0441\u043d\u043e\u0432\u0435_htaccess&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;4811-7600&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;более_одного_домена&quot;&gt;Более одного домена&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Если вы можете использовать &lt;a href=&quot;https://en.wikipedia.org/wiki/symbolic link&quot; class=&quot;interwiki iw_wp&quot; title=&quot;https://en.wikipedia.org/wiki/symbolic link&quot;&gt;символические ссылки&lt;/a&gt; вы можете легко связать каталог в корневом каталоге документов каждого домена с фермером и указать этот каталог в правилах перезаписи.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0411\u043e\u043b\u0435\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0434\u043e\u043c\u0435\u043d\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0431\u043e\u043b\u0435\u0435_\u043e\u0434\u043d\u043e\u0433\u043e_\u0434\u043e\u043c\u0435\u043d\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;7601-8011&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;пользовательские_пути&quot;&gt;Пользовательские пути&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Если вы не хотите, чтобы все животные были в одном каталоге, вы можете просто создать файл .htaccess для каждого животного. В этом файле .htaccess вы можете указать имя животного.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=wiki:farms:advanced&amp;amp;codeblock=4&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_htaccess&quot;&gt;.htaccess&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code apache&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;RewriteEngine&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;On&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# Prevent rewrite loops by making sure that the farmer directory won&#039;t be matched&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# If you need to enable access to other directories either add them here or try something like&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# RewriteCond %{REQUEST_FILENAME}       !-f&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# RewriteCond %{REQUEST_FILENAME}       !-d&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# but then also the files of your animal (if they should be in this directory) will be accessible&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# so make sure you have properly protected them&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;RewriteCond&lt;/span&gt; %{REQUEST_URI} !^/?dokuwiki/
&lt;span class=&quot;kw1&quot;&gt;RewriteRule&lt;/span&gt; ^/?(.*) /dokuwiki/$1?animal=ANIMAL [QSA]
&lt;span class=&quot;kw1&quot;&gt;RewriteRule&lt;/span&gt; ^/?$ /dokuwiki/?animal=ANIMAL [QSA]
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;Options&lt;/span&gt; +&lt;span class=&quot;kw2&quot;&gt;FollowSymLinks&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Операторы &lt;code&gt;RewriteCond&lt;/code&gt; предотвращают циклы перенаправления, когда ваш каталог фермера находится внутри каталога животных. Таким образом, вы также можете поместить животное в корневой каталог домена.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u043f\u0443\u0442\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435_\u043f\u0443\u0442\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;8012-9365&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit9&quot; id=&quot;запуск_фермы_за_обратным_прокси-сервером&quot;&gt;Запуск фермы за обратным прокси-сервером&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Это происходит, когда вы настраиваете свою ферму на внутреннем сервере (например &lt;a href=&quot;http://11.22.33.44&quot; class=&quot;urlextern&quot; title=&quot;http://11.22.33.44&quot; rel=&quot;ugc nofollow&quot;&gt;http://11.22.33.44&lt;/a&gt;) и представляете свои вики-ресурсы миру через фронтенд-сервер Apache (например, &lt;a href=&quot;http://www.example.com&quot; class=&quot;urlextern&quot; title=&quot;http://www.example.com&quot; rel=&quot;ugc nofollow&quot;&gt;http://www.example.com&lt;/a&gt;).
&lt;/p&gt;

&lt;p&gt;
Сначала настройте ферму на сервере в соответствии со &lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=wiki:farms&quot; class=&quot;wikilink2&quot; title=&quot;wiki:farms&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;wiki:farms&quot;&gt;стандартной документацией&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
В моем случае я решил поместить все файлы DokuWiki в одно место, чтобы отделить их от других сайтов, работающих на внутреннем сервере:
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;/var/www/wikis/&lt;/code&gt; – Корень моей установки DokuWiki.
&lt;/p&gt;

&lt;p&gt;
Итак, моя ферма имеет следующую конфигурацию:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;/var/www/wikis/dokuwiki&lt;/code&gt;– движок DokuWiki, он должен быть доступен из Интернета&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;/var/www/wikis/farm&lt;/code&gt;– каталог ферм DokuWiki, содержащий всех животных&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;/var/www/wikis/farm/bear&lt;/code&gt;– моя первая вики о медведях&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
На внутреннем сервере моя вики о медведях (после полной настройки) будет доступна по следующему адресу &lt;a href=&quot;http://11.22.33.44/wikis/farm/bear&quot; class=&quot;urlextern&quot; title=&quot;http://11.22.33.44/wikis/farm/bear&quot; rel=&quot;ugc nofollow&quot;&gt;http://11.22.33.44/wikis/farm/bear&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Однако на сервере frontend я хочу представить свою вики по следующему адресу (обратите внимание, что я решил убрать «s» из «wikis» в этом &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt; ): &lt;a href=&quot;http://www.example.com/wiki/bear&quot; class=&quot;urlextern&quot; title=&quot;http://www.example.com/wiki/bear&quot; rel=&quot;ugc nofollow&quot;&gt;http://www.example.com/wiki/bear&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Используя тип настройки .htaccess, я настроил его &lt;code&gt;/var/www/wikis/farm/.htaccess&lt;/code&gt; с помощью следующего кода:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=wiki:farms:advanced&amp;amp;codeblock=5&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_htaccess&quot;&gt;.htaccess&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code apache&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;RewriteEngine&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;On&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;RewriteRule&lt;/span&gt; ^/?([^/]+)/(.*)  /wikis/dokuwiki/$2?animal=$1 [QSA]
&lt;span class=&quot;kw1&quot;&gt;RewriteRule&lt;/span&gt; ^/?([^/]+)$      /wikis/dokuwiki/?animal=$1 [QSA]
&lt;span class=&quot;kw1&quot;&gt;Options&lt;/span&gt; +&lt;span class=&quot;kw2&quot;&gt;FollowSymLinks&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Затем &lt;code&gt;/var/www/wikis/farm/bear/confя&lt;/code&gt; редактирую &lt;strong&gt;local.protected.php&lt;/strong&gt; следующим образом (примечание: здесь используется адрес интерфейса):
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=wiki:farms:advanced&amp;amp;codeblock=6&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_php&quot;&gt;local.protected.php&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt;
&lt;span class=&quot;co4&quot;&gt;/**
 * These settings are &amp;quot;protected&amp;quot; and cannot be overwritten
 * by the configuration manager, but need to be edited manually.
 */&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re0&quot;&gt;$conf&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;savedir&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; DOKU_CONF&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;../data&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$conf&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;updatecheck&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;// if you&#039;re using the .htaccess base setup, set this to your animal&#039;s base directory:&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$conf&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;basedir&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/wiki/bear/&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Поэтому я использую &lt;a href=&quot;http://httpd.apache.org/docs/2.2/mod/mod_proxy.html&quot; class=&quot;urlextern&quot; title=&quot;http://httpd.apache.org/docs/2.2/mod/mod_proxy.html&quot; rel=&quot;ugc nofollow&quot;&gt;Apache&amp;#039;s mod_proxy&lt;/a&gt; и настраиваю конфигурацию в &lt;strong&gt;httpd.conf&lt;/strong&gt; на сервере front-end:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=wiki:farms:advanced&amp;amp;codeblock=7&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_conf&quot;&gt;httpd.conf&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code apache&quot;&gt;    &amp;lt;&lt;span class=&quot;kw3&quot;&gt;Location&lt;/span&gt; /wiki&amp;gt;
      &lt;span class=&quot;kw1&quot;&gt;ProxyPass&lt;/span&gt; http://11.22.33.44/wikis/farm
      &lt;span class=&quot;kw1&quot;&gt;ProxyPassReverse&lt;/span&gt; http://11.22.33.44/wikis/farm
    &amp;lt;/&lt;span class=&quot;kw3&quot;&gt;Location&lt;/span&gt;&amp;gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Это означает, что все животные на моей ферме всегда будут проходить обратный прокси-сервер с желаемого адреса интерфейса.
&lt;/p&gt;

&lt;p&gt;
Это работает очень хорошо, пока вы не выполните определенные действия (например, вход в систему, выход из системы, сохранение изменений и т. д.). Поскольку движок DokuWiki выполняет перенаправление в этих точках, браузеру конечного пользователя отправляется заголовок HTTP 302, содержащий следующее:
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;Location: &lt;a href=&quot;http://11.22.33.44/wiki/bear/doku.php?id=blahblahblah&quot; class=&quot;urlextern&quot; title=&quot;http://11.22.33.44/wiki/bear/doku.php?id=blahblahblah&quot; rel=&quot;ugc nofollow&quot;&gt;http://11.22.33.44/wiki/bear/doku.php?id=blahblahblah&lt;/a&gt;&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
Конечно, на внутреннем сервере по этому адресу нет страницы, и в результате в браузере пользователя появляется сообщение об ошибке HTTP 404 «Страница не найдена».
&lt;/p&gt;

&lt;p&gt;
Средство — использовать &lt;a href=&quot;http://httpd.apache.org/docs/2.2/mod/mod_headers.html&quot; class=&quot;urlextern&quot; title=&quot;http://httpd.apache.org/docs/2.2/mod/mod_headers.html&quot; rel=&quot;ugc nofollow&quot;&gt;Apache&amp;#039;s mod_headers&lt;/a&gt;. Мы изменяем наш блок кода в &lt;strong&gt;httpd.conf&lt;/strong&gt; следующим образом:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=wiki:farms:advanced&amp;amp;codeblock=8&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_conf&quot;&gt;httpd.conf&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code apache&quot;&gt;    &amp;lt;&lt;span class=&quot;kw3&quot;&gt;Location&lt;/span&gt; /wiki&amp;gt;
      &lt;span class=&quot;kw1&quot;&gt;ProxyPass&lt;/span&gt; http://11.22.33.44/wikis/farm
      &lt;span class=&quot;kw1&quot;&gt;ProxyPassReverse&lt;/span&gt; http://11.22.33.44/wikis/farm
      &lt;span class=&quot;kw1&quot;&gt;Header&lt;/span&gt; edit Location ^http://11.22.33.44 http://www.example.com
    &amp;lt;/&lt;span class=&quot;kw3&quot;&gt;Location&lt;/span&gt;&amp;gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
The &amp;#039;Location&amp;#039; response header is now re-written to the correct address and everything works fine.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0417\u0430\u043f\u0443\u0441\u043a \u0444\u0435\u0440\u043c\u044b \u0437\u0430 \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u043c \u043f\u0440\u043e\u043a\u0441\u0438-\u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0437\u0430\u043f\u0443\u0441\u043a_\u0444\u0435\u0440\u043c\u044b_\u0437\u0430_\u043e\u0431\u0440\u0430\u0442\u043d\u044b\u043c_\u043f\u0440\u043e\u043a\u0441\u0438-\u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;9366-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 15 Jan 2025 18:55:23 +0000</pubDate>
        </item>
        <item>
            <title>example01</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=wiki:farms:example01&amp;rev=1736965693</link>
            <description>
&lt;p&gt;
&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=farms&quot; class=&quot;wikilink2&quot; title=&quot;farms&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;farms&quot;&gt;⇐ Вернуться назад&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;пример_создания_вики-фермы&quot;&gt;Пример создания вики-фермы&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Когда я создал свою первую вики-ферму, это заняло около 5 часов. Следующая, как я ожидаю, будет значительно меньше часа. Поэтому я подумал, что другим будет полезно, если я опубликую свои заметки администратора в публичном месте. Обратите внимание, что мы не рекомендуем это как лучший способ что-то делать, а скорее как пример, который работает для нас.
&lt;/p&gt;

&lt;p&gt;
Эта страница предназначена для дополнения официальной документации &lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=wiki:farms&quot; class=&quot;wikilink2&quot; title=&quot;wiki:farms&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;wiki:farms&quot;&gt;farms&lt;/a&gt; а не для ее замены. Пожалуйста, прочитайте хотя бы то объяснение перед этим.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u0438\u043c\u0435\u0440 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0432\u0438\u043a\u0438-\u0444\u0435\u0440\u043c\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u0438\u043c\u0435\u0440_\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f_\u0432\u0438\u043a\u0438-\u0444\u0435\u0440\u043c\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;47-1032&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;что_мы_пытаемся_сделать&quot;&gt;Что мы пытаемся сделать&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Этот сервер находится в специализированном исследовательском центре, который является частью физического факультета крупного университета. В настоящее время у нас есть 3 профессора, один штатный сотрудник (я) и от 15 до 30 аспирантов и студентов, участвующих в исследовании.
&lt;/p&gt;

&lt;p&gt;
Мы хотим полупубличную вики для центра и частные вики для каждого профессора, чтобы управлять проектами и публиковать результаты перед тем, как они станут общедоступными. Вероятно, мы захотим очень частные вики для работы над грантовыми предложениями или сбора данных для публикации
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0427\u0442\u043e \u043c\u044b \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0447\u0442\u043e_\u043c\u044b_\u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f_\u0441\u0434\u0435\u043b\u0430\u0442\u044c&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;1033-2113&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;среда&quot;&gt;Среда&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Наш веб-сервер работает под управлением Scientific Linux 6.3 (SL6), похожего на CentOS 6.3. Мы используем Apache 2.2.
&lt;/p&gt;

&lt;p&gt;
Наш ИТ-отдел выдал нам один внешний фиксированный IP-адрес и одну запись &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt; . Возможно, можно получить дополнительные записи CNAME, которые являются псевдонимами для IP-адреса, чтобы позволить одному серверу размещать несколько сайтов (см. &lt;a href=&quot;https://en.wikipedia.org/wiki/CNAME_record&quot; class=&quot;interwiki iw_wp&quot; title=&quot;https://en.wikipedia.org/wiki/CNAME_record&quot;&gt;wikipedia&amp;#039;s description&lt;/a&gt;. Поэтому мы решили использовать метод .htaccess, своего рода.
&lt;/p&gt;

&lt;p&gt;
Мы используем PHP v5.3.3 с Zend Engine v2.3.0.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u0440\u0435\u0434\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0440\u0435\u0434\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;2114-2951&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;обзор_процесса&quot;&gt;Обзор процесса&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Apache, PHP уже настроен и работает с доверенным сертификатом SSL. Шаги, которые мы собираемся рассмотреть, следующие:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;  Установите последнюю версию Dokuwiki из tarball. (только обзор)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;  Настройте базовую вики (только обзор)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;  Установить ферму&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;  Заблокируйте его для ограниченного доступа&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
С точки зрения браузера пользователь не может отличить ферму вики от нескольких установок полных или родительских вики. Мы могли бы установить несколько копий всего tarball dokuwiki в отдельные каталоги на веб-сервере, но это значительно усложнило бы текущие задачи по обслуживанию.
&lt;/p&gt;

&lt;p&gt;
Причина создания фермы заключается в том, что только родительская вики должна быть обновлена ​​до новой версии, а плагины должны быть установлены только один раз. Веб-сервер Apache также более эффективен с одной копией программы, но это вторично.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041e\u0431\u0437\u043e\u0440 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0431\u0437\u043e\u0440_\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;2952-4458&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;последняя_версия_dokuwiki&quot;&gt;Последняя версия DokuWiki&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
В целом, я большой поклонник использования предварительно упакованного ПО для каждой ОС . Однако в этом случае пакетное ПО было 2-летней давности, не содержало модуля фермы и разбросало файлы php в /usr/share/dokuwiki, /etc/dokuwiki и бог знает где еще. Теперь, когда у нас есть рабочая установка, мы, вероятно, могли бы работать с пакетом, но это было запутанно.
&lt;/p&gt;

&lt;p&gt;
Руководство &lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=wiki:install&quot; class=&quot;wikilink1&quot; title=&quot;wiki:install&quot; data-wiki-id=&quot;wiki:install&quot;&gt;по установке&lt;/a&gt; довольно простое и ему легко следовать, если вы решите пойти по этому пути.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0432\u0435\u0440\u0441\u0438\u044f DokuWiki&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f_\u0432\u0435\u0440\u0441\u0438\u044f_dokuwiki&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;4459-5338&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;настройте_базовую_вики&quot;&gt;Настройте базовую вики&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
В настройке базовой вики нет ничего особенного. В документации это называется «фермер» и является начальной настройкой работающей Dokuwiki, как объясняется в руководстве по установке.
&lt;/p&gt;

&lt;p&gt;
Этот wiki должен быть запущен и запущен, прежде чем мы займемся фермой. Он содержит весь код (файлы PHP), который управляет wiki. Другие wiki в ферме имеют только столько PHP-кода, чтобы отделить их друг от друга.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u0442\u0435 \u0431\u0430\u0437\u043e\u0432\u0443\u044e \u0432\u0438\u043a\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u0442\u0435_\u0431\u0430\u0437\u043e\u0432\u0443\u044e_\u0432\u0438\u043a\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;5339-6094&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;установить_ферму&quot;&gt;Установить ферму&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0444\u0435\u0440\u043c\u0443&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c_\u0444\u0435\u0440\u043c\u0443&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;6095-6139&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;обзор_терминологии&quot;&gt;Обзор терминологии&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
The farm metaphor maybe taking things too far but we&amp;#039;ll be consistent and try to avoid the common computer documentation foible of mixing our metaphors.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Ферма&lt;/strong&gt;: Полная установка с одним родительским вики (фермер) и несколькими дочерними вики (животные)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Фермер&lt;/strong&gt;: Родительская вики, которая содержит большинство файлов PHP, управляющих Dokuwiki. Это также полноценная вики сама по себе. Что важно в настройке, так это то, что мы можем получить доступ как к отдельным модулям, используемым животным (см. ниже), так и к основным модулям, используемым всеми вики.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Директория фермы&lt;/strong&gt;: Не путать с фермой, это корневой каталог всех дочерних вики. Это просто каталог в веб-пространстве. &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Животное &lt;/strong&gt;: Помните, что разница между дочерней вики (животное) и родительской вики (фермер) заключается в том, какие файлы PHP хранятся в их каталоге. Каждое животное содержит минимальное количество файлов .php, которые используются для настройки dokuwiki, а также каталоги, содержащие все данные для этой вики, в то время как у фермера есть полная установка dokuwiki, которая используется всеми животными, а также его собственные каталоги для данных. Таким образом, только родительской вики нужно установить плагины, и только родительскую вики нужно обновить до новой версии.  &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041e\u0431\u0437\u043e\u0440 \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u043b\u043e\u0433\u0438\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0431\u0437\u043e\u0440_\u0442\u0435\u0440\u043c\u0438\u043d\u043e\u043b\u043e\u0433\u0438\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;6140-8341&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit9&quot; id=&quot;что_видит_браузер&quot;&gt;Что видит браузер&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Наше веб-пространство организовано следующим образом:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;http://whatsamatta.edu&lt;/code&gt; - домашняя страница&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;http://whatsamatta.edu/wiki&lt;/code&gt; - Родительская вики с материалами для потребления авторизованными пользователями, &lt;strong&gt;фермером&lt;/strong&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;http://whatsamatta.edu/einstein&lt;/code&gt; - Первая частная вики-статья профессора, посвященная &lt;strong&gt;животным&lt;/strong&gt; (дочерняя вики-статья).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;http://whatsamatta.edu/keppler&lt;/code&gt; - Частная вики второго профессора, еще одно &lt;strong&gt;животное&lt;/strong&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Все остальное &lt;code&gt;http://whatsamatta.edu/somethingElse&lt;/code&gt; не зависит от Dokuwiki.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0427\u0442\u043e \u0432\u0438\u0434\u0438\u0442 \u0431\u0440\u0430\u0443\u0437\u0435\u0440&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0447\u0442\u043e_\u0432\u0438\u0434\u0438\u0442_\u0431\u0440\u0430\u0443\u0437\u0435\u0440&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;8342-9234&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit10&quot; id=&quot;как_организованы_наши_каталоги&quot;&gt;Как организованы наши каталоги&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Организация и расположение файлов конфигурации веб-сервера и контента являются, мягко говоря, гибкими. Соглашения значительно различаются, особенно если вы находитесь в общей или размещенной среде. Это описание нашей системы, не путайте его с рекомендацией того, как выглядит или должна выглядеть ваша система.
&lt;/p&gt;

&lt;p&gt;
Конфигурация веб-сервера для этих вики содержится в /etc/httpd/conf.d/dokuwiki.conf. Мы создали этот файл.
&lt;/p&gt;

&lt;p&gt;
Веб-контент находится в /var/www/html, а соответствующие каталоги:
&lt;/p&gt;
&lt;pre class=&quot;code php&quot;&gt;├── wiki                &lt;span class=&quot;sy0&quot;&gt;&amp;lt;--&lt;/span&gt;The farmer &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;parent wiki&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
│   ├── bin
│   ├── conf
│   ├── data                  &lt;span class=&quot;sy0&quot;&gt;&amp;lt;--&lt;/span&gt; These folders are what Dokuwiki uses
│   ├── inc
│   └── lib
└── wikis                     &lt;span class=&quot;sy0&quot;&gt;&amp;lt;--&lt;/span&gt;The farm &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;folder with child wikis&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    ├── _animal               &lt;span class=&quot;sy0&quot;&gt;&amp;lt;--&lt;/span&gt; template &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; child wiki
    ├── kepler                &lt;span class=&quot;sy0&quot;&gt;&amp;lt;--&lt;/span&gt; animal &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;child wiki&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;co2&quot;&gt;#1
&lt;/span&gt;    ├── Kepler &lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&quot;me1&quot;&gt;kepler&lt;/span&gt;      &lt;span class=&quot;sy0&quot;&gt;&amp;lt;--&lt;/span&gt;symbolic &lt;a href=&quot;http://www.php.net/link&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;link&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; common errors
    ├── einstein              &lt;span class=&quot;sy0&quot;&gt;&amp;lt;--&lt;/span&gt; animal &lt;span class=&quot;co2&quot;&gt;#2
&lt;/span&gt;    └── Einstein &lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&quot;me1&quot;&gt;einstein&lt;/span&gt;  &lt;span class=&quot;sy0&quot;&gt;&amp;lt;--&lt;/span&gt;symbolic &lt;a href=&quot;http://www.php.net/link&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;link&lt;/span&gt;&lt;/a&gt;&lt;/pre&gt;

&lt;p&gt;
Каталог _animal — это шаблон, доступный на странице &lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=wiki:farms&quot; class=&quot;wikilink2&quot; title=&quot;wiki:farms&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;wiki:farms&quot;&gt;фермы&lt;/a&gt; &lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=wiki:farms:dokuwiki_farm_animal.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;wiki:farms:dokuwiki_farm_animal.zip (47 KB)&quot;&gt;этот шаблон животных&lt;/a&gt;. Он принадлежит пользователю root с привилегиями 600, поэтому он недоступен для веб-сервера. Чтобы подготовить новое животное (дочернюю вики), введите:
&lt;/p&gt;
&lt;pre class=&quot;code php&quot;&gt;cp &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;r _animal newton
&lt;a href=&quot;http://www.php.net/chown&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;chown&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;R apache&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;apache newton
ln &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;s newton Newton&lt;/pre&gt;

&lt;p&gt;
Символические ссылки — это просто моя любимая мозоль. Я никогда не знаю, как люди будут писать имя с заглавной буквы, это делает newton и Newton похожими.
&lt;/p&gt;

&lt;p&gt;
Для нашей системы каждый файл и каталог, показанные здесь (и их подкаталоги), принадлежат apache:apache и имеют разрешения 640 для файлов и 750 для каталогов. Обратите внимание, что имена пользователей и групп также значительно различаются в зависимости от установки.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041a\u0430\u043a \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u043d\u0430\u0448\u0438 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043a\u0430\u043a_\u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u043d\u044b_\u043d\u0430\u0448\u0438_\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;9235-12084&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit11&quot; id=&quot;самое_интересноеконфигурация&quot;&gt;Самое интересное: конфигурация&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Следующие файлы изменены или созданы:
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;в_каждом_животном_дочерняя_викиvar_www_html_wikis_einstein_var_www_html_wikis_kepler&quot;&gt;В каждом животном (дочерняя вики): (/var/www/html/wikis/einstein, /var/www/html/wikis/kepler...)&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Редактировать &lt;code&gt;conf/local.protected.php uncomment&lt;/code&gt; и установить &lt;code&gt;$conf[&amp;#039;basedir&amp;#039;]&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
Например, измените:
&lt;/p&gt;
&lt;pre class=&quot;code php&quot;&gt;   &lt;span class=&quot;co1&quot;&gt;//$conf[&#039;basedir&#039;] = &#039;/farm/animal/&#039;;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
на
&lt;/p&gt;
&lt;pre class=&quot;code php&quot;&gt;  &lt;span class=&quot;re0&quot;&gt;$conf&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;basedir&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/wikis/einstein/&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Я считаю, что завершающий символ / необходим, поэтому будьте осторожны.
&lt;/p&gt;

&lt;p&gt;
Мы также изменили &lt;code&gt;conf/local.php&lt;/code&gt; чтобы установить заголовок вики, чтобы помочь отладке, но это можно сделать через веб-интерфейс после того, как все заработает. Если вы хотите сделать это, измените:
&lt;/p&gt;
&lt;pre class=&quot;code php&quot;&gt;  &lt;span class=&quot;re0&quot;&gt;$conf&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;title&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Animal Wiki Title&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
на
&lt;/p&gt;
&lt;pre class=&quot;code php&quot;&gt;  &lt;span class=&quot;re0&quot;&gt;$conf&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;title&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;Albert\&#039;s Wiki&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;в_каталоге_фермера_var_www_html_wiki&quot;&gt;В каталоге фермера (/var/www/html/wiki)&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Чтобы активировать ферму, перейдите в каталог inc в каталоге farmer (родительская вики).
&lt;/p&gt;

&lt;p&gt;
Скопируйте файл &lt;code&gt;preload.php.dist&lt;/code&gt; в &lt;code&gt;preload.php&lt;/code&gt;. Обратите внимание, если вы решили работать со старой версией Dokuwiki, вам придется загрузить farm.php и preload.php.dist (см. &lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=wiki:farms&quot; class=&quot;wikilink2&quot; title=&quot;wiki:farms&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;wiki:farms&quot;&gt;страницу документации по фермам&lt;/a&gt;).
&lt;/p&gt;

&lt;p&gt;
Раскомментируйте определение DOKU_FARMDIR и укажите путь. Изменить:
&lt;/p&gt;
&lt;pre class=&quot;code php&quot;&gt;  &lt;span class=&quot;co1&quot;&gt;//if(!defined(&#039;DOKU_FARMDIR&#039;)) define(&#039;DOKU_FARMDIR&#039;, &#039;/var/www/farm&#039;);&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
в
&lt;/p&gt;
&lt;pre class=&quot;code php&quot;&gt;  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;&lt;a href=&quot;http://www.php.net/defined&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;defined&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;DOKU_FARMDIR&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;a href=&quot;http://www.php.net/define&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;define&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;DOKU_FARMDIR&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/var/www/html/wikis&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Раскомментируйте модуль фермы:
&lt;/p&gt;
&lt;pre class=&quot;code php&quot;&gt;  &lt;span class=&quot;co1&quot;&gt;//include(fullpath(dirname(__FILE__)).&#039;/farm.php&#039;);&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;конфигурация_apache&quot;&gt;Конфигурация Apache&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Во время установки Dokuwiki мы создали файл конфигурации /etc/httpd/conf.d/dokuwiki.conf с несколькими директивами &amp;lt;Directory&amp;gt;, которые управляют доступом к различным каталогам. (Я ищу ссылку на инструкции о том, как это сделать).
&lt;/p&gt;

&lt;p&gt;
Теперь нам нужно определить псевдонимы, необходимые для сокращения &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt;-адресов, которые будут вводить наши пользователи, и добавить правила перезаписи.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;псевдонимы&quot;&gt;Псевдонимы&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
В текущем виде пользователь может ввести &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt;-адрес, который выглядит так, &lt;code&gt;http://wattsamatta.edu/wikis/einstein&lt;/code&gt; чтобы попасть на нужное животное на ферме (дочерняя вики), однако тот факт, что мы решили назвать наши вики-сайты фермы, не имеет значения, поэтому, чтобы сократить его до, &lt;code&gt;http://wattsamata.edu/enistein&lt;/code&gt; мы включаем директиву псевдонима для каждой дочерней вики:
&lt;/p&gt;
&lt;pre class=&quot;code php&quot;&gt;  Псевдоним &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;Эйнштейн &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;www&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;wikis&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;kepler
  Псевдоним &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;Кеплер &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;www&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;wikis&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;kepler&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;переписать_правила&quot;&gt;Переписать правила&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
В документации ферм представлены два различных метода адресации ферм: виртуальные хосты и .htaccess. При использовании метода виртуального хоста (который мы не используем) пользователь вводит &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt;-адрес вида &lt;code&gt;http://einstein.whatsamatta.edu&lt;/code&gt;.  При использовании метода .htaccess (описанного ниже) этот &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt;-адрес будет выглядеть так : . Выбор обычно определяется тем, к каким инструментам у вас есть доступ. Мы выбрали метод .htaccess, потому что нам нелегко добавлять записи CNAME на &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt;- &lt;code&gt;http://whatsamatta.edu/einstein&lt;/code&gt;.  сервер университета.
&lt;/p&gt;

&lt;p&gt;
Это единственная действительно, действительно таинственная и непонятная часть. То, что мы хотим, чтобы наши пользователи делали, это входили &lt;code&gt;http://whatsamatta.edu/einstein&lt;/code&gt;, а то, что нужно dokuwiki, больше похоже на то, &lt;code&gt;http://whatsamatta.edu/wiki/doku.php?animal=einstein&lt;/code&gt; за исключением, конечно, когда это не домашняя страница вики, тогда uri намного сложнее.
&lt;/p&gt;

&lt;p&gt;
Это делается с помощью правил перезаписи, которые Apache использует для преобразования фактического &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt; в тот, который нам нужен. Это регулярное выражение (что само по себе плохо) с дополнительными флагами. По большей части вы можете скопировать эти правила с небольшими, очевидными изменениями. Если вы хотите лучше их понять, я нашел этот шведский сайт с хорошим способом поиграться с правилами mod_rewrite, см. &lt;a href=&quot;http://martinmelin.se/rewrite-rule-tester/&quot; class=&quot;urlextern&quot; title=&quot;http://martinmelin.se/rewrite-rule-tester/&quot; rel=&quot;ugc nofollow&quot;&gt;http://martinmelin.se/rewrite-rule-tester/&lt;/a&gt; (так скажем, Мартин).
&lt;/p&gt;

&lt;p&gt;
Инструкции фермы делают это с помощью файла .htaccess, но мы предпочитаем помещать их в директиву &amp;lt;Directory&amp;gt;. Оба варианта работают, Apache рекомендует директиву из соображений производительности, но метод .htaccess работает для людей без привилегий root. Добавьте следующее в файл dokuwiki.conf:
&lt;/p&gt;
&lt;pre class=&quot;code php&quot;&gt;  &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;Directory &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;www&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;wikis&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
        AllowOverride All
        Options &lt;span class=&quot;sy0&quot;&gt;+&lt;/span&gt;FollowSymLinks
&amp;nbsp;
        RewriteEngine On
&amp;nbsp;
        RewriteRule ^&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;?&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;^&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.*&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;  &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;wiki&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;$&lt;span class=&quot;nu19&quot;&gt;2&lt;/span&gt;?animal&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;$&lt;span class=&quot;nu19&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;QSA&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        RewriteRule ^&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;?&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;^&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;$      &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;wiki&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;?animal&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;$&lt;span class=&quot;nu19&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;QSA&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
  &lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;Directory&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
На этом этапе, если никто из нас ничего не упустил, перезапуск веб-сервера создаст рабочую вики-ферму. Введите:
&lt;/p&gt;
&lt;pre class=&quot;code php&quot;&gt;  service httpd restart&lt;/pre&gt;

&lt;p&gt;
затем попробуйте сделать это через браузер.
&lt;/p&gt;

&lt;p&gt;
Удачи.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u0430\u043c\u043e\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435: \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0430\u043c\u043e\u0435_\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;12085-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 15 Jan 2025 18:28:13 +0000</pubDate>
        </item>
    </channel>
</rss>
