CentOS 7にApacheをインストールする方法
CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。
HTTP / 2は、SPDYに基づくHTTPプロトコルの最新バージョンです。その開発はGoogleによって開始され、HTTP / 2は主にコードベースとSPDYの概念に基づいています。
SPDYは非推奨となり、HTTP / 2の世界的な採用が進んでいます。多くのホスティング企業は、追加された速度のためにHTTP / 2のサポートをすでに提供しています。
執筆時点では、DirectAdminはHTTP / 2を有効にするワンクリックの方法を提供していません。ただし、HTTP / 2サポートを実現するには複数の方法があります。以下に概説する方法は、最も堅牢で安定したアプローチであることが証明されています。
HTTP / 2を有効にするには、いくつかのコンポーネントを更新する必要があります。このため、スナップショットを取ることを強くお勧めします。可能であれば、完全に新しいサーバーでこのガイドに従ってください。
このガイドは、クライアント(訪問者)のWebサーバー(Apache)でのHTTP / 2サポートの有効化と、cURLでのHTTP / 2のアクティブ化の2つの部分で構成されています。cURLに対してHTTP v2を有効にすると、サーバーから発信されたcURL要求は、可能であれば、宛先サーバーにHTTP / 2を利用するようになります。
これはHTTP / 2自体の技術要件ではありませんが、ほとんどの場合、HTTP / 2を使用するにはSSL証明書が必要です。前述のように、HTTP / 2は技術的にこれを必要としませんが、多くのブラウザー(Safari、Chrome、Firefoxなど)がこの標準を作成しています。これらのブラウザーを使用してSSLなしでページをロードすると、コンテンツはHTTP / 2経由で提供されません。ほとんどのユーザーがこの標準に参加しているこれらのブラウザー(およびその他のブラウザー)を使用することを考慮して、SSL証明書を使用する必要があります。
無料のSSL証明書をお探しの場合は、Let's Encryptガイドの1つをご覧ください。
推奨:DirectAdminにLet's Encryptをインストールする
代替制御パネル:
一般的なガイド:
このガイドでは、Brotliのインストールについて説明していますか?
いいえ、この記事では、HTTP / 2と一緒にBrotliをインストールする方法を概説していません。
コンパイルは理由もなく失敗し、私はこの記事で概説されている正確な手順に従いました。どうすれば解決できますか?
これには多くの理由が考えられますが、さまざまな環境などを考慮すると、ロケール設定が正しくない可能性があります。LC_ALL=C
コマンドの前に置くと、Apacheを再コンパイルするためのコマンドは、たとえば次のようになります。とコマンドのLC_ALL=C ./build apache
間のスペースを忘れないでくださいLC_ALL=C
。
データは失われますか?
ApacheやNginxなどで現在リバースプロキシセットアップを使用している場合は、Apacheに戻す必要があります。この場合、Nginx構成ファイルは実際に失われます。カスタムのVirtualHost構成を作成した場合(コマンドラインまたはDirectAdmin自体を使用)、Apacheバージョンがアクティブなままになるように、ドメインごとにこれらを変更する必要があります。ユーザーデータ、ウェブサイトのコンテンツ、データベースなどに関するデータを失うことはありません。
これらのカスタムバージョンにより、将来パッケージやソフトウェアを更新できなくなりますか?
通常、このことを心配する必要はありません。DirectAdminのモジュラーセットアップ(したがってCustomBuildのセットアップ)を考慮すると、問題なく他のソフトウェアバージョンにダウングレードまたはアップグレードできるはずです。将来、別のアップグレードパスが必要になった場合に備えて変更を文書化する必要がありますが、新しいソフトウェアリリースとの非互換バージョンについて心配する必要はありません。
DirectAdminはそのままではHTTP / 2を提供しません。確かにそれは互換性がないか、そうでない理由があるということです。なぜこの回避策が必要なのですか?
以下で説明するHTTP / 2のインストールと有効化の方法はあまり回避策ではなく、単にパッケージの更新と構成の変更にすぎません。DirectAdminのモジュラーセットアップにより、これらの変更は完全に問題なく、問題やその他の問題を引き起こすことはありません。作者がこれについての説明をしていないので、DirectAdminがそのままではこれをサポートしない理由を特定するのは困難です。ただし、かなり確かな結論として、DirectAdminはオペレーティングシステムによってバージョンパッケージを使用します。これらは通常、以下のパッケージほど最新ではありません。HTTP / 2、テクノロジー自体、およびその互換性に問題はありません。他の多くのテクノロジーと同様に、ネイティブに適応するには時間がかかる場合があります。
ApacheでHTTP / 2をアクティブ化することで起こり得るリスクは何ですか?
HTTP / 2のアクティブ化(アップグレードおよび構成プロセスで構成される)には、非標準であることが判明する可能性のある多くの変数があります。ただし、最大のリスクは人的ミスにあります。事前にスナップショットを作成し、メンテナンスをユーザーに通知し(サーバー上に自分以外に存在する場合)、注意してください。さらに、最初に何をするかを考えずにコマンドをコピーして貼り付けないでください。
DirectAdminを使用して個別のVultrクラウドインスタンスを一時的に起動し、手順を実行することを強くお勧めします。「新規」インストールで問題が発生した場合は、どこでどのようにデバッグすればよいかがわかるので、実稼働環境で行う必要はありません。
現在リバースプロキシを使用している場合は、Apacheのみの環境に切り替える必要があります。これは、問題が発生した場合、HTTP / 2はデバッグが非常に難しいためです。Apacheの統合されたHTTP / 2機能を利用できることで、トラブルの大部分を効果的に排除できます。
多くの場合、OpenSSLバージョンは、HTTP / 2に必要なALPNと互換性がありません。したがって、OpenSSLを更新してALPNを有効にしましょう。
まず、次のコマンドを実行して、OpenSSLのバージョンに互換性がないことを確認します。
openssl version
OpenSSLのバージョンが1.1.0f未満の場合は、rootとして以下を実行します。それ以外の場合は、手順2に進みます。
cd ~
wget ftp://ftp.openssl.org/source/openssl-1.1.0f.tar.gz
tar xzf openssl-1.1.0f.tar.gz
cd openssl-1.1.0f
./config --prefix=/usr/local/lib_http2 no-ssl2 no-ssl3 zlib-dynamic -fPIC
make depend
make install
HTTP / 2が機能するためには、nghttp2をインストールする必要があります。Nghttp2は、CでのHTTP / 2(およびHPACK)の実装です。Nghttp2は、CでのHTTP / 2クライアント、サーバー、およびプロキシを組み合わせたバージョンです。
nghttp2をインストールするには、次のコマンドを実行します。幸い、nghttp2はCustomBuildから直接ビルドできます。
cd /usr/local/directadmin/custombuild
./build update
./build nghttp2
HTTP / 2を使用するには、Apache構成ファイルのいくつかの値を��更する必要があります。Webサーバーが代替HTTPバージョンを使用するための指示を取得していない場合、それはそれを利用しません。したがって、HTTP / 2を構成ファイルに追加する必要があります。
これらの変更を有効にするには、CustomBuildによるApacheの再構築が必要です。ソフトウェアのビルド時にCustomBuildで使用されるパラメーターと値は専用の構成ファイルで決定されるため、ベストプラクティスはこれらの変更を専用のカスタム構成ファイルに入れることです。
注:これらの変更をカスタムファイルに含めない場合、変更が上書きされる可能性が高く、セットアップが中断します。以下の説明に従ってください。
次のコマンドを実行してファイルを作成し、デフォルト値を事前に入力して、後で変更できるようにします。
mkdir -p /usr/local/directadmin/custombuild/custom/ap2
cp -p /usr/local/directadmin/custombuild/configure/ap2/configure.apache /usr/local/directadmin/custombuild/custom/ap2/configure.apache
現在のところ、CustomBuildで使用されるApacheのデフォルト設定ファイルと同じカスタムファイルがあります。/usr/local/directadmin/custombuild/custom/ap2/configure.apache
次の文字列を置き換えることにより、ファイルを変更する必要があります。
"--with-ssl=/usr" \
と:
"--enable-http2" \
"--enable-ssl-staticlib-deps" \
"--with-ssl=/usr/local/lib_http2" \
注:バックスラッシュの後に空白がないことを確認してください。余計な空白があると、ビルドが中断します。
次に、Apacheを再ビルドします。CustomBuildは、作成したばかりのカスタム構成ファイルを使用します。
./build apache
Apacheは、HTTP / 2に必要なモジュールと設定を含めて再構築されました。つまり、HTTP / 2をサポートするApacheバージョンがサーバーにインストールされましたが、実際にそれを最初に使用するようApacheに指示する必要があります。
次の行を追加します/etc/httpd/conf/extra/httpd-includes.conf
。
ProtocolsHonorOrder On
Protocols h2 h2c http/1.1
これらの変更を保存して構成ファイルを書き直し、再構築後も永続的になるようにします。
cd /usr/local/directadmin/custombuild
./build rewrite_confs
HTTP / 2がWeb(Apache)サーバーでアクティブになっているはずです。
サーバーを再起動して、再起動後も変更が維持されることを確認します。Vultrコントロールパネルから、またはreboot
コマンドを実行してサーバーを再起動してください。
HTTP / 2の機能は、次のツールを使用して簡単にテストできます。HTTP/ 2テスト
HTTP / 2はサーバー固有であり、特定のドメインまたはWebサイトのペアに制限できないため、サーバーを指すドメイン名を入力するか、サーバーのIPアドレスでさえ機能するはずです。
テストは、HTTP / 2を介してWebサーバーに到達できるかどうかを通知します。サーバーでHTTP / 2がアクティブになっているとツールが言った場合、DirectAdmin WebサイトにはHTTP / 1.1またはHTTP / 2のいずれかでアクセスできます。クライアント(ビジター)がHTTP / 2サポートを利用できない場合、ブラウザーはHTTP / 1.1にフォールバックします。
ツールがHTTP / 2経由でWebサーバーに到達できない場合は、上記の手順を再度実行してください。一般に(上記の手順では何もアクティブに上書きされないため)、これによってセットアップが破損したり壊れたりすることはありません。
HTTP / 2をサポートするサーバーに到達できるようにcURLを更新することをお勧めします。サーバーがHTTP / 2をサポートしていない場合は、HTTP / 1.1にフォールバックします。
Apacheと同様に、カスタム構成ファイルを作成して、CustomBuildによって構築されたcURLがカスタム設定を使用するようにします。
ディレクトリを作成します。
mkdir -p /usr/local/directadmin/custombuild/custom/curl
ファイルを作成します。
touch /usr/local/directadmin/custombuild/custom/curl/configure.curl
次の内容をコピーしてファイルに貼り付けます。
#!/bin/sh
perl -pi -e 's|CURL_CHECK_PKGCONFIG\(zlib\)|#CURL_CHECK_PKGCONFIG(zlib)|g' configure.ac
LIBS="-ldl" ./configure --with-nghttp2=/usr/local --with-ssl=/usr/local/lib_http2
ご覧のとおり、これらのコンテンツはcURLにlib_http2
SSLライブラリを使用してコンパイルするように指示しています。
ファイルを保存して、適切な権限を付与します。
chmod 700 /usr/local/directadmin/custombuild/custom/curl/configure.curl
次に、cURLを作成するだけです。
cd /usr/local/directadmin/custombuild
./build curl
cURLがHTTP 2サポート付きでコンパイルされました。
CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。
CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。
CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。
CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。
FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。
サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。
CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。
Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。
CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。
WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。
FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。
Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。
ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。