web-dev-qa-db-ja.com

Apache 2を使用するUbuntu 16.04でHTTP 2が機能しない:これをデバッグするにはどうすればよいですか?

システムインフォメーション:

Ubuntu 16.04

Apache 2.4.29

PHP 7.0.22(CLI)

Apache 2を有効にするために、このチュートリアルの次の手順に従いました: https://http2.pro/doc/Apache

含む:

Apache2.confProtocols h2 h2c http/1.1Virtual Hosts configurationを追加しました。

成功しました:

a2enmod mpm_event
a2enmod http2 

再起動:

service Apache2 restart
Sudo service php7.0-fpm reload

それでもサーバーは会話を拒否しますHTTP 2。さまざまなチュートリアルを試しました。

私はUbuntuを初めて使用します。この問題をデバッグするには、何が欠けている可能性がありますか?

2
Blackbam

問題

/var/log/Apache2/error.logアーカイブの閲覧には、次のようなものが含まれています。

[http2:warn] [pid 3220] AH10034:mpm modumモジュール(prefork.c)はmod_http2ではサポートされていません。 mpmは、サーバーでの処理方法を決定します。この点に関して、HTTP/2にはさらに多くの要求があり、現在選択されているmpmには要求がありません。これは勧告的な警告です。サーバーは引き続き動作しますが、HTTP/2プロトコルは非アクティブになります。

前提条件

ターミナルコマンドで実行して独自の変数を取得します。

  • Ubuntuバージョン:lsb_release -a
  • Apacheバージョン:Apache2 -v
  • PHPバージョン: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は(質問を参照)で指定された手順に従って構築されました: ApacheでHTTP/2サポートを有効にする方法 、最終更新日2017年11月5日.


免責事項

ご自身の責任で行ってください。本番サーバーではこのanwserを使用しないでください。どういたしまして ;-) 。


回答

引用、以前と同じ名前のチュートリアル:

Apache 2.4.27、HTTP/2はpreforkでサポートされていません

モードプリフォークをモードイベントまたはワーカーに変更する必要がありますが、警告として PHP as FastCGI を使用する必要があります。

ステップバイステップ

ステップ1

最初にOndřejSurýのリポジトリ(UTF8文字に注意してください)をUbuntuに追加します。この手順は DigitalOceanのチュートリアル から取得します。ルート権限が必要になります。ここでは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

ステップ2

Sudo apt-get install php7.1

うん、そうだね。その後、次のステップ。

ステップ3

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を設定してください!)

HTTP2.Proチェック

結論

非常に新しい技術が登場します!他の 将来のプロトコルはこちら

AskUbuntuをご覧いただきありがとうございます!


3
Jimmy Olano