PHP configuration/ru

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.

Установка
Пожалуйста, посмотрите http://php.net/install.

Необходимые
Следующие расширения необходимы для MediaWiki:
 * Функции для работы с регулярными выражениями (Perl-совместимые)
 * Сессии
 * Стандартная библиотека PHP (SPL)
 * Document Object Module
 * JSON (в качестве альтернативы, pecl-json-c форк)
 * Хотя бы один драйвер СУБД:
 * MySQL
 * PostgreSQL
 * SQLite (через PDO)
 * MySQLi, MySQL и PostgreSQL через PDO не поддерживаются

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

Дополнительные
Для работы MediaWiki необходимы дополнительные особенности PHP, которые должны быть включены во время компиляции:
 * mbstring — поддержка строк из многобайтовых символов (желательно; при недоступности будет использован более медленный собственный код)
 * iconv — библиотека конвертации штрифтов (желательно; при недоступности будут использованы другие функции конвертации)
 * zlib — библиотека сжатия, желательна для сжатия файлового кеша
 * sockets — поддержка сетевой коммуникации при использовании memcached
 * dba — слой абстракции базы данных в стиле DBM, для кэширования, с следующими обработчиками:
 * CDB для кэша интервик (и возможно других вещей)
 * Berkeley DB3, если вы хотите использовать CACHE_DBA в,  или
 * FastStringSearch

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

 './configure' \ '--with-mysql' \ '--with-apxs2=/usr/sbin/apxs2' \ '--with-zlib' \ '--with-ldap' \ '--with-gd' \ '--with-jpeg-dir' \ '--with-iconv-dir' \ '--enable-mbstring' In detail, these configure options do the following:


 * --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:Cache

Due to MediaWiki's large codebase, it is highly recommended that a system be used to cache the compiled scripts; there are a number of such plugins for PHP, some free, some proprietary. There is a list of some caches:
 * Alternative PHP Cache -- используется на Wikimedia
 * Windows Cache Extension for PHP -- рекомендуется для пользователей IIS сервера

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

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

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

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


 * register_globals
 * Включение этой настройки очень рискованно и может быть использован для XSS-атак; Для MediaWiki он необязателен, так что если можете, отключите настройку!


 * safe_mode
 * Safe mode является непродуманной, неоформленной настройкой в PHP; MediaWiki может работать с этой опцией, однако некоторые функции будут недоступны.


 * magic_quotes_gpc
 * Эта опция добавляет кавычки к данным в,   и $_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

Масштабирование изображений
ImageMagick can be used for image resizing When it is not available the GD PHP module is used instead where found.

См. также

 * PHP база знаний
 * PHP Учебники
 * Suhosin (Hardened-PHP Project patch and extension)
 * Simple PHP Tutorials