水瓶座列車

どこまで行けるか、とりあえず発車します。

Webサーバーを構築する手順(Raspberry Pi とUbuntu)

 

Raspberry Pi (以下ラズパイ)や Linux で勉強できることの1つにWebサーバー構築がありますが、

ここでは、代表的なWebサーバーである Apache2 と Nginx の構築手順を書いていきます。

Webサーバーがあると、HTML/CSSPHPJavaスクリプトなどを勉強することができます。

基本的には、ローカル環境( LAN内 )で動作することが良いですが、

インターネット( WAN )上に外部公開することも可能です。

また、インターネット( WAN )上にWebサーバーを公開するやり方は、

Webサーバー構築以外の知識や手順が必要になりますので、

どのようにやれば良いかの足掛かりとして、少しだけ触れたいと思います。

 

それでは、ラズパイで Webサーバーの Apache2 と Nginx を構築する手順について、解説していきます。

使用環境は、ラズパイで Raspberry Pi OS を使用しますが、

Raspberry Pi OS のベースである Ubuntu OS でも同様の手順で構築できます。

 

 

 

 

 

1.Apache2とNginxの比較について

 

先ほども言いましたが、代表的なWebサーバーは、Apache2とNginxですが、

それぞれの特徴について、メリット・デメリットとして下表にまとめてみました。

サーバー名 メリット デメリット
Apache2

・長く使用されているので安定性がある。

・豊富なモジュールと拡張機能がある。

・動的コンテンツの処理に適している。

・Nginx より処理速度が低い場合がある。

・Nginx よりメモリ使用量が多い場合がある。

Nginx

・Apache2 より処理速度が速い

・Apache2 よりメモリ使用量が少ない。

・静的コンテンツの処理に適している。

・動的コンテンツの扱いは適していない。

・Apache2 より機能が少ない。

 

 

次項から、Apache2 と Nginx の構築手順を書いていきますが、

自分が使用したいWebサーバーの構築手順を見て頂ければと思います。

 

 

2.Apache2 の構築手順

 

Apache2 のインストール手順

 

Apache2 のインストールは、下記で行います。

$ sudo apt install -y apache2

 

インストールが完了した瞬間から、Apache2 が動作し、自動起動設定になっています。

 

 

Apache2 の動作確認手順

 

ブラウザからラズパイのIPアドレスを入力してアクセスします。

下図のように、Apache2 のデフォルトサイトが表示されたら動作確認は完了です。

 

 

Apache2 の設定ファイル

 

apache2 の設定ファイルなどは、/etc/apache2 フォルダ配下にあります。

Webサーバーの設定としては、apache2.conf ファイルを、

サイトの設定としては、sites-available フォルダ配下のファイルをよく触ります。

設定内容の説明については、ここでは省略しますが、

Apache2やNginxで複数サイトを設定する手順を解説(Raspberry Pi と Ubuntu) - 水瓶座列車

で、ドメイン設定やHTMLファイルを置くルートディレクトリの設定など詳細に書いていますので、

参考にしてみてください。

 

また、設定ファイルを変更した場合は、Apache2 サーバーを再起動します。

Apache2 サーバー再起動は、下記で行います。

$ sudo systemctrl restart apache2

 

 

3.Nginx の構築手順

 

Nginx のインストール手順

 

Nginx のインストールは、下記で行います。

$ sudo apt install -y nginx

 

インストールが完了した瞬間から、Nginx が動作し、自動起動設定になっています。

 

 

Nginx の動作確認手順

 

ブラウザからラズパイのIPアドレスを入力してアクセスします。

下図のように、Nginx のデフォルトサイトが表示されたら動作確認は完了です。

 

 

Nginxの設定ファイル

 

Nginx の設定ファイルなどは、/etc/nginx フォルダ配下にあります。

Webサーバーの設定としては、nginx.conf ファイルを、

サイトの設定としては、sites-available/default ファイルをよく触ります。

設定内容の説明については、ここでは省略しますが、

Apache2やNginxで複数サイトを設定する手順を解説(Raspberry Pi と Ubuntu) - 水瓶座列車

で、ドメイン設定やHTMLファイルを置くルートディレクトリの設定など詳細に書いていますので、

参考にしてみてください。

 

また、設定ファイルを変更した場合は、Nginx サーバーを再起動します。

Nginx サーバー再起動は、下記で行います。

$ sudo systemctrl restart nginx

 

 

 

4.Apache2 と Nginx の自動起動・停止設定

 

Apache2 や Nginx は、インストールした時点で、自動起動ONの状態になっています。

 

自動起動をOFFにする設定は、それぞれ下記を実行します。

$ sudo systemctl disable apache2
$ sudo systemctl disable nginx

 

再び自動起動をONにする設定は、それぞれ下記を実行します。

$ sudo systemctl enable apache2
$ sudo systemctl enable nginx

 

 

また、自動起動をOFFにしても現在実行されているサーバーは、停止しません。

一時的に、サーバーを停止したい場合は、それぞれ下記を実行します。

