увеличение производительности на PHP 7.4

Версия PHP 7.4 появилась на хостинге Спай Веб пару месяцев назад, но руки поставить её не доходили, да и ожидалось, когда появится связка последней PHP и OPCache, которая мне приглянулась, подобно красной девице. Появилась, подключил и теперь можно посмотреть, чем PHP 7.4 хорош и откуда могут вырасти ноги с его подключением.

Бонусы от PHP 7.4

После установки версии PHP с приложением OPCache на Joomla 3.9.19 даже визуально стало видно ускорение загрузки, если же посмотреть на цифры со стороны математика, то ускорение составило +9% (сравнение с сравнение с 7.3). Официально заявлено, что последняя версия обрабатывает до +300% относительно той же PHP 7.3, что и выливается в более быструю загрузку веб-страниц.

В связке с OPCache хорошо показала себя предварительная загрузка скриптов в память сервера, откуда они вызываются при поступлении запросов. Это даёт хороший бонус производительности, что ниже покажу на графике. Также изменения в «Четвёрке» коснулись:

  • Типизированных свойств.
  • Стрелочных функций (+ синтаксис коротких замыканий).
  • Слабых ссылок (используется поддержка класса WeakReference).
  • Ковариантных возвратов и пр.

.htaccess для Apache 2.4

На Спай Вебе включается связка PHP 7.4 + OPCache + Apache 2.4, что требует изменения в файлах .htaccess. Некоторые директивы надо переписать с учётом требований обновлённого веб-сервера. Изменения надо вносить не везде, в зависимости от того, какие директивы были прописаны в htaccess до этого. Ниже несколько примеров обновлённого синтаксиса директив под последнюю версию веб-сервера.

Синтаксис директив под Apache 2.4

Так, если в Apache 2.2 для отклонения всех запросов используется директива:

Order deny,allow
Deny from all

То для Apache 2.4 она должна выглядеть так:

Require all denied

Для разрешения всех запросов надо заменить

Order allow,deny
Allow from all

На

Require all granted

Полный список обновления синтаксиса на этой страничке хостера.

синтаксис запрета доступа PHP 7.4

пример синтаксиса

Запрет по IP для админки Joomla

Для запрета на визит в админку с левых IP я использую в папке Администратор тоже файл htaccess. С учётом требований Apache 2.4 он сейчас выглядит так:

<RequireAll>

Require all granted

Require not ip 93.85.

Require not ip 66.249.

</RequireAll>

В целом связка PHP 7.4 + OPCache + Apache 2.4 пришлась ко двору, в Joomla однозначно повысилась производительность и увеличилась скорость загрузки.