・VirtualBox Ubuntu WEBサーバー構築
- ブラウザ上に 仮想環境にて編集した画面 を表示させるサーバ構築をする
元々VirtualBox内にUbuntuがあったため動作環境は設定済
サイトから拾ってきた情報を元に簡易的なWebサーバ構築を仮想環境内で行う
(現在Linuxを学習中のため、手を動かしたいという思いもあり、試しに仮想環境ないでやってみた次第です)
コマンドプロンプトにてvi編集後、仮想環境内のブラウザにて編集したhtmlが表示できれば完成
1.サイト情報がyumコマンド:CentOSでなかったため”yumコマンドが見つかりません “と怒られエラーが続きはまる
パッケージインストールもできるとのことだったが、ディストリビューションの関係から
CentOS= yumコマンド
Ubuntu = aptコマンド
とのことらしい
2.再度新規でCentOSの仮想マシンを作成:この作業に関してもはまった
起動後top画面にて “no bootable medium fount halted” となりimageファイルが設定されていないことが分かりリファレンスからisoダウンロード
VirtualBox内>設定>ストレージ
落としたisoイメージを設定し無事起動
だが、初期設定時に”最小起動範囲”といった最小量メモリで作ってしまいGUIがない仮想マシンを作成してしまった...時間ロス
3.再び元あったUbuntuに戻り構築できるか試した結果
Ubuntuに関してはaptコマンドということを知り(ググって時間溶かした)改めて作業開始
エラー.ドメイン変更後のapache再起動にて ”httpd: Could not reliably determine the server’s fully qualified domain name”
Apacheの設定ファイル「httpd.conf」の「ServerName」が設定されていない時
にこのエラーが表示されるらしい
名前を localhost:80
と変換後解決
・作業工程
1.Apacheのインストール
ApacheはUbuntuのデフォルトのソフトウェアリポジトリで利用できるため、従来のパッケージ管理ツールを使用してインストールする
最初に、ローカルパッケージインデックスを更新、最新のアップストリームの変更を反映させる
$ sudo apt update
次に、apache2パッケージをインストール
$ sudo apt install apache2
2.ファイアウォール調整
Apacheをテストする前に、ファイアウォール設定を変更
外部からデフォルトWebポートへのアクセスを許可する必要がある
インストール中、ApacheはUFWに自らを登録し、ファイアウォールを介したApacheへのアクセスを有効/無効にするアプリケーションプロファイルをいくつか追加するらしい
ufwアプリケーションプロファイルを一覧表示する
$ sudo ufw app list
>> Output
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH
$ sudo ufw allow 'Apache'
変更を確認する
$ sudo ufw status
3.Webサーバの確認
Webサーバーは既に稼働している必要がある
Ubuntu 20.04がApacheを起動する
systemd initシステムでサービスが稼働中であることを確認する
$ sudo systemctl status apache2
デフォルトのApacheランディングページにアクセスして、ソフトウェアがIPアドレスを介して適切に実行されていることを確認する
サーバーのIPアドレスが分からない場合
$ hostname -I
サーバーのIPアドレスが分かったら、ブラウザのアドレスバーに入力
http:// <サーバのIPアドレス>
デフォルトのUbuntu 20.04 Apache webページが表示される
4.仮想ホストの設定
Apache Webサーバを使用している場合、仮想ホスト (Nginx のサーバーブロックに類似) を作成して設定の詳細をカプセル化し
単一のサーバーから複数のドメインをホストすることができる
<自分のIPアドレス部分>を自分の作成するドメイン名に置き換える必要がある
Ubuntu 20.04上のApacheには、/var/www/html
ディレクトリからドキュメントを提供するように設定されている “デフォルトで有効になっている1つのサーバーブロック” というものがある
これは単一のサイトではうまく機能するが、複数のサイトをホストしている場合は扱いにくいことがある
そのため /var/www/html
は変更をしない
代わりにクライアントの要求がどのサイトとも一致しないときに表示するデフォルトディレクトリとして/var/www/html
を配置
test_web_serverサイトの/var/www
内にディレクトリ構造を作成、test_web_serverのディレクトリを次のように作成する
$ sudo mkdir /var/www/test_web_server
$USER環境変数を使用してディレクトリの所有権を割り当てる
$ sudo chown -R $USER:$USER /var/www/test_web_server
所有者には読み取り・書き込み・実行可能権限を
グループには読み取り・実行可能権限のみをそれぞれ付与
$ sudo chmod -R 755 /var/www/test_web_server
nanoまたはお気に入りのエディタを使用し、サンプルindex.htmlページを作成
$ sudo nano /var/www/test_web_server/index.html
HTMLを追加
/var/www/test_web_server/index.html
<html>
<head>
<title>Hello!</title>
</head>
<body>
<h1>Webサーバ構築test</h1>
</body>
</html>
完了したら、ファイルを保存して終了
Apacheがこのコンテンツを提供するには、正しいディレクティブで仮想ホストを作成する必要がある
/etc/apache2/sites-able/000-default.conf
でデフォルトの設定ファイルを直接変更する代わりに
/etc/apache2/sites-available/test_web_server.conf
で新しい設定ファイルを作成
$ sudo nano /etc/apache2/sites-available/test_web_server.conf
次の構成ブロックに貼り付ける
/etc/apache2/sites-available/test_web_server.conf
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName test_web_server
ServerAlias www.test_web_server
DocumentRoot /var/www/test_web_server
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
ファイルを保存して終了
a2ensiteツールを使用し、次のようにファイルを有効にする
$ sudo a2ensite test_web_server.conf
000-default.confで定義されているデフォルトのサイトを無効にする
$ sudo a2dissite 000-default.conf
次に、設定エラーがないかテストをする
$ sudo apache2ctl configtest
次の出力が表示される
Output
Syntax OK
Apacheを再起動してこれらの変更を実装
$ sudo systemctl restart apache2
これで、Apacheがドメイン名を提供しているはず
html内にてUFT-8指定していないと文字化けしたので <!DOCTYPE> などある程度の作法は必要でした。
現在ping-tの学習をしているが、暗記しているだけの作業になってしまい学習自体の進捗があまりよろしくありません。
Amazonに少しではあるが設計や構築用の書籍があるので、これを機に参考程度に何冊か読んでみます。。