$ sudo systemctrl stop apache2
$ sudo systemctrl stop nginx

 

また、停止しているサーバーを起動したい場合は、それぞれ下記を実行します。

$ sudo systemctrl start apache2
$ sudo systemctrl start nginx

 

 

補足で、上記コマンド内のサーバー名を apache2.service や nginx.service としても大丈夫です。

 

 

5.HTML/CSSファイルの置き場所について

 

自分で作成したHTMLファイルを表示させるには、/var/www/html フォルダにHTMLファイルを置きます。

2項や3項のWebサーバー動作確認で表示されていたHTMLファイルは、

Apache2:/var/www/html/index.html

Nginx:/var/www/html/index.nginx-debian.html

です。

 

これらのHTMLファイルをデフォルトページとしている設定ファイルは、

Apache2:/etc/apach2/mod-available/dir.conf

Nginx:/etc/nginx/sites-available/default

です。

 

WebサーバーがHTMLファイルを表示する際には、/var/www/html フォルダ内に、

特定のファイルがあるかを Apache2 や Nginx が判断して表示しています。

その特定ファイルとは、Apache2 の場合、dir.confファイルに、

「 DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm 」

の記述があり、

index.html から順にファイル名を検索して、初めに存在したファイルをブラウザに表示します。

Nginx も同様にdefaultファイルに記述されています。

 

自分のサイトを作成する場合には、Apache2 の index.html ファイルや Nginx の index.nginx-debian.html ファイルをバックアップしておいて、

これらの同様のファイル名で、自分のサイト内容に書き換える方法が簡単です。

 

また、/var/www/html フォルダ以下で、サイト毎にフォルダを作成したり、

画像ファイルや動画ファイルなどは、dataフォルダを作成して分けたりなど、

自分でフォルダ構成を考えてサイト作成を行うと良いです。

そして、基本的にHTML/CSSファイルを置くフォルダは、/var/www/html フォルダですが、

設定ファイルで変更することもできます。

変更のやり方は、

Apache2やNginxで複数サイトを設定する手順を解説(Raspberry Pi と Ubuntu) - 水瓶座列車

で、記載していますので、参考にしてみてください。

 

 

6.Webサーバーの外部公開について

 

ローカル環境( LAN )内のWebサーバーをインターネット( WAN )上に外部公開する場合には、

DDNS、ポート開放などの知識や設定、プロバイダのルールを事前に確認しておく必要があります。

 

Webサーバーのドメイン名をインターネット( WAN )上に公開するためにDDNSを使用するのですが、

永続的に外部公開したい場合には、有料のDDNSを使用する方が良いです。

ただ、どのような感じなのかテスト的に触ってみたい場合には、無料のDDNSがあります。

無料のDDNSを使用した外部公開の手順については、

無料のDDNSを取得してバッファローのルーターに設定する手順 - 水瓶座列車

で書いていますので、参考にしてみてください。

また、この記事内でも書いていますが、ポート開放にはセキュリティのリスクがありますので、

注意してください。

 

 

7.Apache2 と Nginx の共存について

 

Apache2 と Nginx を2つ同時に動作させることは、ポートを変えることでできますが、

ほとんどの場合は、1台のパソコンに1つのWebサーバーを稼働させる方が、設定や運用がやりやすいです。

 

 

8.Webサーバーで、できること

 

Webサーバーを構築できた後には、Webサーバーを利用して、できることがたくさんあります。

このブログでも、下記のようなWebサーバー関連の記事を書いていますので、参考にしてみてください。

 

Apache2やNginxで複数サイトを設定する手順を解説(Raspberry Pi と Ubuntu) - 水瓶座列車

HTML/CSSを独学で勉強するための始め方 - 水瓶座列車

PHPの始め方、基本構造やブラウザ表示までを解説 ( XAMPP & Apache2 & Nginx ) - 水瓶座列車

RedmineをUbuntu20.04にインストールする手順 - 水瓶座列車

 

 

9.最後に

 

Webサーバーの構築自体は、簡単ですが、その後の設定やサイト運営のやり方について、

作業がやりやすいやり方を見つけておくと良いです。

サーバー上のHTMLファイルを追加したり、編集は、Sambaサーバーを使用して、Windowsパソコン上で行うと楽です。

 

 

<関連・おすすめ記事>

Sambaサーバーの設定手順(Ubuntu20.04)とWindowsからのアクセス方法 - 水瓶座列車

Sambaサーバーの設定手順(RaspberryPi)とWindowsからのアクセス方法 - 水瓶座列車

Linux勉強用の中古パソコンおすすめショップランキング - 水瓶座列車

RaspberryPi (ラズパイ)の購入時に最低限必要なものとおすすめセット - 水瓶座列車

Raspberry Pi (ラズパイ)で役に立つ書籍のおすすめランキングベスト5 - 水瓶座列車

Raspberry Pi (ラズパイ) にOSをインストールする手順 - 水瓶座列車

ラズパイで使用できるセンサーキットのおすすめランキング - 水瓶座列車