Версия 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
Полный список обновления синтаксиса на этой страничке хостера.
Запрет по 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 однозначно повысилась производительность и увеличилась скорость загрузки.