Ubuntu22.04にApacheWebサーバーをインストールする方法
序章
Apache HTTPサーバーは、世界で最も広く使用されているWebサーバーです。 動的にロード可能なモジュール、堅牢なメディアサポート、他の一般的なソフトウェアとの広範な統合など、多くの強力な機能を提供します。
このガイドでは、Ubuntu22.04サーバーにApacheWebサーバーをインストールする方法を学習します。
前提条件
このガイドを開始する前に、root以外のユーザーでUbuntu22.04サーバーをセットアップする必要があります。 sudo
特権とファイアウォールを有効にして、必須ではないポートをブロックします。 これを行う方法については、 Ubuntu22.04の初期サーバーセットアップガイドに従ってください。
これの設定が完了したら、 root 以外のユーザーとしてログインし、最初のステップに進みます。
ステップ1—Apacheをインストールする
ApacheはUbuntuのデフォルトのソフトウェアリポジトリ内で利用可能であり、従来のパッケージ管理ツールを使用してインストールすることができます。
最新のアップストリームの変更を反映するようにローカルパッケージインデックスを更新することから始めます。
- sudo apt update
次に、をインストールします apache2
パッケージ:
- sudo apt install apache2
インストールを確認した後、 apt
Apacheと必要なすべての依存関係をインストールします。
ステップ2—ファイアウォールを調整する
Apacheをテストする前に、ファイアウォール設定を変更して、デフォルトのWebポートへの外部アクセスを許可する必要があります。 前提条件の指示に従った場合は、サーバーへのアクセスを制限するようにUFWファイアウォールを構成する必要があります。
インストール中に、ApacheはUFWに登録して、ファイアウォールを介したApacheへのアクセスを有効または無効にするために使用できるいくつかのアプリケーションプロファイルを提供します。
リストする ufw
次のコマンドを実行して、アプリケーションプロファイルを作成します。
- sudo ufw app list
出力は、アプリケーションプロファイルのリストになります。
OutputAvailable applications:
Apache
Apache Full
Apache Secure
OpenSSH
出力に示されているように、Apacheで使用できるプロファイルは3つあります。
Apache
:このプロファイルはポートのみを開きます80
(通常の暗号化されていないWebトラフィック)Apache Full
:このプロファイルは両方のポートを開きます80
(通常の暗号化されていないWebトラフィック)とポート443
(TLS / SSL暗号化トラフィック)Apache Secure
:このプロファイルはポートのみを開きます443
(TLS / SSL暗号化トラフィック)
構成したトラフィックを引き続き許可する最も制限の厳しいプロファイルを有効にすることをお勧めします。 このガイドではまだサーバーのSSLを構成していないため、ポートでのトラフィックのみを許可する必要があります 80
:
- sudo ufw allow 'Apache'
ステータスを確認することで、変更を確認できます。
- sudo ufw status
出力には、許可されたHTTPトラフィックのリストが表示されます。
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Apache ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Apache (v6) ALLOW Anywhere (v6)
出力に示されているように、プロファイルはApacheWebサーバーへのアクセスを許可するようにアクティブ化されています。
ステップ3—Webサーバーを確認する
インストールプロセスの最後に、Ubuntu22.04はApacheを起動します。 Webサーバーはすでに稼働しています。
次のコマンドを実行して、サービスがアクティブであることを確認します。 systemd
initシステム:
- sudo systemctl status apache2
Output● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor prese>
Active: active (running) since Tue 2022-04-26 15:33:21 UTC; 43s ago
Docs: https://httpd.apache.org/docs/2.4/
Main PID: 5089 (apache2)
Tasks: 55 (limit: 1119)
Memory: 4.8M
CPU: 33ms
CGroup: /system.slice/apache2.service
├─5089 /usr/sbin/apache2 -k start
├─5091 /usr/sbin/apache2 -k start
└─5092 /usr/sbin/apache2 -k start
この出力で確認されたように、サービスは正常に開始されました。 ただし、これをテストする最良の方法は、Apacheにページを要求することです。
デフォルトのApacheランディングページにアクセスして、ソフトウェアがIPアドレスを介して正しく実行されていることを確認できます。 サーバーのIPアドレスがわからない場合は、コマンドラインからいくつかの異なる方法で取得できます。
サーバーのコマンドプロンプトで次のように記述してみてください。
- hostname -I
スペースで区切られたいくつかのアドレスを受け取ります。 Webブラウザーでそれぞれを試して、機能するかどうかを判断できます。
別のオプションは、無料で使用することです icanhazip.com
道具。 これは、アクセスされると、インターネット上の別の場所から読み取られたマシンのパブリックIPアドレスを返すWebサイトです。
- curl -4 icanhazip.com
サーバーのIPアドレスを取得したら、それをブラウザのアドレスバーに入力します。
http://your_server_ip
次のようなデフォルトのUbuntu22.04ApacheWebページが表示されます。
このページは、Apacheが正しく機能していることを示しています。 また、重要なApacheファイルとディレクトリの場所に関する基本的な情報も含まれています。
ステップ4—Apacheプロセスの管理
Webサーバーが稼働しているので、次を使用していくつかの基本的な管理コマンドを確認しましょう。 systemctl
.
Webサーバーを停止するには、次のコマンドを実行します。
- sudo systemctl stop apache2
停止したときにWebサーバーを起動するには、次のコマンドを実行します。
- sudo systemctl start apache2
サービスを停止してから再開するには、次のコマンドを実行します。
- sudo systemctl restart apache2
単に構成を変更するだけの場合、Apacheは接続を切断せずにリロードできることがよくあります。 これを行うには、次のコマンドを使用します。
- sudo systemctl reload apache2
デフォルトでは、Apacheはサーバーの起動時に自動的に起動するように構成されています。 これが希望どおりでない場合は、次のコマンドを実行してこの動作を無効にします。
- sudo systemctl disable apache2
起動時にサービスを再度有効にするには、次のコマンドを実行します。
- sudo systemctl enable apache2
サーバーが再度起動すると、Apacheが自動的に起動するようになりました。
手順5—仮想ホストの設定(推奨)
Apache Webサーバーを使用する場合、仮想ホスト(Nginxのサーバーブロックと同様)を使用して、構成の詳細をカプセル化し、単一のサーバーから複数のドメインをホストできます。 your_domain というドメインを設定しますが、これを独自のドメイン名に置き換える必要があります。
情報: DigitalOceanでドメイン名を設定する場合は、ネットワーキングドキュメントを参照してください。
Ubuntu 22.04上のApacheでは、デフォルトで1つのサーバーブロックが有効になっており、 /var/www/html
ディレクトリ。 これは単一のサイトではうまく機能しますが、複数のサイトをホストしている場合は扱いにくくなる可能性があります。 変更する代わりに /var/www/html
、内にディレクトリ構造を作成します /var/www
your_domain サイトの場合、 /var/www/html
クライアント要求が他のサイトと一致しない場合に提供されるデフォルトのディレクトリとして配置されます。
次のように、your_domainのディレクトリを作成します。
- sudo mkdir /var/www/your_domain
次に、ディレクトリの所有権を、現在サインインしているユーザーに割り当てます。 $USER
環境変数:
- sudo chown -R $USER:$USER /var/www/your_domain
デフォルトのファイル権限を設定するumask値を変更していない場合は、Webルートの権限が正しいはずです。 アクセス許可が正しいことを確認し、所有者がファイルの読み取り、書き込み、および実行を許可し、グループなどに読み取りと実行のアクセス許可のみを付与するには、次のコマンドを入力できます。
- sudo chmod -R 755 /var/www/your_domain
次に、サンプルを作成します index.html
使用するページ nano
またはお気に入りの編集者:
- sudo nano /var/www/your_domain/index.html
内部に、次のサンプルHTMLを追加します。
<html>
<head>
<title>Welcome to Your_domain!</title>
</head>
<body>
<h1>Success! The your_domain virtual host is working!</h1>
</body>
</html>
終了したら、ファイルを保存して閉じます。 使用している場合 nano
、を押すことでこれを行うことができます CTRL + X
、 それから Y
と ENTER
.
Apacheがこのコンテンツを提供するには、正しいディレクティブを使用して仮想ホストファイルを作成する必要があります。 にあるデフォルトの構成ファイルを変更する代わりに /etc/apache2/sites-available/000-default.conf
直接、で新しいものを作ります /etc/apache2/sites-available/your_domain.conf
:
- sudo nano /etc/apache2/sites-available/your_domain.conf
次の構成ブロックを追加します。これはデフォルトに似ていますが、新しいディレクトリとドメイン名用に更新されています。
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName your_domain
ServerAlias www.your_domain
DocumentRoot /var/www/your_domain
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
を更新したことに注意してください DocumentRoot
新しいディレクトリに ServerAdmin
your_domainサイト管理者がアクセスできる電子メールに。 また、2つのディレクティブを追加しました。 ServerName
、この仮想ホスト定義に一致するベースドメインを確立し、 ServerAlias
、ベース名であるかのように一致する追加の名前を定義します。
終了したら、ファイルを保存して閉じます。
次に、ファイルを有効にします。 a2ensite
道具:
- sudo a2ensite your_domain.conf
で定義されているデフォルトサイトを無効にする 000-default.conf
:
- sudo a2dissite 000-default.conf
次に、構成エラーをテストします。
- sudo apache2ctl configtest
次の出力が表示されます。
Output. . .
Syntax OK
Apacheを再起動して、変更を実装します。
- sudo systemctl restart apache2
これで、Apacheがドメイン名を提供します。 次の場所に移動して、これをテストできます。 http://your_domain
、次のようなものが表示されます。
ステップ6–重要なApacheファイルとディレクトリに精通する
Apacheサービス自体を管理する方法がわかったので、いくつかの重要なディレクトリとファイルに慣れるために数分かかる必要があります。
コンテンツ
/var/www/html
:実際のWebコンテンツは、デフォルトでは前に見たデフォルトのApacheページのみで構成されており、/var/www/html
ディレクトリ。 これは、Apache構成ファイルを変更することで変更できます。
サーバー構成
/etc/apache2
:Apache構成ディレクトリ。 すべてのApache構成ファイルはここにあります。/etc/apache2/apache2.conf
:メインのApache構成ファイル。 これを変更して、Apacheグローバル構成を変更できます。 このファイルは、構成ディレクトリ内の他の多くのファイルをロードする役割を果たします。/etc/apache2/ports.conf
:このファイルは、Apacheがリッスンするポートを指定します。 デフォルトでは、Apacheはポートでリッスンします80
さらにポートでリッスンします443
SSL機能を提供するモジュールが有効になっている場合。/etc/apache2/sites-available/
:サイトごとの仮想ホストを保存できるディレクトリ。 Apacheは、これらがリンクされていない限り、このディレクトリにある設定ファイルを使用しません。sites-enabled
ディレクトリ。 通常、すべてのサーバーブロック構成はこのディレクトリで行われ、他のディレクトリにリンクすることで有効になります。a2ensite
指図。/etc/apache2/sites-enabled/
:有効なサイトごとの仮想ホストが保存されているディレクトリ。 通常、これらは、にある構成ファイルにリンクすることによって作成されます。sites-available
ディレクトリとa2ensite
. Apacheは、完全な設定をコンパイルするために起動またはリロードするときに、このディレクトリにある設定ファイルとリンクを読み取ります。/etc/apache2/conf-available/
,/etc/apache2/conf-enabled/
:これらのディレクトリは、sites-available
とsites-enabled
ディレクトリですが、仮想ホストに属していない構成フラグメントを格納するために使用されます。 内のファイルconf-available
ディレクトリはで有効にすることができますa2enconf
コマンドを使用して無効にしますa2disconf
指図。/etc/apache2/mods-available/
,/etc/apache2/mods-enabled/
:これらのディレクトリには、それぞれ使用可能なモジュールと有効なモジュールが含まれています。 で終わるファイル.load
特定のモジュールをロードするためのフラグメントが含まれ、ファイルの末尾が.conf
それらのモジュールの構成が含まれています。 モジュールは、を使用して有効または無効にできますa2enmod
とa2dismod
コマンド。
サーバーログ
/var/log/apache2/access.log
:デフォルトでは、Apacheが別の方法で設定されていない限り、Webサーバーへのすべてのリクエストがこのログファイルに記録されます。/var/log/apache2/error.log
:デフォルトでは、すべてのエラーがこのファイルに記録されます。 TheLogLevel
Apache構成のディレクティブは、エラーログに含まれる詳細を指定します。
結論
Webサーバーがインストールされたので、提供できるコンテンツの種類と、より豊かなエクスペリエンスを作成するために使用できるテクノロジーについて、多くのオプションがあります。
より完全なアプリケーションスタックを構築したい場合は、 Ubuntu22.04でLAMPスタックを構成する方法に関するこの記事を読むことができます。