アパッチ は、Apache HTTPサーバーとも呼ばれ、過去数十年間、世界中で最も広く使用されているWebサーバーアプリケーションの1つです。これは、 Apache Software Foundationによって管理されている無料のオープンソースWebアプリケーションソフトウェアです。 。 Apacheは、動的にロード可能なモジュール、他のソフトウェアとの簡単な統合、静的ファイルの処理など、いくつかの強力な機能を提供します。
次のチュートリアルでは、AlmaLinux8にApacheWebサーバーをインストールする方法を学習します。
- 推奨OS: AlmaLinux8。
- ユーザーアカウント: sudo特権を持つユーザーアカウント またはrootアクセス(suコマンド) 。
オペレーティングシステムの更新
AlmaLinuxを更新します 既存のすべてのパッケージが最新であることを確認するためのオペレーティングシステム:
sudo dnf update && sudo dnf upgrade -y
チュートリアルでは、sudoコマンドを使用します およびsudoステータスがあると仮定 。アカウントのsudoステータスを確認するには:
sudo whoami
sudoステータスを示す出力例:
[joshua@localhost ~]$ sudo whoami
root
sudoユーザーアカウントをまだ設定しておらず、設定したい場合は、AlmaLinuxでSudoersにユーザーを追加する方法のチュートリアルにアクセスしてください。 。
rootアカウントを使用するには 、rootパスワードを指定して次のコマンドを使用してログインします。
su
Apache(HTTPD)のインストール
デフォルトでは、ApacheはAlmaLinux8Appストリームにあります。これは非常に安定していて安全であるため、ほとんどのユーザーにとってより実用的です。 Apacheをインストールするには、ターミナルを開いて次のコマンドを実行します。
sudo dnf install httpd
出力例:
「Y」と入力します 、次に「ENTERKEY」を押します 続行します。
次に、デフォルトでApache (HTTPD) 無効になり、アクティブになりません。まず、サービスを開始します。
sudo systemctl start httpd
必要に応じて、システムの起動時にApacheを有効にします。
sudo systemctl enable httpd
成功した場合の出力例:
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
次のsystemctlを使用して、Apache2が正しく実行されているかどうかを確認します。 コマンド:
systemctl status httpd
すべて問題がない場合の出力例:
ファイアウォールルールの構成
Apacheのインストール時に、ファイアウォールルールが標準ポート80または443ポートに自動的に追加されることはありません。続行する前に、次のルールを設定する必要があります。これは、使用するポートによって異なりますが、すべてのオプションが一覧表示されています。
ポート80またはHTTPを開く:
sudo firewall-cmd --permanent --zone=public --add-service=http
ポート443またはHTTPSを開く:
sudo firewall-cmd --permanent --zone=public --add-service=https
ファイアウォールをリロードして変更を有効にします
sudo firewall-cmd --reload
ApacheWebサーバーを確認する
インストールと構成が完了したので、次はApache 2に到達可能であり、ページをリクエストして正しく機能しているかどうかをテストします。
デフォルトのApacheランディングページにアクセスして、ソフトウェアがサーバーのIPアドレスを介して正しく実行されているかどうかを確認できます。これを見つけるには、わからない場合は、以下のコマンドを使用してください。
hostname -I
例として、サーバーが使用されている内部IPアドレスを取得する必要があります。
###EXAMPLE ONLY###
192.168.50.15
2〜3件の結果が返される場合があります。正しいIPアドレスが見つかるまで、それぞれを試してください。
パブリックIPアドレス(外部)が必要な場合は、代わりに次のコマンドを使用してください。
curl -4 icanhazip.com
CURLパッケージがない場合は、インストールする必要がある場合があります。これを行うには、次のコマンドを実行します。
sudo dnf install curl -y
サーバーのIPアドレスを取得したら、お気に入りのインターネットブラウザを開き、次のように入力します。
http://your_server_ip
インターネットブラウザに次のページが表示されます。
おめでとうございます。Apache2Webサーバーをインストールし、現在機能しています。
次のステップは、仮想ホストを設定することです。
Apache用の仮想ホストの作成または構成
Apache Webサーバーを使用すると、仮想ホストを作成して、単一のサーバーで実行されている複数のドメインの構成を管理できます。以前にNginxを使用したことがある場合は、サーバーブロックに相当します。以下の例では、チュートリアルでドメインexample-domain.comを作成し、これをドメイン名に置き換えます。
ディレクトリの作成または構成
まず、 / var / www / htmlを残します ディレクトリをデフォルトのディレクトリとしてそのままにしてから、次のように新しいディレクトリ(example-domain.comなど)を作成します。
sudo mkdir /var/www/example_domain
次のステップは、$USER環境変数を使用してディレクトリの所有権を割り当てることです。
sudo chown -R $USER:$USER /var/www/example_domain
通常、Webルートのアクセス許可は正しく設定されている必要があり、-lslコマンドを使用して確認できます。 :
ls -l /var/www/example_domain
出力例:
drwxr-xr-x 2 joshua joshua 4096 Oct 10 11:46 example_domain
ご覧のとおり、 drwxr-xr-xの許可を得ています。 これはchmod755に相当します 。この権限が設定されていない場合は、次のコマンドを実行します。
sudo chmod -R 755 /var/www/example_domain
次に、お気に入りのテキストエディタを使用してサンプルページindex.htmlを作成します。チュートリアルでは、以下のようにnanoを使用します:
sudo nano /var/www/example_domain/index.html
ファイルに、次のコードをコピーして貼り付けます。
<html>
<head>
<title>Welcome to Website!</title>
</head>
<body>
<h1>Success! The virtual host is working! You did not mess it up thanks to Linuxcapable.com</h1>
</body>
</html>
ファイルを保存します(CTRL + O) 、次に終了します(CTRL + X) 。
仮想ホストの作成
これで、ランディングページを作成し、正しい所有権と権限を設定しました。デフォルトでは、必要なディレクトリを作成して設定する必要があります。
まず、サイトに必要なディレクトリを利用可能およびサイト対応にします。 Nginxユーザーもこの設定に精通しているでしょう。
sudo mkdir /etc/httpd/sites-available
sudo mkdir /etc/httpd/sites-enabled
次のステップは、 / etc / httpd / sites-availableに配置する必要がある仮想ホストファイルを探すようにApacheに指示することです。 ディレクトリ。
構成ファイルを開きます。
sudo nano /etc/httpd/conf/httpd.conf
ファイルの最後に以下を追加します。
IncludeOptional sites-enabled/*.conf
オプションで、混乱を避けたいと思われる仮想ホストファイルをApacheが検索するデフォルトのフォルダーを無効にすることができます。 IncludeOptional conf.d/*。confの横にコメントを配置するだけです 。
例:
#IncludeOptional conf.d/*.conf
IncludeOptional sites-enabled/*.conf
ファイルを保存します(CTRL + O)、 次に、(CTRL + X)を終了します 。
次に、お気に入りのテキストエディタを使用して、 /etc/httpd/sites-available/example_domain.confにある仮想ホスト構成ファイルを作成します。 以下のように:
sudo nano /etc/httpd/sites-available/example_domain.conf
次に、以下をコピーして構成ブロックファイルに貼り付けます。ただし、 ServerName、ServerAlias、を置き換えることに注意してください。 およびドキュメントルート あなた自身で:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName example_domain
ServerAlias www.example_domain
DocumentRoot /var/www/example_domain
ErrorLog /var/www/example_domain/error.log
CustomLog /var/www/example_domain/requests.log combined
</VirtualHost>
必要なサーバーディレクティブを独自のものに変更することを忘れないでください。
(CTRL + O)を使用して構成ファイルを保存します (CTRL + X)で終了します 。
仮想ホストを有効にする
次のステップは、仮想ホストを有効にすることです。最初に、2つのディレクトリを作成しました。サイト-利用可能 およびサイト対応。 次に、シンボリックリンクを作成する必要があります サイト対応へ 仮想ホストをアクティブ化します。
シンボリックリンクを作成するには、端末で次の例を使用します。
sudo ln -s /etc/httpd/sites-available/example_domain.conf /etc/httpd/example_domain.conf
完了したら、Apacheサービスを再起動します。
sudo systemctl restart httpd
インターネットブラウザを開き、ドメイン名を入力します HTTP:// example_domain index.htmlファイルで作成した次のランディングページを取得する場所:
おめでとうございます。仮想ホストが正常に作成され、ドメインで正常に機能するようになりました。
SSLFreeCertificateを暗号化してApacheを保護する
理想的には、SSL証明書を使用するHTTPSでApacheを実行することをお勧めします。 。これを行う最良の方法は、 Let’s Encryptを使用することです。 非営利のインターネットセキュリティ研究グループ(ISRG)が運営する無料の自動化されたオープンな認証局 。
まず、 EPELをインストールします リポジトリとmod_ssl より良く更新されたパッケージとセキュリティのためのパッケージ。
sudo dnf install epel-release mod_ssl -y
次に、certbotパッケージをインストールします 次のように:
sudo dnf install python3-certbot-apache -y
インストールしたら、次のコマンドを実行して証明書の作成を開始します。
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d www.example.com
これは、強制HTTPS 301リダイレクト、Strict-Transport-Securityヘッダー、およびOCSPステープリングを含む理想的なセットアップです。電子メールとドメイン名を要件に合わせて調整してください。
これで、URLは https://www.example.comになります HTTP://www.example.comの代わりに 。
古いHTTPURLを使用する場合は注意してください 、自動的に HTTPSにリダイレクトされます 。
オプションで、証明書を自動的に更新するようにcronジョブを設定できます。 Certbotはこれを自動的に行うスクリプトを提供しており、最初にドライランを実行してすべてが機能していることを確認するためのテストを行うことができます。
sudo certbot renew --dry-run
すべてが機能している場合は、次のターミナルコマンドを使用してcrontabウィンドウを開きます。
sudo crontab -e
次に、自動更新する時刻を指定します。これは少なくとも毎日チェックする必要があり、証明書を更新する必要がある場合、スクリプトは証明書を更新しません。設定するのに適した時間を見つけるのに助けが必要な場合は、crontab.guru無料ツールを使用してください。
00 00 */1 * * /usr/sbin/certbot-auto renew
保存(CTRL + O) 次に、(CTRL + X)、を終了します cronジョブが自動的に有効になります。
Apacheサービスの管理
サーバー上でApacheが正常に実行されたので、いくつかの管理基調講演は次のとおりです。
Apacheサーバーログ
Apacheサーバーのログは、ディレクトリ var / www / example_domainにあります。 custom.logを使用 およびerror.log 敬意を表して、指定されたデフォルトのアクセス名とエラー名です。これは、将来、仮想ホスト構成ファイルで他の名前に変更される可能性があります。
Apacheコマンド
次のコマンドは、Apacheを使用するときに日常の管理で間違いなく使用します。最も一般的なものは次のとおりです。
Apache Webサーバーを停止するには:
sudo systemctl stop httpd
Apache Webサーバーを起動するには:
sudo systemctl start httpd
Apache Webサーバーを再起動するには:
sudo systemctl restart httpd
Apache Webサーバーをリロードするには(再起動を必要としないマイナーな変更の場合) :
sudo systemctl reload httpd
サーバーの起動時にApacheを無効にするには:
sudo systemctl disable httpd
サーバーの起動時にApacheを起動するには(インストール時に自動的に有効になります) :
sudo systemctl enable httpd
Apacheを更新する方法
将来的にApacheを更新するには、システムが最新であるかどうかを確認するために使用したコマンドを使用してこれを実行します。重要なサービスを実行しているApacheサービスがある場合は、常にバックアップまたはイメージを作成することに注意してください。通常、アップグレードするのはかなり安全ですが、ソフトウェアのアップグレードと同じようにバグが発生することもあります。
Apacheを更新するには、次のコマンドを使用します。
sudo dnf update
Apacheのアップグレードが利用可能な場合は、次のコマンドを使用します。
sudo dnf upgrade
Apacheを削除(アンインストール)する方法
Apacheを使用しなくなった場合に削除するには、次のコマンドを使用してこれを実行できます。
sudo dnf autoremove httpd
このコマンドは、インストールに付属していた未使用の依存関係も削除します。