私は何年もの間自分のウェブサイトをホストしてきました。 20年以上前にOS/2からLinuxに切り替えて以来、私はサーバーソフトウェアとしてApacheを使用してきました。 Apacheは堅実でよく知られており、基本的なインストール用に構成するのは非常に簡単です。複数のWebサイトなど、より複雑なセットアップを構成することはそれほど難しくありません。
その他のLinuxリソース
- Linuxコマンドのチートシート
- 高度なLinuxコマンドのチートシート
- 無料のオンラインコース:RHELの技術概要
- Linuxネットワーキングのチートシート
- SELinuxチートシート
- Linuxの一般的なコマンドのチートシート
- Linuxコンテナとは何ですか?
- 最新のLinux記事
ApacheWebサーバーのインストールと構成はrootとして実行する必要があります。ファイアウォールの構成もrootとして実行する必要があります。ブラウザを使用してこの作業の結果を表示するには、root以外のユーザーとして実行する必要があります。 (私はユーザーstudent
を使用します 私の仮想ホスト上で。)
インストール
注:この記事は、Fedora33とApache2.4.46を使用して更新されています。別のディストリビューションまたは別のリリースのFedoraを使用している場合、コマンドと構成ファイルの場所および内容が異なる場合があります。ただし、変更する必要のある構成行は、配布に関係なく同じです。
ApacheWebサーバーは簡単にインストールできます。 1つのコマンドで、コマンドと必要なすべての依存関係をインストールできます。
$ dnf install httpd
Apacheのすべての構成ファイルは、/etc/httpd/conf
にあります。 および/etc/httpd/conf.d
。 Apacheで実行するWebサイトのデータは、/var/www
にあります。 デフォルトですが、必要に応じて変更できます。
構成
プライマリApache設定ファイルは/etc/httpd/conf/httpd.conf
です。 。基本的なインストールでは変更する必要のない多くの構成ステートメントが含まれています。実際、基本的なWebサイトを稼働させるには、このファイルにわずかな変更を加えるだけで済みます。ファイルは非常に大きいので、この記事を不要なものでいっぱいにするのではなく、変更する必要のあるディレクティブのみを示します。
まず、少し時間を取って、httpd.conf
を参照します。 それに慣れるためのファイル。ほとんどの構成ファイルのRedHatバージョンについて私が気に入っていることの1つは、ファイル内のさまざまなセクションと構成ディレクティブを説明するコメントの数です。 httpd.conf
ファイルは非常によくコメントされているので、例外ではありません。これらのコメントを使用して、ファイルの構成内容を理解してください。
最初に変更する項目は、Listen
です。 ステートメント。Apacheがページ要求をリッスンするIPアドレスとポートを定義します。現在、このWebサイトをローカルマシンで利用できるようにする必要があるため、localhost
を使用してください 住所。終了すると、線は次のようになります。
Listen 127.0.0.1:80
このディレクティブをlocalhost
のIPアドレスに設定します 、Apacheはローカルホストからの接続のみをリッスンします。 Webサーバーがリモートホストからの接続をリッスンするようにする場合は、ホストの外部IPアドレスを使用します。
DocumentRoot
ディレクティブは、Webサイトのページを構成するHTMLファイルの場所を指定します。その線はすでに標準の場所を指しているため、変更する必要はありません。行は次のようになります:
DocumentRoot "/var/www/html"
ApacheインストールRPMは、/var/www
を作成します ディレクトリツリー。 Webサイトのファイルが保存されている場所を変更する場合は、この構成アイテムを使用して変更します。たとえば、www
に別の名前を使用したい場合があります Webサイトの識別をより明確にするためのサブディレクトリ。これは次のようになります:
DocumentRoot "/var/mywebsite/html"
シンプルなウェブサイトを作成するために必要なApache構成の変更はこれらだけです。この小さな演習では、httpd.conf
に1つだけ変更が加えられました。 ファイル-Listen
指令。他のすべては、動作するWebサーバーを生成するようにすでに構成されています。
ただし、もう1つの変更が必要です。ファイアウォールでポート80を開くことです。ファイアウォールとしてiptablesを使用しているので、/etc/sysconfig/iptables
を変更します HTTPプロトコルを許可するステートメントを追加します。ファイル全体は次のようになります:
# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
追加した行は下から3番目で、ポート80での着信トラフィックを許可します。次に、変更したiptables構成をリロードします。
[root@testvm1 ~]# cd /etc/sysconfig/ ; iptables-restore iptables
index.htmlファイルを作成します
index.html
fileは、特定のHTMLファイル名ではなく、ドメイン名のみを使用してWebサイトにアクセスしたときにWebサーバーが提供するデフォルトのファイルです。 /var/www/html
内 ディレクトリで、index.html
という名前のファイルを作成します 。コンテンツを追加するHello World
。これを機能させるためにHTMLマークアップを追加する必要はありません。 Webサーバーの唯一の仕事はテキストデータのストリームを提供することであり、サーバーは日付が何であるか、またはそれをどのようにレンダリングするかを知りません。データストリームを要求元のホストに送信するだけです。
ファイルを保存した後、所有権をapache.apache
に設定します 。
[root@testvm1 html]# chown apache.apache index.html
Apacheを起動
Apacheは非常に簡単に起動できます。 Fedoraの現在のバージョンはsystemd
を使用します 。次のコマンドを実行して起動し、サーバーのステータスを確認します。
[root@testvm1 ~]# systemctl start httpd
[root@testvm1 ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: active (running) since Thu 2018-02-08 13:18:54 EST; 5s ago
Docs: man:httpd.service(8)
Main PID: 27107 (httpd)
Status: "Processing requests..."
Tasks: 213 (limit: 4915)
CGroup: /system.slice/httpd.service
├─27107 /usr/sbin/httpd -DFOREGROUND
├─27108 /usr/sbin/httpd -DFOREGROUND
├─27109 /usr/sbin/httpd -DFOREGROUND
├─27110 /usr/sbin/httpd -DFOREGROUND
└─27111 /usr/sbin/httpd -DFOREGROUND
Feb 08 13:18:54 testvm1 systemd[1]: Starting The Apache HTTP Server...
Feb 08 13:18:54 testvm1 systemd[1]: Started The Apache HTTP Server.
コマンドはサーバーによって異なる場合があります。 SystemV開始スクリプトを使用するLinuxシステムでは、コマンドは次のようになります。
[root@testvm1 ~]# service httpd start
Starting httpd: [Fri Feb 09 08:18:07 2018] [ OK ]
[root@testvm1 ~]# service httpd status
httpd (pid 14649) is running...
ホストにFirefoxやChromeなどのWebブラウザがある場合は、URL localhost
を使用できます。 ブラウザのURL行に、Webページをそのまま表示します。 LynxのようなテキストモードのWebブラウザを使用してWebページを表示することもできます。まず、Lynxをインストールします(まだインストールされていない場合)。
[root@testvm1 ~]# dnf -y install lynx
次に、次のコマンドを使用してWebページを表示します。
[root@testvm1 ~]# lynx localhost
私のターミナルセッションでは、結果は次のようになります。ページの空きスペースをたくさん削除しました。
Hello World
<snip>
Commands: Use arrow keys to move, '?' for help, 'q' to quit, '<-' to go back.
Arrow keys: Up and Down to move. Right to follow a link; Left to go back.
H)elp O)ptions P)rint G)o M)ain screen Q)uit /=search [delete]=history list
次に、index.html
を編集します ファイルを作成し、HTMLマークアップを少し追加して、次のようにします。
<h1>Hello World</h1>
次に、ブラウザを更新します。 Lynxの場合は、Ctrl+Rのキーの組み合わせを使用します。結果は少し異なります。テキストはカラーです。これは、端末がカラーをサポートしている場合にLynxが見出しを表示する方法であり、中央に配置されています。 GUIブラウザでは、テキストは大きなフォントになります。
Hello World
<snip>
Commands: Use arrow keys to move, '?' for help, 'q' to quit, '<-' to go back.
Arrow keys: Up and Down to move. Right to follow a link; Left to go back.
H)elp O)ptions P)rint G)o M)ain screen Q)uit /=search [delete]=history list
別れの考え
この小さな演習からわかるように、ApacheWebサーバーをセットアップするのは簡単です。詳細は、ディストリビューションとそのディストリビューションが提供するApacheのバージョンによって異なります。私の環境では、これはかなり些細なことでした。
しかし、Apacheは非常に柔軟で強力であるため、さらに多くのことがあります。来月は、Apacheの単一インスタンスを使用して複数のWebサイトをホストする方法について説明します。
この記事は元々2018年に公開され、編集者によって更新されました。