Raspberry Pi (以下ラズパイ)や Linux で勉強できることの1つにWebサーバー構築がありますが、
ここでは、代表的なWebサーバーである Apache2 と Nginx の構築手順を書いていきます。
Webサーバーがあると、HTML/CSS、PHP、Javaスクリプトなどを勉強することができます。
基本的には、ローカル環境( 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をインストールする手順 - 水瓶座列車
ラズパイで使用できるセンサーキットのおすすめランキング - 水瓶座列車