Могу ли я использовать PHP 5.5?

18

Давно заморозив функцию PHP 5.5, я решил, что пришло время опубликовать обновление популярного вопроса PHP 5.4 и Drupal 7 .

Итак, может ли Drupal работать на PHP 5.5?

Letharion
источник

Ответы:

21

Короче говоря, если ваш сайт работает на 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 с самого начала, поэтому будет работать хорошо. Я обновлю ответ, когда я сам его проверил.

оборота Летарион
источник
1
Мой личный сайт некоторое время работал на PHP 5.5 без проблем (хотя, разумеется, это довольно простой сайт). Самая известная проблема, связанная с ядром, о которой я знаю, заключается в том, что установка может завершиться неудачей, если включен OPcache (встроенный кэш кода операции в стиле APC) , поэтому, если вы хотите использовать OPcache, вам может потребоваться отключить его во время установки. , а затем снова включите его.
Гаррет Олбрайт
@GarrettAlbright Я занимаюсь обновлением нашего сайта D6 до PHP 5.5. В настоящее время ни одно из полей даты в формах администратора не показывает значения даты по умолчанию. Вы видели какие-либо из вопросов, как это?
Патрик
Патрик, я не могу помочь вам с Drupal 6, кроме как рекомендовать вам обновить, если это вообще возможно. Эта кодовая база становится все более древней.
Гаррет Олбрайт
@Letharion: время обновить ответ после тестирования D8 с PHP5.5?
Hugo
1
@ Хьюго Хммм, определенно. Я забыл этот конкретный вопрос, и хотя у меня был сайт D8, я об этом не помнил. В качестве краткого примечания, я попробовал несколько бета-версий на моей машине с 5.5, и все это работало просто отлично. Спасибо за напоминание, хотя я постараюсь вспомнить его в следующий раз, когда я возлюсь с D8.
Летарион
3

Обновления к ответу летариона:

  • Drupal 8 теперь требует PHP 5.4.2 (возможно, даже выше к моменту его выпуска), а 5.5 поддерживается, хотя и не требуется
  • Поддержка Drupal 6 для 5.3 уже хороша, хотя проблемы все еще остаются, считаются ошибками, потому что миграция D8 из D6 будет опираться на PHP 5.3, поддерживаемый D6.
FGM
источник
1

Устанавливая свежую версию Drupal 7.26 в среде PHP 5.5, я дважды загружал экран «Настройка базы данных». На втором представлении формы я бы получил WSOD . Загрузка сайта с корневого пути дала 404.

Я разыскал этот патч (комментарий № 45), который решил проблему для меня. Как вы прочтете, это было связано с тем, как работает новая система кэширования PHP, и с кэшированием файла settings.php, в котором хранятся учетные данные базы данных.

alexkb
источник
1

Добавление следующих строк в основной файл 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
ummdorian
источник
Добавление php_value error_reporting E_ALLдало мне возможность пройти через WSOD, остальные просто помогли отладить.
восточный волк
0

Я попал в ловушку, пытаясь установить 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.

Проблема для меня была исправлена ​​этим патчем.

dustinsilva
источник
Я не думаю, что это обязательно относится к версии PHP. field_attach_load()Казалось бы, функция Drupal, и аналогичные ошибки были опубликованы еще в 2009 году , связанные с Drupal 7.
MrWhite
0

Свежая установка drupal-7.26

Запустил PHP 5.5.9 - ошибка: "entity.inc on line 316"

В панели управления сервером я изменил свою папку Drupal, чтобы использовать «PHP 5.4.25». Затем нажмите назад в браузере, повторно введите данные установки и вуаля -> работает ...

Установленные темы, некоторые модули, созданные страницы; вернулся на PHP 5.5.9 -> все еще работает ...

user27735
источник
0

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.

Ханс Россель
источник