Содержание

Конфигурация PHP для DokuWiki

DokuWiki будет работать «из коробки» практически при любой установке PHP, а установщик проверит доступность минимально необходимого набора функций PHP.

На этой странице даны советы по настройке параметров PHP для влияния на функциональность, производительность, безопасность и переносимость DokuWiki.

Более подробную информацию можно найти в онлайн- PHP manual.

PHP-расширения

Ниже вы можете найти, какие расширения должны быть включены для вашей настройки PHP. В некоторых системах эти расширения могут быть установлены отдельно, другие системы могут объединить их в один установочный пакет и их нужно будет включить только в php.ini

необходимый

Эти расширения обычно включены по умолчанию.

рекомендуется

особые случаи использования

Следующие расширения часто используются плагинами и могут оказаться полезными.

php.ini

Основным средством настройки PHP является файл конфигурации (php.ini).

Для версий PHP с серверным модулем этот файл загружается только один раз при запуске веб-сервера. Для версий CGI и CLI это происходит при каждом вызове.

Этот файл содержит список директив, которые управляют тем, как функционирует PHP. Вы можете посмотреть страницу директив php.ini в Интернете для подробного описания этих директив.

Хотя в большинстве случаев DokuWiki будет работать «из коробки» с типичными настройками PHP дистрибутива, ряд параметров конфигурации имеет для DokuWiki особое значение.

С другой стороны, всегда предупреждайте, что то, что может быть хорошим или даже рекомендуемым значением для DokuWiki, может в некоторых случаях нарушить работу других приложений PHP, которые вы также размещаете. Это особенно верно при включении директив, которые повышают безопасность PHP, при наличии других приложений PHP, которые полагаются на небезопасные функции PHP, такие как register_globals и т. д.

short_open_tag

Разрешить <? тег. В противном случае распознаются только теги <?php и .<script>

DokuWiki будет работать с short_open_tag отключенной функцией.

Однако следует отметить, что некоторые templates or plugins могут полагаться на установку этой функции в значение On.

open_basedir

Это ограничивает доступ вашего процесса PHP к настроенным путям. Это подразумевает дополнительную функцию безопасности, но на нее не следует полагаться. Это отключит кэширование readdir и может значительно замедлить обработку PHP. Подробности см. в разделе производительность.

output_buffering

Буферизация вывода позволяет отправлять строки заголовков (включая файлы cookie) даже после отправки основного содержимого. DokuWiki будет работать с любой настройкой.

output_handler

Redirect all the output of all scripts to a function. Setting output_handler automatically turns on output_buffering.

Перенаправить весь вывод всех скриптов в функцию. Настройка output_handlerавтоматически включается output_buffering.

Этот параметр можно использовать для автоматического сжатия всего контента перед отправкой его в браузер клиента. Это может создать проблемы с изображениями и загрузками. Вместо этого включите функцию DokuWiki gzip_output.

zlib.output_compression

Обеспечивает прозрачное сжатие выходных данных с помощью библиотеки zlib. В целом настройка zlib.output_compression = On работает довольно хорошо с DokuWiki.

Однако DokuWiki поддерживает сжатие выходных данных с помощью опции gzip_output.

implicit_flush

Сообщает PHP, что нужно указать выходному слою автоматически очищать себя после каждого выходного блока. Включение этой опции имеет серьезные последствия для производительности и обычно рекомендуется только для целей отладки. DokuWiki заботится об очистке буфера при необходимости.

allow_call_time_pass_reference

Предупреждать ли, когда аргументы передаются по ссылке во время вызова функции, так как этот метод устарел. Аргументы, которые должны передаваться по ссылке, следует указывать в объявлении функции, а не во время вызова функции.

max_execution_time

Максимальное время выполнения каждого скрипта в секундах.

max_input_time

Максимальное количество времени, которое каждый скрипт может потратить на анализ данных запроса.

max_input_vars

При определенных условиях (например, при работе с большими таблицами с помощью плагина editable) быстро достигается значение по умолчанию 1000.

memory_limit

Максимальный объем памяти, который может потреблять скрипт.

error_reporting

О каких ошибках сообщать.

display_errors

Распечатайте ошибки (как часть вывода). Для рабочих веб-сайтов настоятельно рекомендуется отключить эту функцию и вместо этого использовать регистрацию ошибок.

display_startup_errors

Выводит ошибки, возникающие во время последовательности запуска PHP ( display_errors не имеет никакого контроля над ними). ​​Настоятельно рекомендуется отключать display_startup_errors, за исключением случаев отладки.

log_errors

Записывать ошибки в файл журнала. Также настроить error_log соответствующим образом.

variables_order

Порядок, в котором PHP регистрирует переменные GET, POST, Cookie, Environment и встроенные переменные (G, P, C, E и S соответственно).

register_argc_argv

Следует ли объявлять переменные argv & argc (которые будут содержать информацию GET).

file_uploads

Разрешать ли загрузку файлов по протоколу HTTP.

upload_max_filesize

Максимально допустимый размер загружаемых файлов. Он должен соответствовать тому, что вы ожидаете от максимального размера загружаемых медиафайлов.

session.use_cookies

Использовать ли файлы cookie.

session.cache_limiter

Определяет, какие заголовки HTTP управления кэшем отправляются клиенту. Эти заголовки определяют правила, по которым содержимое страницы может кэшироваться клиентом и промежуточными прокси-серверами. Допустимые значения: none, nocache (по умолчанию) private, private_no_expire или public. Установка ограничителя кэша на nocache запрещает любое кэширование клиента/прокси. Значение public разрешает кэширование прокси-серверами и клиентом, тогда как private запрещает кэширование прокси-серверами и разрешает клиенту кэшировать содержимое. В приватном режиме заголовок Expire, отправляемый клиенту, может вызвать путаницу в некоторых браузерах, включая Mozilla. Вы можете избежать этой проблемы, используя private_no_expire режим. Заголовок expire никогда не отправляется клиенту в этом режиме.

В случае проблем с кэшированием (т. е. вы редактируете страницу, но изменения не отображаются при просмотре этой страницы) вы можете попробовать установить: session.cache_limiter = nocache

extension

Динамические расширения. Рекомендации см. PHP extensions в разделе PHP-расширения выше.