HTTP2 включен, но сайт обслуживается HTTP1 - PullRequest
0 голосов
/ 27 сентября 2019

ОТВЕТ: Я работал на Apache 16.04 и не заметил необходимости обновления до 18.04.Для других людей, имеющих подобные проблемы, вот несколько проблем, с которыми я столкнулся:

  • Эта статья , которую кто-то упомянул в комментариях, была полезна.ХОТЯ, этот шаг не сработал: "sudo a2dismod php7.2".Ошибка была в том, что php7.2 не является модулем.Игнорирование этого шага не вызвало проблем.
  • Шаг обновления до 16.04 от 18.04 до 18.04 продолжался. Этот ответ о Linode помог.
  • Наконец, все мои Wordpress-сайты временно сломались, потому что новая установка не поставлялась с mysql по умолчанию.Использование apt-get install php7.2-mysql исправило это.

Надеюсь, это кому-то полезно, и вы испытываете меньше стресса, чем я!

ОРИГИНАЛЬНЫЙ ВОПРОС:

Я использовал

a2enmod http2

, чтобы включить http2 на моем сервере.

Однако мои сайты все еще загружаются на http1.1.Прочитав несколько ответов StackOverflow, я думаю, что я сузил это до mpm_prefork, несовместимого с http2.

Когда я отключаю mpm_prefork и включаю mpm_event, а затем пытаюсь перезапустить мой сервер, я получаю следующую проблему:

Job for apache2.service failed because the control process exited with error code. See "systemctl status apache2.service" and "journalctl -xe" for details.

Apache2cl configtest показал следующее и предложил перекомпилировать PHP:

Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.

После прочтения этого я отключил mpm_event и повторно включил mpm_prefork, что позволило мне перезапустить Apache, но основная проблема остается.

Как правильно настроить PHP, чтобы http2 работал должным образом?

...