Apache HTTP Server (HTTPD) は、世界で最も広く使用されている Web サーバーの 1 つで、柔軟性、堅牢なパフォーマンス、および広範な構成オプションで知られています。静的コンテンツと動的コンテンツの両方を提供でき、モジュール設計により、SSL/TLS 暗号化、URL リダイレクト、認証などの幅広い機能を使用できます。Apache HTTPD は、安定性、セキュリティ、およびスケーラビリティが重要な環境で特に好まれています。小規模な個人プロジェクトから大規模なエンタープライズ ソリューションまで、Web サイトやアプリケーションのホスティングに最適です。
Fedora 40 または 39 では、Apache HTTPD は、dnf パッケージ マネージャーを介して Fedora の AppStream を使用して簡単にインストールできます。この方法では、Fedora の公式リポジトリで管理されている最新バージョンにアクセスして簡単なインストール プロセスが提供され、安全で最新の Web サーバーが確保されます。このガイドでは、コマンド ライン ターミナルを使用して Apache HTTPD をインストールする手順を順を追って説明し、Fedora で Web サーバーをセットアップおよび構成できるようにします。
Apache インストール前に Fedora パッケージを更新する
まず、Fedora システムを更新することで、互換性とセキュリティに不可欠な最新のソフトウェアが実行されるようになります。
ターミナルを開いて次のコマンドを実行します。
sudo dnf upgrade --refresh
このコマンドは、管理者権限の sudo の使用と dnf upgrade を組み合わせて、すべてのパッケージを更新します。–refresh オプションにより、リポジトリから最新の情報を取得できます。システムの整合性とスムーズな機能を維持するために、次のステップに進む前にこのプロセスを完了することが重要です。
DNF コマンドで Apache (HTTPD) をインストールする
システムを最新の状態にしておくと、Apache (HTTPD とも呼ばれる) のインストールは簡単です。Fedora は、このようなタスクに DNF パッケージ マネージャーを使用します。
ターミナルで以下を実行します:
sudo dnf install httpd
このコマンドは、Apache を取得して Fedora システムにインストールします。DNF は依存関係と構成を処理し、インストールを簡素化します。このプロセスは通常迅速で、完了すると Apache が使用可能になります。
Apache (HTTPD) サービスを有効にする
Apache をインストールしたら、次のステップはサービスを起動して有効にし、起動時に実行されるようにすることです。自動的に有効にならない場合は、次のコマンドを使用します。
sudo systemctl start httpd
sudo systemctl enable httpd
「sudo systemctl start httpd」は Apache サービスを開始し、「sudo systemctl enable httpd」は起動時に起動するように設定します。この 2 段階のアプローチにより、Apache がアクティブになり、永続的に利用可能になります。
あるいは、次の手順を組み合わせることもできます。
sudo systemctl enable httpd --now
sudo systemctl enable httpd の –now フラグは、Apache を直ちに起動し、起動時に起動するように構成して、プロセスを合理化します。
Apache (HTTPD) サービスのステータスを確認する
最後に、Apache のステータスを確認します。
systemctl status httpd
このコマンドは、Apache の動作ステータスを提供します。出力には、トラブルシューティングに不可欠なサービスの現在の状態とエラー メッセージが含まれます。これを定期的にチェックすると、Fedora システムで安定した機能的な Apache セットアップを維持するのに役立ちます。
Apache のファイアウォールルールを設定する
HTTP および HTTPS のポートを開く
Fedora に Apache (HTTPD) をインストールした後、ポート 80 (HTTP) と 443 (HTTPS) のトラフィックを許可するように Firewalld を構成することが重要です。これらの手順は、Web アプリケーションのセキュリティとアクセシビリティにとって不可欠です。
ポート80(HTTP)を開く:
次のコマンドを実行して、HTTP トラフィックに使用されるポート 80 を開きます。
sudo firewall-cmd --permanent --add-port=80/tcp
このコマンドは、暗号化されていない Web トラフィックによく使用されるポート 80 での着信 TCP トラフィックを許可するように Firewalld を構成します。
ポート443(HTTPS)を開く:
安全で暗号化されたトラフィックを許可するには、次のコマンドでポート 443 を開きます。
sudo firewall-cmd --permanent --add-port=443/tcp
ポート 443 は HTTPS トラフィックに使用され、クライアントとサーバー間の暗号化された通信を提供します。
ファイアウォールの変更を適用する:
ルールを設定したら、Firewalld をリロードして適用します。
sudo firewall-cmd --reload
ファイアウォールを再ロードすると、すべての変更がアクティブになり、すぐに有効になります。
セキュリティに関する考慮事項
これらの変更がセキュリティに与える影響を理解することは非常に重要です。必要なポートのみを開くことで、潜在的な脆弱性を最小限に抑え、不正アクセスや脅威からアプリケーションを保護できます。
Apache のアクセシビリティの検証
構成が成功したことを確認するには、Apache (HTTPD) ランディング ページにアクセスします。
- Webブラウザを開きます。
- http://localhost または http:// に移動します。 。
正しく設定されていれば、Apache のデフォルト ページが表示され、サーバーの動作ステータスが確認されます。
アクセス問題のトラブルシューティング
ランディング ページにアクセスできない場合は、次の手順を検討してください。
- ファイアウォール ルールの正確性を確認します。
- Apache サービスのステータスを確認します。
- サーバー構成にエラーがないか調べます。
これらの側面に対処することで、Fedora 上の Apache へのアクセスを妨げる問題を特定して解決するのに役立ちます。
Apacheで仮想ホストを作成する
仮想ホストのディレクトリの作成と構成
まず、Fedora Linux で仮想ホスト用のディレクトリを作成します。このディレクトリは、Web サイトのファイルのルートとして機能します。「example.com」のようなドメインの場合は、次のコマンドを使用します。
sudo mkdir /var/www/example.com
「example.com」を実際のドメイン名に置き換えます。このディレクトリには、HTML、画像、スクリプトなど、すべての Web サイト ファイルが保存されます。組織化とセキュリティ上の理由から、異なる仮想ホストごとに個別のディレクトリを作成することをお勧めします。
Apache がアクセスできるようにディレクトリの所有権と権限を設定します。
sudo chown -R apache:apache /var/www/example.com
sudo chmod -R 755 /var/www/example.com
最初のコマンドはディレクトリの所有権を Apache ユーザーとグループに変更し、2 番目のコマンドは必要な権限を設定します。
このディレクトリに index.html ファイルを作成します。このファイルは訪問者が最初に見るページです。このファイルを作成するには、Nano などのテキスト エディターを使用します。
sudo nano /var/www/example.com/index.html
エディター内で、次の HTML 構造を追加できます。
<html>
<head>
<title>Example Domain</title>
</head>
<body>
<h1>Welcome to Example Domain</h1>
<p>This is a sample page for the domain example.com.</p>
</body>
</html>
この HTML をサイトのニーズに合わせてカスタマイズします。Ctrl + X、Y、Enter の順に押して保存し、エディターを終了します。
仮想ホストの作成
Apache のディレクトリの設定
まず、sites-available ディレクトリと sites-enabled ディレクトリを作成します。
sudo mkdir /etc/httpd/sites-available /etc/httpd/sites-enabled
これらのディレクトリは、仮想ホストの設定を整理するのに役立ちます。次に、Apache 設定ファイルを編集します。
sudo nano /etc/httpd/conf/httpd.conf
ファイルの最後に以下を追加します:
#IncludeOptional conf.d/*.conf
IncludeOptional sites-enabled/*.conf
Ctrl + O と Ctrl + X で保存して終了します。
仮想ホストの設定
ドメインの設定ファイルを作成します。
sudo nano /etc/httpd/sites-available/example.com.conf
ファイルに次の構成を追加し、必要に応じて ServerName、ServerAlias、DocumentRoot を調整します。
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName example_domain
ServerAlias www.example_domain
DocumentRoot /var/www/example.com/
</VirtualHost>
アクセス権限の変更
Apache のアクセス権限を変更してパブリック アクセスを許可します。メインの設定ファイルを編集します。
sudo nano /etc/httpd/conf/httpd.conf
最後に次の行を追加します。
<Directory /var/www/example.com/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Ctrl + O と Ctrl + X で保存して終了します。
仮想ホストを有効にする
仮想ホストを有効にするには、シンボリック リンクを作成します。
sudo ln -s /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-enabled/
変更を適用するには、Apache を再起動します。
sudo systemctl restart httpd
Apache を再起動したら、Web ブラウザで http://example_domain にアクセスします。ドメインを登録していない場合は、サーバーの IP アドレスを使用します。先ほど作成したランディング ページが表示されます。
Apache (HTTPD) サービスの管理0
Apache サーバー ログ
Apache サーバー ログは、監視とトラブルシューティングに不可欠です。デフォルトでは /var/log/httpd/ にあります。標準のファイル名は、アクセス ログの場合は access.log、エラー ログの場合は error.log です。ただし、仮想ホスト構成ファイルでこれらのファイル名をカスタマイズできます。
ログファイル名のカスタマイズ
ログ ファイル名を変更するには、仮想ホスト構成ファイルを編集します。カスタム ログ名の例を次に示します。
<VirtualHost *:80>
ServerName www.example.com
DocumentRoot /var/www/example.com
# Change access log to custom-access.log
CustomLog /var/log/httpd/custom-access.log combined
# Change error log to custom-error.log
ErrorLog /var/log/httpd/custom-error.log
</VirtualHost>
この構成では、アクセス ログとエラー ログの新しいファイル名として custom-access.log と custom-error.log が設定されます。カスタム ログ名を構成するときは、正しいファイル パスを指定することを忘れないでください。
サービス管理用の Apache コマンド
Apache サービスの管理には、その操作を制御できる一連のコマンドが含まれます。
Apache を停止しています:
Apache サーバーを停止するには、次のコマンドを使用します。
sudo systemctl stop httpd
このコマンドは、Apache サービスが再起動されるまで停止します。
Apache を起動します:
Apache サーバーを起動するには、次のコマンドを使用します。
sudo systemctl start httpd
このコマンドは Apache サービスを起動し、Web コンテンツを提供できるようにします。
Apache を再起動します:
Apache サーバーを再起動するには、次のコマンドを使用します。
sudo systemctl restart httpd
再起動は、構成の変更を適用したり、重大ではないエラーから回復したりするのに役立ちます。
Apache をリロードしています:
Apache サーバーをリロードするには、次のコマンドを使用します。
sudo systemctl reload httpd
再ロードすると、実行中のサービスを中断することなく構成の変更が適用されます。
起動時に Apache を無効にする:
起動時に Apache が自動的に起動しないようにするには、次を使用します。
sudo systemctl disable httpd
このコマンドは、システムの起動時に起動するサービスのリストから Apache を削除します。
起動時にApacheを有効にする:
起動時に Apache が自動的に起動するように設定するには、次のコマンドを使用します。
sudo systemctl enable httpd
これにより、システムの起動時に常に Apache が起動し、一貫した Web サービスの可用性が確保されます。
Let's Encrypt SSL 無料証明書で Apache を保護する
SSL/TLS 証明書自動化用の Certbot をインストールする
まず、SSL/TLS 証明書の取得と更新を自動化し、Web サイトの HTTPS 暗号化を保証するツールである Certbot をインストールします。Certbot をインストールするには、次のコマンドを実行します。
sudo dnf install certbot python3-certbot-apache
ドメインのSSL/TLS証明書を生成する
インストール後、次のコマンドでドメインの SSL/TLS 証明書を生成します。
sudo certbot --apache -d example.com
「example.com」を実際のドメイン名に置き換えます。
SSL証明書を生成するための代替コマンド
包括的な SSL 設定を行うには、次のコマンドを使用します。
sudo certbot --dry-run --apache --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d www.example.com
- –dry-run: システムを変更せずに証明書の生成をテストします。
- –apache: 証明書が Apache サーバー用であることを示します。
- –agree-tos: Let's Encrypt の利用規約に同意します。
- –redirect: HTTP トラフィックを HTTPS にリダイレクトします。
- –hsts: HTTP Strict Transport Security を有効にし、安全な HTTPS 接続のみを保証します。
- –staple-ocsp: SSL 証明書を検証するための OCSP ステープルを有効にします。
- –email: 証明書に関連付けられたメールアドレス。
- -d: 証明書のドメイン名。ここでは「www.example.com」です。
SSL 証明書を使用するための Apache の設定
Apache を設定するには、SSL 設定ファイルを開きます。
sudo nano /etc/httpd/conf.d/ssl.conf
このファイルに次の行を追加し、「example.com」を自分のドメインに置き換えます。
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem
SSL証明書の検証と更新
インストール後、Web サイトは「HTTP://www.example.com」から「HTTPS://www.example.com」に移行し、暗号化された安全な通信が確保されます。
自動証明書更新の設定
SSL 証明書を最新の状態に保つには、Certbot 更新用の cron ジョブを設定します。まず、更新プロセスをテストします。
sudo systemctl restart httpd
このテストは、cron ジョブとしてスケジュールする前に、更新スクリプトが正しく機能することを確認します。
sudo certbot renew --dry-run
SSL証明書の更新と管理
SSL証明書のステータスの確認
更新プロセスを自動化する前に、SSL 証明書の現在のステータスを把握することが重要です。Certbot によって管理されているすべての証明書の有効期限を含むステータスを確認するには、次のコマンドを使用します。
sudo certbot certificates
このコマンドは、Certbot によって処理されるすべての SSL 証明書のリストと、それぞれの有効期限を表示します。この情報は、証明書がアクティブであることを確認し、いつ更新が必要になるかを把握するために不可欠です。
SSL証明書の更新の自動化
HTTPS サービスの中断を防ぐために、SSL 証明書を定期的に更新する必要があります。このプロセスを自動化することは、安全な Web サイトを維持するために不可欠です。
Cronジョブ用のCronieのインストール
cron ジョブ マネージャー Cronie が Fedora システムにインストールされていない場合は、次のコマンドを使用してインストールします。
sudo crontab -e
Cronie を使用すると、Certbot 更新スクリプトなどのタスクを指定した時間と間隔で実行するようにスケジュールできます。
Cronジョブ設定の編集
Cronie をインストールした後、cron ジョブ設定を編集して SSL 証明書の更新をスケジュールします。
sudo dnf install cronie
このコマンドは、crontab エディターを開き、スケジュールされたタスクを追加できます。
更新ジョブのスケジュール設定
crontab エディター内で次の行を追加して、更新コマンドを 1 日に 2 回実行するようにスケジュールします。
0 6,18 * * * certbot renew --quiet
この cron ジョブは、certbot renew コマンドを毎日午前 6:00 と午後 6:00 に実行するように設定されています。–quiet オプションにより、Certbot は不要な出力を生成せずにサイレントに実行されます。
Certbot の更新プロセスを理解する
Certbot は更新プロセスをインテリジェントに管理します。有効期限が 30 日以内の証明書のみを更新しようとします。証明書の更新が不要な場合、Certbot は何も実行しません。この効率性により、サーバーに不要なプロセスが課されることがなくなり、SSL 証明書が常に最新の状態になります。
この自動更新プロセスを設定することは、継続的な HTTPS 暗号化を維持し、Web サイトの安全性とユーザーや検索エンジンからの信頼を確保するためのベスト プラクティスです。
追加コマンドとヒント
Apache 上のディレクトリとファイルのセキュリティ保護
サーバーのセキュリティを確保するには、ファイルとディレクトリに適切な権限を設定する必要があります。権限が過度に大きい設定は、サーバーを危険にさらす可能性があります。
安全な権限の設定
/var/www/example.com/ の下のディレクトリとファイルの場合は、次のコマンドを使用します。
sudo find /var/www/example.com/ -type d -exec chmod 755 "{}" \;
sudo find /var/www/example.com/ -type f -exec chmod 644 "{}" \;
これらのコマンドは、ディレクトリを 755 (所有者には読み取り、書き込み、実行、その他には読み取りと実行) に設定し、ファイルを 644 (所有者には読み取りと書き込み、その他には読み取り) に設定します。これらは標準の安全な権限です。
特定のアプリケーションに対する特別な権限
phpBB などの一部のアプリケーションでは、特定のフォルダーに対して 777 権限が必要になる場合があることに注意してください。常にアプリケーションの要件に基づいて権限を調整してください。
包括的なセキュリティアプローチ
権限の設定はセキュリティの 1 つの側面にすぎないことに注意してください。SSL 証明書の実装と適切なファイアウォール構成は、堅牢なサーバー保護に不可欠です。
Fedora 上の Apache (HTTPD) を更新する
Apache を最新の状態に保つことは、セキュリティとパフォーマンスにとって非常に重要です。
Apache の更新
Apache を他のシステム パッケージとともに更新するには、次のコマンドを使用します。
sudo dnf update --refresh
このコマンドはパッケージ データベースを更新し、Apache を含むすべてのインストール済みパッケージを更新します。
アップデート前の注意事項
潜在的な問題を防ぐために、更新を実行する前に必ずシステムをバックアップするか、イメージを作成してください。
Fedora から Apache を削除 (アンインストール) する
Apache をシステムから削除する必要があるシナリオでは、次の手順に従います。
Apache の無効化と停止
まず、Apache サービスを無効にして停止します。
sudo systemctl disable httpd --now
このコマンドは Apache サービスを停止し、起動時に自動的に起動されないようにします。
Apache のアンインストール
システムから Apache を削除するには、次のコマンドを実行します。
sudo dnf remove httpd
このコマンドは、Apache パッケージをアンインストールします。
残ったファイルのクリーンアップ
アンインストール後、Apache 構成ディレクトリに残っているファイルをすべて削除します。
sudo rm -R /etc/httpd/
この手順により、Apache 関連のすべてのファイルがシステムから完全に削除されます。
結論
AppStream を通じて Fedora に Apache HTTPD をインストールすると、Fedora システムと適切に統合された強力で信頼性の高い Web サーバーが得られます。dnf パッケージ マネージャーにより、インストールがスムーズに行われ、更新が簡単に管理されます。インストール後は、静的 Web サイトの配信、動的アプリケーションの実行、複雑な Web 環境の管理など、特定のニーズに合わせてサーバーをカスタマイズするために、Apache の広範な構成オプションを検討してください。