Информация о системе:
Ubuntu 16.04
Apache 2.4.29
PHP 7.0.22 (CLI)
В Чтобы включить Apache 2, я выполнил следующие шаги в этом руководстве: https://http2.pro/doc/Apache .
Включая:
Добавлен Protocols h2 h2c http/1.1
в apache2.conf , а также в Virtual Hosts configuration
.
Успешно выполнено:
a2enmod mpm_event
a2enmod http2
Перезапущено:
service apache2 restart
sudo service php7.0-fpm reload
Тем не менее сервер отказывается говорить HTTP 2 . Пробовал различные уроки.
Я довольно новичок в Ubuntu: что я могу пропустить и какие шаги я могу предпринять для устранения этой проблемы?
Просмотр архива /var/log/apache2/error.log
содержит что-то вроде этого:
[http2: warn] [pid 3220] AH10034: модуль mpm modum ( prefork.c) не поддерживается mod_http2. MPM определяет, как все обрабатывается на вашем сервере. HTTP / 2 предъявляет к этому больше требований, и текущий выбранный mpm просто не подходит. Это консультативное предупреждение. Ваш сервер продолжит работать, но протокол HTTP / 2 будет неактивным.
Предварительные требования
Выполнить команду терминала для получения собственных переменных:
lsb_release -a
apache2 -v
php -v
Этот вопрос для:
Ubuntu 16.04
Apache 2.4.29
PHP 7.0.22 (CLI)
Этот ответ точно для:
Ubuntu 16.04.3 LTS
Apache/2.4.29 (Ubuntu)
PHP 7.1.12-3+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Dec 14 2017 15:37:13)
PHP 7.1.12 был собран в соответствии с шагами, указанными в (см. Вопрос): Как включить поддержку HTTP / 2 в Apache , последнее обновление 5 ноября 2017.
Делайте это на свой страх и риск; не используйте этот ответ на любом производственном сервере. Пожалуйста! prefork
Мы должны изменить режим prefork на событие режима или рабочий, но ВНИМАНИЕ вам нужно будет использовать PHP в качестве FastCGI .
Шаг за шагом
Шаг первый
Сначала добавьте репозиторий Ondřej Surý (обратите внимание на символы UTF8) в вашу Ubuntu, эти инструкции взяты из этого Руководство DigitalOcean . Вам потребуются права root, здесь мы будем использовать команду sudo :
sudo add-apt-repository ppa:ondrej/php sudo apt-get install -y language-pack-en-base sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php sudo apt-get update
Шаг второй
sudo apt-get install php7.1
Да, верно, нет ребячество. После этого следующий шаг.
Шаг третий
sudo apachectl stop sudo apt-get install php7.1-fpm sudo a2enmod proxy_fcgi setenvif sudo a2enconf php7.1-fpm sudo a2dismod php7.1 sudo a2dismod mpm_prefork sudo a2enmod mpm_event sudo apachectl start
Устранение неполадок
Если у вас возникли проблемы с
sudo a2dismod php7.1
, просто попробуйте это:
sudo a2dismod php7.0
(у нас тоже была эта проблема: sudo a2dismod php7.1 )
Возможное улучшение
Если вы хотите использовать последний пакет:
sudo apt-get install php7.2-fpm
( Мы установили его, см. Рисунок )
Проверка хорошо выполненной работы
См. следующее изображение для нашего результата и посетите https://http2.pro для собственного теста (сначала установите ufw!)
Заключение
Скоро появится новая технология! Смотрите другие будущие протоколы здесь !
Спасибо за посещение AskUbuntu!