Настройка PHP

From mediawiki.org
This page is a translated version of the page PHP configuration and the translation is 84% complete.
Outdated translations are marked like this.

PHP is a web template system that accidentally grew up into a fairly general language. PHP's syntax, capabilities, and execution model bear vague similarities to Perl; scripts are loaded by an "interpreter", compiled to bytecode, and then executed. The PHP interpreter can be run from the command line, CGI-style, or more commonly as an in-process Apache module.

MediaWiki Совместимость

Список допустимых версий PHP, которые можно использовать с вашей версией MediaWiki, можно просмотреть на странице Совместимость с PHP.

Установка

Пожалуйста, посмотрите https://php.net/install.

Опции компиляции

Необходимые

Следующие расширения необходимы для MediaWiki:

  • [$iconv iconv] — библиотека конвертации штрифтов
  • [$mbstring mbstring] — поддержка строк из многобайтовых символов
  • [$fileinfo fileinfo] — определение типа MIME

MySQL и PostgreSQL через PDO не поддерживаются

Функции для работы с регулярными выражениями (Perl-совместимые), Сессии, Стандартная библиотека PHP (SPL) и JSON включены по умолчанию; Функции для работы с регулярными выражениями (Perl-совместимые) и Стандартная библиотека PHP (SPL) не могут быть отключены с PHP 5.3.

Дополнительные

Для работы MediaWiki необходимы дополнительные возможности PHP, которые должны быть включены во время компиляции:

Пример

Мы успешно работаем с этими опциями компилятора:

'./configure' \
  '--with-mysql' \
  '--with-apxs2=/usr/sbin/apxs2' \
  '--with-zlib' \
  '--with-ldap' \
  '--with-gd' \
  '--with-jpeg-dir' \
  '--with-iconv-dir' \
  '--enable-mbstring' 

Детально, эти опции configure делают следующее:

--with-mysql
Позволяет PHP отправлять запросы в MySQL. Это существенная функция. Должен быть установлен MySQL, для включения этой опции.
--with-apxs2=/usr/sbin/apxs2
Обязательно, если вы хотите собрать mod_php. APXS предназначен для настройки компиляции модуля Apache. Вам необходимо будет изменить значение (или не указывать путь) для конкретной системы.
--with-zlib
Позволяет PHP читать/записывать сжатые файлы и отправлять сжатые данные в Apache.
--with-ldap
Важно, если вы хотите, чтобы пользователи проходили проверку через LDAP.
--with-gd
Используйте, если вы хотите обрабатывать изображения "внутри" PHP, иначе можете использовать ImageMagick....
--with-jpeg-dir
Возможно, необязателен.
--with-iconv-dir
Возможно, необязателен.
--enable-mbstring
Включает поддержку мультибайтовых символов. Не обязательно; при недоступности будет использован более медленный собственный код.

Кэширование опкода

См. Manual:Performance tuning

Так как у MediaWiki большая кодовая база, рекомендуется использовать кэш для скомпилированных скриптов; есть несколько таких плагинов для PHP, некоторые свободные, некоторое проприентарные. Здесь список некоторых из них:

К счастью, их также легко устанавливать, как плагины Zend, просто закидываем их библиотеки и изменяем php.ini. Никакой траты времени на полную перекомпиляцию всего PHP!

В зависимости от кэша и параметров, вы можете выполнять специальные операции при обновлении файлов скрипта.

MediaWiki также может взаимодействовать с кэшами и использовать их для кэширования объектов, см. $wgMainCacheType .

Конфигурация среды выполнения (php.ini)

Некоторые настройки, определённые в php.ini влияют на поведение MediaWiki, но некоторые из них попросту не совместимы с MediaWiki.

magic_quotes_gpc
Эта опция добавляет кавычки к данным в $_GET, $_POST и $_COOKIES. MediaWiki может работать с этой опцией, однако работа будет замедленной, в связи с удалением кавычек самим MediaWiki.
magic_quotes_runtime
Эта опция непредсказуемо портит вводные данные, добавляя кавычки, например, в открытые файлы, в данные, полученные из базы данных и так далее. MediaWiki не сможет установиться, если эта опция будет включена.
magic_quotes_sybase
аналогично magic_quotes_runtime
mbstring.func_overload
Эта опция приводит к ошибкам и может привести к непредсказуемому повреждению данных; MediaWiki не сможет установиться, если эта опция будет включена.
zend.ze1_compatibility_mode
Эта опция приводит к ужасным ошибкам; MediaWiki не сможет установиться, если эта опция будет включена.
memory_limit
MediaWiki необходимо достаточно много памяти для работы. Как минимум необходимо около 20 МБ, однако если вы хотите чтобы MediaWiki работал корректно, рассмотрите возможность использования не менее 50 МБ.
disable_functions
To be able to find GNU diff3 and git during installation process this entry must not contain passthru
post_max_size
If you are getting the error "Некоторые части формы редактирования не достигли сервера. Внимательно проверьте, что ваши правки не повреждены, и попробуйте ещё раз." then it could be because this is set with a "MB" prefix, instead of just "M" (the former is interpreted at bytes, not megabytes).

Масштабирование изображений

ImageMagick or the GD PHP module can be used for image thumbnailing. See Manual:Image administration#Image thumbnailing

См. также