http2
で実行しているApache/2.4.29
でUbuntu 16.04
モジュールを有効にしようとしましたが、機能しないようです。
私はこれが好きでした:
Sudo a2enmod http2
次に、以下を追加して個別にアクティブにします。
Protocols h2 http/1.1
私はmpm_prefork
モジュールも実行しています。それがhttp2
に問題を引き起こす可能性があります。そうであれば、代わりにmpm_prefork
を実行する代わりの方法は何ですか?
共有サーバーを実行しているもう1つのことは、PHP=の実行のみを許可することです。私はsuPHPをチェックしていましたが、Webサイトで次のように述べています。
suPHPはもはやメンテナンスされておらず、セキュリティパッチでさえ、それ以上のアップデートを受信しません。
ここ はあなたを助けるかもしれない簡単な回避策です。
また、mpm_prefork
およびトラブルシューティングセクションの回避策 ここ
Apache 2.4.27以降、Apache MPM(Multi-Processing Module)プリフォークはHTTP/2をサポートしなくなりました。これは、Apacheエラーログで次のように示されます。AH10034:mpmモジュール(prefork.c)はmod_http2ではサポートされていません。 mpmは、サーバーでの処理方法を決定します。 HTTP/2にはこの点でより多くの要求があり、現在選択されているmpmはそうしません。これは勧告的な警告です。サーバーは引き続き機能しますが、HTTP/2プロトコルは非アクティブになります。
私は解決しました、私のケースはPHP、Pythonで、Django直接/プロキシ使用のApache2で、http2を使用できません。次に問題を見つけて以下のように解決します
apachectl stop
apt-get install php7.0-fpm # Install the php-fpm from your PHP repository. This package name depends on the vendor.
a2enmod proxy_fcgi setenvif
a2enconf php7.0-fpm # Again, this depends on your PHP vendor.
a2dismod php7.0 # This disables mod_php.
a2dismod mpm_prefork # This disables the prefork MPM. Only one MPM can run at a time.
a2enmod mpm_event # Enable event MPM. You could also enable mpm_worker.
apachectl start
あなたのローカルによれば、あなたはsetusに正しいphpバージョン、私の場合はphp7.0が必要です。 PHPがない場合は、phpに関連する手順を実行しないでください。
注:mpm_preforkは、http2およびパフォーマンスでもうまく機能しません。私の個人的な提案、mpm_eventまたはworkerを使用
上記の手順を設定したところ、すぐにH2プロトコルを取得しました。あなたの提案はコメントで大歓迎です