この記事では、古いノートパソコンをフォーマットし、UbuntuをインストールしてApacheサーバーとして利用する手順を紹介します。
はじめに
不要になったノートパソコンをフォーマットし、UbuntuをインストールしてApacheサーバーとして再活用する方法を解説します。本記事では、Ubuntuのインストール手順、Apacheのセットアップ、ファイアウォール設定、さらにセキュリティ対策まで、簡単に説明します。
準備するもの
この記事では以下のものを使います。
●不要になった古いノートパソコン
昔使っていた古いノートパソコンなどがあれば、それを使用します。
私は2012年に購入したノートパソコンを使用しています。
昔のものなのでスペックは低いですがUbuntuを動かすには十分で、サクサク動作します。
そのうち、ハードディスクあたりがぶっ壊れるかも…
●ミニPC(できれば)
古いノートパソコンがない方にはミニPCがおすすめです。
手のひらに乗るコンパクトさで、最近はスペックの高いものが安価でそろっています。
安いミニPCのレビューを見ていると、インストールされているWindowsがボリュームライセンスのものであったりして、ライセンス違反になる可能性などあるようですが、OSをUbuntuに書き換えてしまうのであれば問題ありません。
(ですが、やはり信頼できるところからの購入をオススメします。)
minisforumは台湾のメーカーで日本法人もある信頼できるメーカーだと思います。
上記のミニPCは性能を抑えたモデルですが、Windowsでも軽い作業であれば問題なく使えるほどのスペックで、Ubuntuであればさらに快適に使用できるのでオススメです。
●Ubuntuの本
Ubuntuに慣れていない人は1冊本を買っておくと体系的に勉強ができ、全体像が把握しやすいです。
本で体系的に勉強し、ネットで最新の情報を取り入れる勉強法がオススメです。
Windowsで慣れていると
Viエディタやファイルの権限でいきなり躓くよね
Ubuntuのインストール
作業内容
UbuntuのISOファイルをダウンロード
Ubuntu Japanese Teamの提供するUbuntuをダウンロードします。
日本語対応が行われており、日本語のインターフェースやドキュメントが提供されているため、日本人が使いやすい環境が整っています。
- Ubuntu Japanese Teamのホームページへアクセス
以下のリンクからUbuntu Japanese Teamのホームページにアクセスします。
https://www.ubuntulinux.jp/ - Ubuntuをダウンロード
「Ubuntuのダウンロード」→「日本語Remixイメージのダウンロード」→任意のミラーサイトから「ubuntu-ja-22.04-desktop-amd64.iso」をダウンロードします。
Rufusなどのツールを使ってISOファイルをUSBメモリに書き込む
- Refusのサイトにアクセスし、ソフトをダウンロード
以下のリンクからRefusをダウンロードします。
https://rufus.ie/ja/ - 起動可能なUSBメモリの作成
パソコンにUSBメモリを挿して、refusを起動します。
「デバイス」に挿したUSBメモリを指定、「ブートの種類」にダウンロードしたUbuntuのISOファイルを指定し、他の項目が自動で埋められたことを確認したら、「スタート」を押下します。
その後出てくるダイアログはそのまま「OK」で進めばUSBメモリの作成が完了します。
ノートパソコンにUSBメモリを挿し、BIOS画面でUSBからブート
- USBメモリをPCに挿し、BIOSモードで起動
PCの電源が切れた状態でUSBメモリをPCに挿し、PCを起動します。
PCを起動後すぐに、BIOSを起動するためのキーを押します。
BIOSを起動するためのキーはパソコンによって異なるので、お使いのパソコンの起動方法を調べてください。 - USBからブート
BIOSが起動したら、メニューの中にUSBメモリからブートする項目があるはずなので、それを選択するとUSBメモリから起動が始まります。
Ubuntuをインストール
Ubuntuのインストーラーが起動したら、画面の指示に従ってインストールします。
この時に「ディスクを削除してUbuntuをインストール」を選択することで、古いノートパソコンのデータが完全に削除されて、サラの状態にUbuntuがインストールされます。
データは完全に削除され、Windowsも起動することができなくなります。
それでも問題のないノートパソコンを使用してください。
Ubuntuが正常に起動すればインストールは成功です。
Ubuntuの初期設定
Ubuntuは日々、機能やセキュリティが向上したアップデートが更新されています。
最新のバージョンで保つようにしておきましょう。
端末を開いて、以下のコマンドを入力します。
sudo apt update
sudo apt upgrade
SSHでリモートログイン
別のPCからTeraTerm等を使ってリモート接続できるようにSSHを設定します。
1.SSHサーバーのインストール
sudo apt install openssh-server
2.SSHサーバーの起動
SSHサーバーをインストールしたら、「systemctl enable」コマンドで自動起動設定を行い、次に「systemctl start」でSSHサーバーを起動します。
最後に、「systemctl status」でsshサーバーの状態を確認し、「active」になっていれば完了です。
sudo systemctl enable ssh
sudo systemctl start ssh
sudo systemctl status ssh
3.IPアドレスの確認
他のPCからリモート接続するために、UbuntuPCのIPアドレスを調べます。
ip a
Wifiルーターがローカルネットワーク内に自動でIPアドレスを割り振っていると思いますので、そのアドレスを確認します。
DHCPを使用していると、次回PCを起動したときに違うIPアドレスが振られてしまう可能性もあるので、固定のIPアドレスを割り振るとなお良いですね。
4.他のPCからSSHで接続
メインで使っているWindows等のPCでTeraTermをインストールし、「TCP/IP」を選択
ホストに手順3で調べたIPアドレスを入力して、サービスは「SSH」を選択。最後に「OK」を押下します。
Ubuntuで作成したユーザーの「ユーザー名」「パスフレーズ」を入力して、ログインに成功すれば完了です。
ここからは、LinuxのCUI操作に慣れるために、
WindowsなどのメインPCから操作することを前提にします。
Apacheをインストールしてウェブサーバーを構築
UbuntuでWebサイトを公開するために、Apacheをインストールします。
1.Apacheのインストール
sudo apt install apache2
2.Apacheの動作確認
インストール後に、ブラウザで「http://”UbuntuPCのIPアドレス”」にアクセスし、Apacheのデフォルトページが開けばインストールは完了です。
3.Apacheのドキュメントルートを変更
デフォルトのドキュメントルートを変更して、任意のディレクトリでウェブファイルを管理できるように設定します。
通常、ブラウザからサーバーに対してHttpでポート80にアクセスすると、デフォルトパスに設定されたディレクトリに保存されたhtmlファイルが応答されますが、
この設定を行うことで任意のディレクトリに置いたhtmlファイルが応答されるようになります。
ここではユーザーのホームディレクトリに変更したいと思います。
以下のディレクトリを作成します。
sudo mkdir -p /home/username/www/html
次にApache設定ファイルを編集します。
以下のコマンドで設定ファイルをnanoエディタで開きます。
cd /etc/apache2
sudo nano apache2.conf
以下のように修正します。
ドキュメントルートを変更するので設定も変更先に対して行われるようにする必要があります。
【修正前】
<Directory /var/www/html/>
Options -Indexes +FollowSymLinks
AllowOverride None
Require all granted
</Directory>
【修正後】
<Directory /home/username/www/html/>
Options -Indexes +FollowSymLinks
AllowOverride None
Require all granted
</Directory>
次に「sites-available」の中にあるファイル設定をしていきます。
「000-default.conf」の設定を書き変える必要がありますが、apacheを破壊しないようにコピーを作成して編集します。
ファイル名はなんでも結構です。
sudo cp 000-default.conf hoge.conf
コピーしたファイルのDocumentRootを編集します。
【修正前】
DocumentRoot /var/www/html
【修正後】
DocumentRoot /home/username/www/html
次に編集した「hoge.conf」を有効にします。
sudo a2dissite 000-default.conf
sudo a2ensite hoge.conf
000-default.confを無効にして、hoge.confを有効にします。
これで、ドキュメントルートがユーザーの下にある/home/username/www/html/に変更されました。
Apacheは「apache2.conf」の中で、「sites-enabled」の中にあるconfファイルを読み込むようにで設定されています。
「sites-enabled」の中に入っているファイルは、「sites-available」のシンボリックリンクになっています。
「sites-available」でいろんな設定ファイルを作っておき、状況に応じて有効にしたい設定ファイルのシンボリックリンクを「sites-enabled」の中に作ればいいです。
シンボリックリンクを作成、削除するコマンドが「a2dissite」「a2ensite」です。
最後にApacheを再起動します。
sudo systemctl restart apache2
これでApacheのドキュメントルートを変更する作業は完了です。
Apacheのセキュリティ設定
今回、Apacheのウェブサーバーはローカルネットワーク内のみで使用を想定していますが、勉強のため最低限のセキュリティ設定を行います。
1.ディレクトリリスティングを無効にする
ディレクトリリスティングとは、Webサーバーに対してパス名でアクセスしたときに、そのパスに存在するファイルを一覧で表示する機能です。
この機能が有効のままだと、見られてはいけないファイルが見つかってしまったり、ディレクトリの構造が漏れて不正アクセスの足掛かりになるなど、セキュリティ上問題となります。
apache2.confの設定を以下の通り書き換えます。
【変更後】
<Directory /home/tbs/apache2/www/html/>
Options -Indexes +FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Indexesに「-」をつけることでオプションを無効にすることができます。
最後にApacheを再起動します。
sudo systemctl restart apache2
ファイアウォールの設定
Ubuntuでは、セキュリティのためにファイアウォールを設定して特定のポートのみ開放することが推奨されます。代表的なファイアウォールとして ufw
、iptables
、firewalld
があります。今回は「fairewalld」でHTTP(ポート80)を開放する手順を説明すると共に、他のファイアウォール設定のステータスを確認します。
1.ufwの確認
以下のコマンドでufwのステータスを確認します。
sudo ufw status
「非アクティブ」となっていれば、設定は無効になっています。
もし有効になっているようであれば、以下のコマンドで無効化します。
sudo ufw disable
2.iptablesの確認
以下のコマンドでiptablesのステータスを確認します。
sudo iptables -L
Chain INPUTの欄等にhttpの設定がされていないか確認します。
特に何もなければ設定はされていません。
3.firewalldの設定・確認
以下のコマンドでfirewalldをインストールします。
sudo apt install firewalld
firewalldを有効化します。
sudo systemctl enable firewalld
sudo systemctl start firewalld
httpとsshを有効にします。
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
以下のコマンドでfirewalldのステータスを確認します。
sudo firewall-cmd --list-all
以上でファイアウォールの設定は完了です。
PHPのインストール
UbuntuのApacheでPHPを動作させるためには、PHPのインストールとApacheとの連携が必要です。
以下のコマンドを実行します。
sudo apt update
sudo apt install php libapache2-mod-php
最後にApacheを再起動します。
sudo systemctl restart apache2
Gitからのファイルダウンロードと配置方法
Git(タグ1.0.0)で配信している「HTML」以下のプログラムをダウンロードし、Apacheの変更したドキュメントルート「/home/username/www/html/」に全てファイルを配置します。
ファイルの権限設定
UbuntuのApacheでドキュメントルートを変更して外部からアクセスできるようにするためには、ファイル・ディレクトリの適切な権限設定が必要です。
デフォルトでは、/home/username/
ディレクトリは外部からアクセスできない場合が多いです。
アクセスできない権限に設定されている場合、メインPCからアクセスしたときに正常にアクセスすることができません。
そのため、以下のコマンドで最低限の権限を設定します。
sudo chmod -R 755 /home/username/www
まとめ
以上で、全ての設定は完了です。
以下の記事で紹介しているラズパイpico Wのシステムと組み合わせて温湿度のグラフがブラウザで表示されることを確認してください。
コメント