Давно заморозив функцию PHP 5.5, я решил, что пришло время опубликовать обновление популярного вопроса PHP 5.4 и Drupal 7 .
Итак, может ли Drupal работать на PHP 5.5?
Давно заморозив функцию PHP 5.5, я решил, что пришло время опубликовать обновление популярного вопроса PHP 5.4 и Drupal 7 .
Итак, может ли Drupal работать на PHP 5.5?
Ответы:
Короче говоря, если ваш сайт работает на PHP 5.3, он также будет работать на 5.5, иди обновляйся! (Ваша среда разработки, пока не выйдет настоящий релиз)
С кратким ответом из пути, вот еще некоторые детали.
Что касается «Работает ли на нем Drupal», то мало что изменилось с PHP 5.3 до 5.4 с 5.5. Единственная проблема, которая появилась в PHP 5.4, заключалась в том, что PHP лучше сообщал разработчикам о том, что они делают что-то не так, а не в несовместимости, представленной PHP. Детали этого хорошо описаны в PHP 5.4 и Drupal 7 .
Подобных новых предупреждений в PHP 5.5 не появляется, и хотя некоторые вещи изменились , вряд ли они окажут негативное влияние на ваш сайт Drupal.
Одна из проблем производительности, которая была поднята при запуске 5.4, заключалась в том, что APC отстает в поддержке. Это не будет проблемой на этот раз, так как 5.5 теперь включает замену для APC Optimizer +
Drupal 6: к настоящему времени большинство вещей работает хорошо с PHP 5.3, то есть оно должно хорошо работать и на 5.5. Я еще не испытал это сам.
Drupal 7: работает без сбоев, я не сталкивался с какими-либо проблемами, в основном потому, что Drupal 7 разрабатывался в большей степени с учетом PHP 5.3, а любые проблемы, обнаруженные в 5.4, давно исправлены.
Drupal 8: требует 5.3 с самого начала, поэтому будет работать хорошо. Я обновлю ответ, когда я сам его проверил.
Обновления к ответу летариона:
Устанавливая свежую версию Drupal 7.26 в среде PHP 5.5, я дважды загружал экран «Настройка базы данных». На втором представлении формы я бы получил WSOD . Загрузка сайта с корневого пути дала 404.
Я разыскал этот патч (комментарий № 45), который решил проблему для меня. Как вы прочтете, это было связано с тем, как работает новая система кэширования PHP, и с кэшированием файла settings.php, в котором хранятся учетные данные базы данных.
Добавление следующих строк в основной файл htaccess может помочь.
php_value date.timezone America/New_York
php_value error_reporting E_ALL
php_value display_errors 1
php_value display_startup_errors 1
php_value memory_limit 256M
php_value error_reporting E_ALL
дало мне возможность пройти через WSOD, остальные просто помогли отладить.
Я попал в ловушку, пытаясь установить Drupal 7.26 на Ubuntu 13.10 (php 5.5).
Fatal error: Call to undefined function field_attach_load() in /var/www/d7/includes/entity.inc on line 316
Мне пришлось применить этот патч - https://drupal.org/comment/7721819#comment-7721819 .
Удалил существующую базу данных для этой установки.
Пересоздал базу данных и запустил install.php
.
Проблема для меня была исправлена этим патчем.
field_attach_load()
Казалось бы, функция Drupal, и аналогичные ошибки были опубликованы еще в 2009 году , связанные с Drupal 7.
Свежая установка drupal-7.26
Запустил PHP 5.5.9 - ошибка: "entity.inc on line 316"
В панели управления сервером я изменил свою папку Drupal, чтобы использовать «PHP 5.4.25». Затем нажмите назад в браузере, повторно введите данные установки и вуаля -> работает ...
Установленные темы, некоторые модули, созданные страницы; вернулся на PHP 5.5.9 -> все еще работает ...
Drupal 7: проверьте все проблемы с тегом php 5.4 или php 5.5, чтобы убедиться, что вы не используете ни один из модулей, которые все еще имеют проблемы с этими версиями: https://drupal.org/project/issues/search?text=&projects= & назначено = & submit = & project_issue_followers = &&&& issue_tags_op =% 3D & issue_tags = PHP% 205,4% 2C% 20PHP% 205,5 .
Если на вашем сайте установлен какой-либо из этих модулей, я думаю, что лучше придерживаться php 5.3 для Drupal 7.
Drupal 6 Добавьте также тег php 5.3, так как некоторые менее используемые или обслуживаемые модули все еще имеют проблемы с php 5.3.