Требования к PHP
Некоторые отдельные модули могут предъявлять особые требования к расширениям и конфигурациям PHP, помимо перечисленных ниже, поэтому, пожалуйста, ознакомьтесь с документацией к модулю.
Поддерживаются версии PHP
Версия PHP | Поддерживается Drupal | Рекомендовано для Drupal |
---|---|---|
5.5 | Нет (заметка 2 ниже) | Нет |
5.6 | Нет (заметка 2 ниже) | Нет |
7.0 | Да, 7.0.8 с Drupal 8.7.0 (заметка 2 ниже) | Нет |
7.1 | Да | Нет |
7.2 | Да, с Drupal 8.5.0 | Yes |
7.3 | Да, с Drupal 8.6.4 (заметка 1 ниже) | Yes |
7.4 | Да, с Drupal 8.8.3 | Yes |
8.0 | Нет; смотрите таск 3109885 |
1) Прочитайте заметку об изменении для получения дополнительной информации о поддержке PHP 7.3.
2) Прочитайте заметку об изменении для получения дополнительной информации о прекращении поддержки PHP 5.
Что означает «рекомендованная» версия PHP?
Drupal будет работать на всех поддерживаемых версиях PHP. Рекомендуемые версии PHP - лучший выбор для создания сайта на Drupal, потому что они будут поддерживаться дольше. PHP 7 также имеет значительные улучшения скорости и кэширования.
PHP 5.5, 5.6 и 7.0 достигли официального окончания срока службы в конце 2018 года, а PHP 7.1 - конца срока службы 1 декабря 2019 года. (См. PHP: поддерживаемые версии для получения дополнительной информации.) Drupal 8 прекратил поддержку PHP 5.5 и 5.6 в мае 2019 года и новые версии требуют 7.0.8 или более поздней версии. Мы рекомендуем обновить как минимум до PHP 7.2. (Ubuntu 18.04 поставляется с PHP 7.2, а в Debian stable - 7.3.)
Примечание: это не влияет на Drupal 7, который остается совместимым с PHP 5.2.4 и выше. Отдельное объявление будет опубликовано, если и когда это изменится - см. Требования Drupal 7 PHP.
Необходимые расширения PHP
Расширения, используемые ядром Drupal, определены в файле composer.json Core - см., Например, файл для Drupal 8.7.x. Посмотрите на раздел «require» и клавиши, начинающиеся с «ext-».
Примечание. Добавление расширения PHP в вашу систему, по крайней мере, в Linux (и Mac), означает поиск и установку соответствующего пакета PHP с помощью диспетчера пакетов. Обычно имя пакета для расширения Foo называется «php-foo» или «php7-foo», но это не всегда так. Некоторые расширения являются частью основного пакета PHP и, следовательно, включены по умолчанию.
Расширения базы данных
Расширение PHP Data Objects (PDO) должно быть активировано для правильной установки и работы Drupal 8. Версия PDO для PECL не совместима с Drupal 8 и не может быть использована. Кроме того, расширение PHP для подключения к выбранной вами базе данных должно быть установлено и включено.
В настоящее время поддерживаются соединители баз данных Drupal: mysql (исходное расширение MySQL), mysqli (улучшенный соединитель для более новых установок MySQL) и pgsql (для PostgreSQL). Примечание: PHP 5.x больше не включает расширение mysql по умолчанию. Пожалуйста, прочитайте ссылки выше для установки и включения выбранного разъема. Как правило, если вы устанавливаете PDO с поддержкой MySQL, правильный разъем уже выбран для вас.
Расширение XML
Расширение PHP XML (для блогов API, модулей Drupal и Ping). Это расширение включено по умолчанию в стандартной установке PHP; версия PHP для Windows имеет встроенную поддержку этого расширения. Включение расширения XML также включает PHP DOM. DOM теперь системное требование.
Библиотека обработки изображений
Библиотека изображений для PHP, такая как библиотека GD, является обязательным расширением в Drupal 8 и необходима для манипулирования изображениями (изменение размеров пользовательских изображений, модулей изображений и кеша изображений). ImageMagick также поддерживается для базовых манипуляций с изображениями в ядре Drupal, но гораздо меньше поддержки от добавленных модулей.
OpenSSL
Расширение PHP OpenSSL рекомендуется, чтобы позволить Drupal делать исходящие запросы, используя HTTPS. Некоторые платформы предоставляют отдельный пакет OpenSSL, например, php7-OpenSSL.
Также ведется работа по проверке модуля Update Manager модуля Drupal на наличие обновлений с использованием HTTPS, что сделало бы эту рекомендацию еще более строгой или, возможно, требовательной. См. таск #1538118: Состояние обновления не проверяет подлинность или подлинность URL-адреса истории выпуска (#1538118: Update status does not verify the identity or authenticity of the release history URL) и https://groups.drupal.org/node/506128.
JSON
Drupal 8 требует PHP, скомпилированный с JSON. Поддержка JSON обычно компилируется как часть ядра PHP, но в случае, если вы получаете ошибки, такие как
PHP Fatal error: Call to undefined function Drupal\\Component\\Serialization\\json_encode() in ... core/lib/Drupal/Component/Serialization/Json.php
попробуйте добавить расширение JSON.
cURL
Расширение PHP cURL требуется для модуля SimpleTest в Drupal 8, а также для Aggregator и некоторых дополнительных модулей. Во многих дистрибутивах Linux и стеках разработки это будет включено по умолчанию, но если ваша система не включит его в php.ini (обычно в Windows) или не установит его с помощью менеджера пакетов (обычно в Linux).
Mbstring
Расширение PHP mbstring предоставляет специальные многобайтовые строковые функции, используемые для установки Drupal на других языках, кроме английского, а также многоязычных сайтов в Drupal. Он помогает работать с многобайтовыми кодировками в PHP, а также обрабатывает кодировки на основе Unicode, такие как UTF-8 или UCS-2.
Настройки конфигурации PHP
Требования к памяти
Требования к памяти PHP могут значительно различаться в зависимости от модулей, используемых на вашем сайте. Минимальный необходимый объем памяти составляет 64 МБ.
Предупреждающие сообщения будут отображаться, если конфигурация PHP не соответствует этим требованиям. Однако, хотя эти значения могут быть достаточными для установки Drupal по умолчанию, производственному сайту с несколькими включенными обычно используемыми модулями может потребоваться больше памяти. Обычно 128 МБ или 256 МБ находятся в производственных системах. Для некоторых установок может потребоваться гораздо больше, особенно в случае мультимедийных реализаций. Если вы используете службу хостинга, важно убедиться, что ваш хост может предоставить достаточно памяти для набора модулей, которые вы развертываете, или может развернуть его в будущем. (См. Страницу увеличения предела памяти PHP в разделе часто задаваемых вопросов по устранению неполадок для получения дополнительной информации об изменении предела памяти PHP.)
Настройки .htaccess
Некоторые параметры памяти содержатся в файле .htaccess по умолчанию, который поставляется вместе с Drupal, поэтому вам не нужно устанавливать их явно. Однако обратите внимание, что установка параметров конфигурации PHP из .htaccess работает только при следующих условиях:
С Apache (или совместимым веб-сервером)
Если файл .htaccess действительно читается, то есть AllowOverride All в основной конфигурации Apache (обычно httpd.conf) включен
Если PHP установлен как модуль Apache
В некоторых средах общего доступа доступ к этим настройкам ограничен. Если вы не можете внести эти изменения самостоятельно, попросите вашего хостинг-провайдера настроить их для вас.
Другие интерфейсы
См. Руководство по PHP, чтобы узнать, как изменить настройки конфигурации для других интерфейсов на PHP.
Xdebug
Если вы используете Xdebug:
Настройка: xdebug.show_exception_trace = 0
Причина: может привести к сбою установщика Drupal.
Использование Xdebug с Drupal 8:
Настройка: xdebug.collect_params = ?
Причина: слишком высокое значение xdebug.collect_params не позволит установить и работать Drupal 8.
Настройка: xdebug.max_nesting_level = 256
Причина: использование значения по умолчанию max_nesting_level, равного 100 (в версиях xdebug <2.3), приводит к сбою некоторых страниц.
PHP из разных источников
Drupal предназначен для работы с PHP и распространяется на PHP.net. Прилагаются все усилия, чтобы заставить его работать с версиями PHP из других источников, но это делается только на основе максимальных усилий. В частности, известно, что Suhosin нарушает определенные функции; и некоторые операционные системы перемещают основные компоненты в другие пакеты.
Детали требований PHP
Смотрите страницу phpinfo () на Drupal.org, чтобы узнать, как использовать Phpinfo для получения подробной информации о вашей системе. Например, Phpinfo сообщит вам, если у вас уже установлена база данных и какие версии PHP, MySQL и т. Д. Работает в вашей системе. Phpinfo также расскажет вам, какие переменные PHP установлены, и много других полезных вещей.
Часто возможно обновить до более новой версии PHP, которая поставляется с вашим дистрибутивом Linux. Пожалуйста, прочитайте документацию по вашему дистрибутиву Linux.
Некоторые заметные моменты
Помните об ограничениях 32-битного PHP.
Зависимости Drupal на основе Composer упакованы с использованием PHP 5.5.9. Если вы используете более высокую версию PHP, вы можете воспользоваться командой обновления композитора, чтобы получить более подходящие версии зависимостей на основе Composer.
Менеджер обновлений Drupal 8 может устанавливать / обновлять модули и темы через SSH, если на сервере установлены необходимые библиотеки. (В Debian пакет называется «libssh2-php».)
Если используется кэш кода операции APC с Drupal 8, требуется APC 3.1.13 или выше.
Если встроенный opcache включен, настройки opcache.save_comments должны быть включены (значение 1, по умолчанию), в противном случае аннотации не будут сохраняться / загружаться.
Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.