Raspberry Pi (以下ラズパイ)やLinuxで勉強できることの1つにWebサーバー構築がありますが、
ここでは、代表的なWebサーバーであるApache2とNginxの構築手順を書いていきます。
Webサーバーがあると、HTML/CSS、Java、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サーバーを再起動が必要な場合があります。
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ファイルをよく触ります。
設定内容の説明については、ここでは省略します。
また、設定ファイルを変更した場合は、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フォルダを作成して分けたりなど、
自分でフォルダ構成を考えてサイト作成を行うと良いです。
6.Webサーバーの外部公開について
ローカル環境(LAN)内のWebサーバーをインターネット(WAN)上に外部公開する場合には、
DDNS、ポート開放などの知識や設定、プロバイダのルールを事前に確認しておく必要があります。
Webサーバーのドメイン名をインターネット(WAN)上に公開するためにDDNSを使用するのですが、
永続的に外部公開したい場合には、有料のDDNSを使用する方が良いです。
ただ、どのような感じなのかテスト的に触ってみたい場合には、無料のDDNSがあります。
無料のDDNSを使用した外部公開の手順については、
「無料のDDNSを取得してバッファローのルーターに設定する手順 - 水瓶座列車」
で書いていますので、参考にしてみてください。
また、この記事内でも書いていますが、ポート開放にはセキュリティのリスクがありますので、
注意してください。
7.Apache2とNginxの共存について
Apache2とNginxを2つ同時に動作させることは、ポートを変えることでできますが、
ほとんどの場合は、1台のパソコンに1つのWebサーバーを稼働させる方が、設定や運用がやりやすいです。
8.最後に
Webサーバーの構築自体は、簡単ですが、その後の設定やサイト運営のやり方について、
作業がやりやすいやり方を見つけておくと良いです。
サーバー上のHTMLファイルを追加したり、編集は、Sambaサーバーを使用して、Windowsパソコン上で行うと楽です。
<関連・おすすめ記事>
Linux勉強用の中古パソコンおすすめショップランキング - 水瓶座列車
HTML/CSSを独学で勉強するための始め方 - 水瓶座列車
RaspberryPi (ラズパイ)の購入時に最低限必要なものとおすすめセット - 水瓶座列車
Raspberry Pi (ラズパイ)で役に立つ書籍のおすすめランキングベスト5 - 水瓶座列車
Raspberry Pi (ラズパイ) にOSをインストールする手順 - 水瓶座列車