Настройка PHP
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 через PDO не поддерживаются
Функции для работы с регулярными выражениями (Perl-совместимые), Сессии, Стандартная библиотека PHP (SPL) и JSON включены по умолчанию; Функции для работы с регулярными выражениями (Perl-совместимые) и Стандартная библиотека PHP (SPL) не могут быть отключены с PHP 5.3.
Дополнительные
Для работы MediaWiki необходимы дополнительные возможности PHP, которые должны быть включены во время компиляции:
- zlib — библиотека сжатия, желательна для сжатия файлового кеша
- sockets — поддержка сетевой коммуникации при использовании memcached
- exif functions to display EXIF data from uploaded images (
$wgShowEXIF
).
Пример
Мы успешно работаем с этими опциями компилятора:
'./configure' \ '--with-mysqli=mysqlnd' \ '--with-pdo-mysql=mysqlnd' \ '--with-apxs2=/usr/sbin/apxs2' \ '--with-zlib' \ '--with-ldap' \ '--with-gd' \ '--with-jpeg-dir' \ '--with-iconv-dir' \ '--enable-mbstring'
Детально, эти опции configure делают следующее:
- --with-mysqli=mysqlnd
- Include MySQLi (MySQL improved) support. The MySQL native driver will be used when value is
mysqlnd
. - --with-pdo-mysql=mysqlnd
- PDO: MySQL support. The native driver will be used when value is
mysqlnd
. - --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, некоторые свободные, некоторое проприентарные. Здесь список некоторых из них: PHP usually comes with this extension pre-installed and enabled.
Конфигурация среды выполнения (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
- Чтобы иметь возможность найти GNU diff3 и git в процессе установки, эта запись не должна содержать passthru.
- post_max_size
- Если вы получаете ошибку "Некоторые части формы редактирования не достигли сервера. Внимательно проверьте, что ваши правки не повреждены, и попробуйте ещё раз.", это может быть связано с тем, что для этого параметра используется префикс "MB", а не просто "M" (первый интерпретируется как байт, а не мегабайт).
Масштабирование изображений
ImageMagick или GD PHP модуль могут использованы для создания предпросмотров изображений. See Manual:Image administration#Image thumbnailing