Настройка веб-сервера Apache

This page is a translated version of the page Apache configuration and the translation is 76% complete.

Apache HTTP Server (httpd) — самый используемый веб-сервер с MediaWiki.

Модули

PHP

PHP как модуль Apache

MediaWiki написано для использования PHP в качестве модуля Apache. Вероятно, ваш PHP настроен как модуль, если ваши URL-адреса начинаются подобным образом:

example.com/index.php/Main_Page

Вы можете проверить какая конфигурация и версия PHP используется, с помощью просмотра вашей вики Special:Version страницы, или с помощью phpinfo().

Установите PHP, Apache, и модуль PHP для Apache. Afterwards, make sure that the Apache service is running. For specific commands, refer to the documentation of your operating system or distribution.

PHP как CGI

Если PHP работает как CGI, у вас будут «некрасивые» URL-адреса по умолчанию, но вы всё ещё можете реализовать короткие URL-адреса.

CGIWrap

Если у вас есть свой ​​собственный сервер с работающим Apache и работающим PHP как CGI, вы можете установить CGIWrap. Этот инструмент позволяет запускать сервер Apache от имени другого пользователя для CGI.

Таким образом, вы можете создать нового пользователя для страниц MediaWiki. Установка CGIWrap выходит за рамки этого документа, тем более, что вы должны скомпилировать его на собственном сервере. Однако, в качестве краткого руководства, можете следовать следующим правилам:

  • Создайте учётную запись в Викимедиа
useradd -M -s /sbin/nologin wikiuser
  • Have a cgi-bin folder, containing CGIWrap (example in /home/myuser/cgi-bin). Once everything is configured, keep only cgiwrap, move the debug versions to another folder if you ever need it. Your cgiwrap file should be accessible only to Apache (chown and chmod accordingly).
chown apache:apache cgiwrap
chmod 500 cgiwrap
  • Внутри папки cgi-bin создайте символьную ссылку на root-каталог Викимедиа.
ln -s /home/myuser/public_html/wiki /home/myuser/cgi-bin/wikilink
  • В вашем .htaccess файле wiki добавьте следующие определения:
AddHandler php-wrapper .php
Action php-wrapper /cgi-bin/cgiwrap/wikiuser/wikilink
  • Наконец, смените владельца (chown) и права доступа (chmod) у всех .php файлов в вашей папке Wikimedia так, чтобы они были доступны только пользователю wikiuser.
find . -name \*.php -exec chown wikiuser:wikiuser {} \;
find . -name \*.php -exec chmod 500 {} \;

The files will be accessible as usual. You do not need to specify in your path any cgi-bin, as this is transparently taken care of for you.

Я настоятельно рекомендую вам начать с /cgi-bin/cgiwrapd/... в качестве вашей php-оболочки, так как она точно покажет, что работает на данный момент. Я также настоятельно рекомендую вам не удалять исходную папку CGIWrap до тех пор, пока всё не будет работать идеально, так как это настоящий процесс проб и ошибок, который занимает много времени. Тем не менее, всё это стоит вашего времени, так как ваш MediaWiki будет работать в своём собственном отдельном процессе, в своём собственном uid, без возможности вмешательства в любой другой uid. Верно и обратное, за исключением root, который может читать что угодно и где угодно.

mod_alias / mod_rewrite

Рекомендуемый метод улучшения URL-адресов включает использование mod_alias. Другие методы вместо этого используют mod_rewrite.

mod_security

Известно, что ModSecurity вызывает проблемы с MediaWiki. Если вы получаете ошибки, которые кажутся вам случайными, проверьте свой журнал ошибок, чтобы увидеть, не вызывает ли он проблем.

Визуальный редактор и подстраницы

Чтобы предотвратить ошибки связи с сервером Parsoid, необходимо добавить AllowEncodedSlashes NoDecode в блок конфигурации VirtualHost вики (или в общую конфигурацию сервера, если VirtualHosts не используются).[1]

Размер стека потока

The stack size for each Apache thread is configurable and the default varies on different operating systems. To run MediaWiki on Windows environments it may be necessary to increase the stack size (if there are problems), as the 1MB default is small and can cause stack overflows during PHP script execution. The following httpd.conf setting will set the stack size to about 8MB (about a typical Linux default):

<IfModule mpm_winnt_module>
ThreadStackSize 8388608
</IfModule>

Поисковые роботы и боты

Вы действительно должны использовать файл robots.txt , чтобы запретить поисковым роботам загружать динамически сгенерированные страницы (например, страницы редактирования). This can reduce the load on your webserver, preserve your bandwidth, and prevent duplicate content issues with search engines. However, malicious bots could tie up your webserver and waste your bandwidth by downloading a large volume of pages extremely quickly. Request throttling can help protect against this.

См. также

Примечания