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.

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



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


 * Функции для работы с регулярными выражениями (Perl-совместимые)
 * Сессии
 * Стандартная библиотека PHP (SPL)
 * Document Object Module
 * iconv библиотека конвертации шрифтов
 * JSON (в качестве альтернативы, pecl-json-c форк)
 * mbstring поддержка строк из многобайтовых символов
 * fileinfo определение типа MIME
 * intl Unicode normalization
 * calendar Support for conversion between different calendars
 * Хотя бы один драйвер СУБД:
 * MySQL
 * PostgreSQL
 * SQLite (через PDO)

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

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

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


 * zlib — библиотека сжатия, желательна для сжатия файлового кеша
 * sockets — поддержка сетевой коммуникации при использовании memcached

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

 './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
 * ; --with-mysql : Позволяет PHP отправлять запросы в MySQL. Это существенная функция. Должен быть установлен MySQL, для включения этой опции.


 * --with-apxs2=/usr/sbin/apxs2
 * ; --with-apxs2=/usr/sbin/apxs2 : Обязательно, если вы хотите собрать mod_php. APXS предназначен для настройки компиляции модуля Apache. Вам необходимо будет изменить значение (или не указывать путь) для конкретной системы.


 * --with-zlib
 * ; --with-zlib : Позволяет PHP читать/записывать сжатые файлы и отправлять сжатые данные в Apache.


 * --with-ldap
 * ; --with-ldap : Важно, если вы хотите, чтобы пользователи проходили проверку через LDAP.


 * --with-gd
 * ; --with-gd : Используйте, если вы хотите обрабатывать изображения "внутри" PHP, иначе можете использовать ImageMagick....


 * --with-jpeg-dir
 * ; --with-jpeg-dir : Возможно, необязателен.


 * --with-iconv-dir
 * ; --with-iconv-dir : Возможно, необязателен.


 * --enable-mbstring
 * ; --enable-mbstring : Включает поддержку мультибайтовых символов. Не обязательно; при недоступности будет использован более медленный собственный код.



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

 * Смотрите

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


 * Alternative PHP Cache -- используется на Wikimedia
 * Windows Cache Extension for PHP -- рекомендуется для пользователей IIS сервера

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

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

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



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


 * magic_quotes_gpc
 * : Эта опция добавляет кавычки к данным в,   и  . 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 или GD PHP модуль могут использованы для создания предпросмотров изображений. See Manual:Image administration



Смотрите также

 * Suhosin (Hardened-PHP проект, усиляющий защиту php благодаря различным патчам и расширениям)