PHP configuration/ru

PHP - это система веб-шаблонов, которая случайно выросла в довольно общий язык. Синтаксис, возможности и модель выполнения PHP имеют смутное сходство с Perl; скрипты загружаются "интерпретатором", компилируются в Байт-код, а затем выполняются. Интерпретатор PHP может быть запущен из командной строки, в стиле CGI или, чаще всего, как встроенный в процесс Apache модуль.



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

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



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


 * Функции для работы с регулярными выражениями (Perl-совместимые)
 * Сессии
 * Стандартная библиотека PHP (SPL)
 * Document Object Module
 * iconv библиотека конвертации шрифтов
 * JSON (в качестве альтернативы, pecl-json-c форк)
 * mbstring поддержка строк из многобайтовых символов
 * fileinfo определение типа MIME
 * intl нормализация Юникода
 * calendar Поддержка конвертации между различными календарями
 * Хотя бы один драйвер СУБД:
 * 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
 * Позволяет PHP делать запросы к MySQL. Это очень важная функция (я думаю). Вам потребуется установить MySQL, чтобы включить эту опцию.


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


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


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


 * --with-gd
 * Используйте его, если вам нужна обработка изображений "внутри" PHP, в противном случае вы можете использовать ImageMagick. Поскольку этот вариант требует, чтобы у вас были установлены различные библиотеки... но, предположительно, IM имеет те же самые библиотеки... ну что ж...


 * --with-jpeg-dir
 * Кажется бессмысленным


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


 * --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
 * Чтобы иметь возможность найти GNU diff3 и git в процессе установки, эта запись не должна содержать passthru.


 * post_max_size
 * Если вы получаете ошибку "", это может быть связано с тем, что для этого параметра используется префикс "MB", а не просто "M" (первый интерпретируется как байт, а не мегабайт).



Масштабирование изображений
ImageMagick или GD PHP модуль могут использованы для создания предпросмотров изображений. See Manual:Image administration



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

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