WSL2を使ってWindows11からDjangoをデプロイしよう

WSL2からDjangoをデプロイ

前回の記事では、windowsにWSL2(Windows Subsystem for Linux)をインストールする方法を紹介しました。 では今日はWSL2を使ってDjangoをデプロイする方法を説明していきます。UbuntuサーバーからDjangoをデプロイする方法はこちらの記事を参考にしてください。 ※今回はwindows11で作業を行っています。SWL2であれば問題はないと思いますが、Windows11を使うことをお勧めします。 ※WindowsからDjangoはデプロイできますが、Hyper-VでNATネットワークをUbuntuにアサインしているためにデフォルトでは、Windowsマシン以外からDjangoアプリにアクセスができません。詳しい対応策はMicrosoftのWSLのGitHub Issueを見てください。 Ubuntuサーバーの起動 では前回の記事でインストールしたUbuntuサーバーを起動します。 Ubutnuサーバーの環境の確認 これから作業するにあたり、Linuxのコマンドに慣れていない人は簡単な早見表などを見ておくとよいです。 例えばCtl+Lで入力画面が一番上に来るのでキレイに見えます。 他に入力している途中でCtl+iを押すと推測したテキストが表示されます。長いファイル名の場合は最初の何文字か書いてCtrl+iで記入を終わられるのに便利です。 また、過去に実行したコマンドを見たい場合は上矢印で見ることができます。 UbuntuサーバーのIPアドレスを見てみます。 ip addrのコマンドで分かるようにeth0のインターフェースに172.18.173.157のIPアドレスがあることが分かります。 WindowsのホストマシンのコマンドプロンプトからPingをかけてみました。 リスポンスがあったので、ここからデプロイできそうです。 次にPythonが入っていることを確認します。 次にUbuntuソフトウェア、パッケージのアップデートをします。 Ubutnuユーザーをwww-dataグループに追加します。 ※これからの作業の注意点 Ubuntuユーザーを作成した際にsudoの権限がすでについています。rootに切り替えて作業せず、そのままsudo権限のあるユーザーのまま作業を行いましょう。理由はnginxやファイルの実行の際に権限が与えられていないとエラーが発生するからです。 Djangoデプロイに使うライブラリをUbuntuにインストール 下記のコマンドでUbuntuサーバーにグローバルにインストールしていきます。 PostgreSQLのデータベースを作成 ではこちらの参考Djangoのプロジェクトを使用してデプロイさせていくことにします。もしPostgreSQLを使ったことがない人は1時間くらいかけてデータベースのSQLコマンドを練習、理解してみてください。今後データベースのデータの修正やバックアップを取るためにコマンドラインを使っていくことになるので慣れておくとよいです。 postgresをインストールしたときに自動でpostgres というアドミン権限のユーザーが作成されます。 この権限を使って新しいデータベースとユーザーを作成します。 まずは、PostgreSQLのステータスを確認します。 PostgreSQLが起動できたらPostgresのユーザーに切り替えます。 これでユーザーが切り替わりSQLの入力モードになったことが分かります。 では、Djangoのsettings.pyに合わせたデータベースを作成していきます。 セミコロンを忘れずに! \lのコマンドでDBの一覧が表示されます。 これでpostgresユーザーがオーナーのデータベースが出来ました。 PostgreSQLのコンフィグレーション もしデータベースのオーナーをpostgres以外に設定したい場合は新しいPosgreSQLのユーザーを作成して所有権を移動させてください。 ではpostgresの接続をスムースにするためにコネクションパラメーターを変えます。 まずはエンコーディングをutf-8に変えます。 Postgresのタイムゾーンを日本時間に変えます。 Djangoのタイムゾーンがデフォルト(初期設定)でUTCにセットさせているのでそれを変更していない人はSettnigs.pyから変更しておきましょう。 次に、作成したユーザーにdb(データベース)のアドミン権限をつけます。 postgresは一旦完了なのでquitと入力してでpostgresから抜け出しましょう。 もしくはCtl+Zでも抜けられます。 Django用に仮想環境を作成 pythonではいくつか仮想環境のライブラリがありますが今回はvirtualenvを使用します。 仮想環境を使ったことがない人は詳しく理解しておいた方が良いですね。 簡単に説明すると同じサーバーで違うバージョンのライブラリを使いたいとき(例えばDjangoの3.0と4.0)に仮想環境をアクティベートして同じマシンでも同時に使用できる様になります。 また、複数人で仕事をするときもバージョンを統一してするために使います。 Pipの準備pipはpythonパッケージマネージャーでpythonのライブラリをインストールする際に使用しますね。 -HのフラグはsudoのコマンドでユーザーのhomeディレクトリではなくrootのHOMEディレクトリにインストールするように指示します。 まずはpipを最新のものにします。 … Read more

Windows 11 でWSL2(Windows Subsystem for Linux)を始めよう

今日はWindowsのPCからLinuxが使えるWSL2(Windows Subsystem for Linux)を紹介します。この機能により、GNU/Linuxを再現し、コマンドラインツール、ユーティリティ、アプリケーションがそのまま使えるようになります。他に似たようなアプローチでは下記の方法があります。 WSL2はWindowsのシステムをそのまま残したまま使えるので状況によっては有利になる場合もあります。しかし、100%のLinuxがそのまま使えるというわけではないので何ができないのか注意しておくことが必要ですね。 WSL2の特徴 WSL2の特徴はこのようになります。 WSL1とWSL2の違い 下記に前バージョンとの違いを比較しました。 特徴 WSL 1 WSL 2 バーチャルマシンに比較して使用する容量が少ない ✅ ✅ 最新版のVMwareとVirtualBoxで起動できる ✅ ✅ VM(バーチャルマシン)の管理 ❌ ✅ Linux Kernel(カーネル)をそのまま使用 ❌ ✅ すべてのシステムがそのまま使える(OSのアップデート、Dockerなど) ❌ ✅ このようにWSL2で機能的にかなり向上できたことが理解できますね。 WSL2インストールの下準備 WSL2を使用するためには下記のシステム条件をクリアしていることが前提になります。 WSL2の使用条件: Windows 10 のバージョン2004かそれより新しいもの(ビルド 19041以降) もしくは、 Windows 11 ではWindows10を使っている人は下記の手順でバージョンを確認してください。 WindowsボタンとRを同時に押します。 ここにwinverを入力しOKを押します。 これでWindowsのバージョンが確認できますね。 WSL2の機能をオンにする 次にWindowsの検索ツールから『役割と機能の追加ウィザード』を起動して、バーチャルマシンとWSLの二つにチェックを入れてOKを押します。Hyper-Vは関係ないので触らないでください。 PCを再起動するように言われるので一旦、再起動して戻ってきましょう。 MicrosoftストアからUbuntuをインストール ではWindowsにあるマイクロソフトストアからUbuntuを検索してインストールしましょう。 では、インストールが完了し、Ubuntuアプリを起動すると、コマンドプロントが起動され下記の様にユーザー名を設定することになります。 インストールが完了したら、下記のコマンドでUbuntuのバージョンを確認してみましょう。 これでUbuntuが起動できたことが確認できました。 今更気づいたのですが、UbuntuサーバーがインストールされたのでデスクトップのようなUIがないですね。でも、同じことがすべてコマンドラインからできるので問題ないです。 簡単に中身を見ていきましょう。 … Read more

Fedoraラップトップをコーディング用に設定しよう

fedoraセットアップ

前回の記事ではWindowsのPCからFedoraのPCに接続する方法を説明しました。 これからFedoraのノートパソコンでプログラミングをするにあたりおすすめの初期設定をコマンドと一緒に説明していきます。 アップデート ソフトウェアパッケージを最新に更新します。 日本語入力 コーディングに英語の入力は必須ですが、日本語の入力も使うので設定しておきます。Setting→Keyboard→Japanese(Anthy)を選択して、細かい設定でひらがな、ローマ字入力を選択しましょう。 Google Chrome グーグルクロームは必須ですね。インストールしておきましょう。 VSCode MicroSoftのGPGキーをインポートします。その後に、VSCodeのリポジトリを追加します。最後にインストールのコマンドでVSCodeのインストールを完了させます。 これでcodeのコマンドでVSCodeが開けるようになりました。 Git Gitはバージョンコントロールのツールでプログラミングでは必須です。 Node.js JavaScriptを使う人は必須ですね。 GitHubにSSHキーを追加 GitHubはリポジトリをアップロードするために使います。セキュリティが強化され使っているPCでSSHキーを生成して、GitHubに追加しましょう。詳しい説明はこちらを見てください。 catのコマンドで表示されたキーをGitHubに登録してOKです。 pip Pythonのパッケージマネージャーです。 プログラミングを進めていく上で他に使うものがあれば追加していきます。 お疲れ様でした。

Fedoraにリモートデスクトップをインストールして遠隔操作しよう

リモートデスクトップでFedoraに接続する

私は個人用のPCと作業用のノートパソコンを分けています。個人のPCから作業用のノートパソコンに遠隔で接続して操作したいときがありますよね。その場合に下記の方法があります。 RDP(リモートデスクトップ)の場合はWindowsのホストPCからローカルのIPを使って簡単に遠隔操作が可能になります。またTeamViewerとは違い初期設定でローカルからのアクセスしか許可されていないので安全です。 違うネットワークからアクセスしたい場合には他の方法を考えるかポートフォワーディングをしないといけないですが、これでラップトップを遠隔で操作できるようになります。今日はFedoraで使えるコマンドを使いながら説明していきます。 FedoraにXRDPをインストール XRDPはオープンソースでRDP(リモートデスクトップ)をLinux等にインストールできるソフトウェアです。 今回はLinuxのデスクトップを前提にしているのでサーバーにインストールする場合は先にデスクトップシステムをインストールしてUIを確保してください。 まずはOSのアップデートをしましょう。 次にXRDPをインストールします。 次に、XRDPをスタートさせます。 ファイヤーウォールの設定 XRDPが使用する3389ポートを開けましょう。 SELinuxの設定 システムでSELinuxによりXRDPのバイナリーのセキュリティ強化が必須になっております。下記のコマンドで設定しましょう。 これで使用できるようになりました。 接続情報の確認 では接続先のIPとユーザー名を確認します。 RDPで接続 ではクライアント側になるwindowsのPCからRDP(リモートデスクトップ)を起動して説明してみましょう。 次にパスワードを聞かれるので入力して次に進みます。 そうすると、接続しますかと聞かれるのでYesをクリックします。 これで接続できるようになりました。 ちなみに接続先のPCですでに同じログイン情報でログインされている場合ははじき出されれるので先にログアウトしておきましょう。 トラブルシュート 下記のファイルパスにログが残るので確認してみましょう。 /var/log/xrdp-sesman.log このようなログが見れるので原因を探ってみましょう。 ログインできるユーザーの数を増やす 先ほど述べた お疲れ様です。

Pop_OSでプログラミングに使える環境を構築しよう

POP_OSセットアップ

前回に紹介したようにVirtualBoxを使ってPop_OSをインストールしたらプログラミングで使えるように環境を準備していきます。もちろん他のLinuxのディストロでも同じことができるので好みのOSで試してください。 ソフトウェアの更新 インストールが完了した時点で先に行っておきたいことを紹介します。 プログラムのアップデートは下記のコマンドでもできます。 ターミナルを開いて下記のコマンドを入力しましょう。 UIの設定 Dock(ドック)を自動で隠す。 これは、個人的な好みになりますがこのツールバー(ドック)をウィンドウが重なるときに隠すようにすると見た目が良いです。Dock Visibility テキストエディタのインストール 好みのテキストエディタをインストールしましょう。私のおすすめはVSCodeです。 Pop!_Shopというロケットのアイコンを押して検索のところからVSCodeを入力します。 ではInstallのボタンからインストールします。 この際にflatpackとdebのパッケージマネジャーのどちらを使うか選ぶドロップダウンがあります。特にこだわりがなければどちらでもOKです。 Gitのインストール Gitはバージョンコントロールのツールでプログラマー必須の知識になります。初めての人は動画でもGitの使い方を紹介しているので参考にどうぞ。 では下記のコマンドからGitをインストールしていきます。 ではインストールが完了したらGitのコマンドが使えるか確認しましょう。 Node.jsをインストールする JavaScriptのパッケージマネジャーのnpmも一緒にインストールされます。これは、Web開発でほとんどの人が使うことになると思うので是非インストールしておきましょう。 sudo apt install nodejsのコマンドでもインストールされますが古いバージョンのNode.jsがインストールされてしまうのでリポジトリをアップデートして下記のコマンドで行います。 最後にnode -vのコマンドでバージョンが正しく表示されていればOKですね。 GoogleChromeをインストールする GoogleChromeはウェブ開発で必ず使いますね。では、これはPopShopからインストールできるのでChromeと検索してそのままインストールしていきましょう。 Pop_Shopからのインストールがうまくいかない場合は下記のコマンドでdebファイルを取得してGoogleChromeをインストールしましょう。 では下記のコマンドでGoogleChromeを起動してみましょう。もちろんアプリケーションにアイコンがあると思うのでそれから起動することができます。 もし、Dock(ドック)にお気に入りのアプリとして\追加したい場合はShow Applicationの中からGoogle Chromeのアイコンを右クリックしてピンさせるようにします。 また他に必要なアプリケーションがあり次第、追加していきたいと思います。 ではお疲れ様でした。

Pop!_OSをWindowsから起動する方法

WindowsからPopOSを起動する

今日は、windowsのPCからPop!_OSを起動する方法を説明します。 なぜこの方法が良いかを説明します。 WindowsでPop!_OSを使いたい理由 VirtualBoxをインストールする ではwindowsにPop!_OSをインストールする前に、この仮想環境を実行させるVirtualBoxをWindowsにインストールさせます。 これがホスティングマシンとなり、他のOSも色々インストールすることができます。 詳しい説明は下記の動画を見てください。 ではVirtualBoxがインストールできたら動画の通り、次に進みましょう。 Pop!_OSのインストールISOファイルを手に入れる では、公式サイトからインストールに必要なISOファイルをダウンロードします。 ISOファイルは使っているPCのグラフィックボードによって変わるので確認してからダウンロードしましょう。 VirtualBoxからインストールを開始する。 ではVirtualBoxを起動して、Newのボタンから新しいマシンを作成し、先ほどダウンロードしたPop_OSのISOを起動させるようにします。 次にインストールする場所を指定して、仮想マシンに割り当てるメモリを指定します。 最低でも4GB、理想的には8GBあるとサクサク動くと思います。 次にVirtualBoxのハードディスクを作成します。 ここで、ファイルタイプをVMDKにすることをお勧めします。特に自分のマシンだけでテストをするのであればどれを選んでも問題ありません。しかし、他のユーザーをファイルを共有する可能性があるのであれば、VMDKにしておくと後からファイルのエキスポートとインポートが楽になります。 ストレージのタイプはダイナミックにしておくと、仮想マシンで使った分だけホスト側のPCに負担がかかるので便利です。 では、内容を確認してCreate(作成)をクリックします。 メインの画面に仮想マシンができたことが確認できますね。 では、仮想マシンを起動してOSのインストールを始めていきます。 スタートアップのディスクの指定 初めてマシンを起動するとスタートアップに使うディスクを選ぶ画面が表示されます。 ここでAddを押して、Pop_OSのISOファイルを選択します。 では、Pop_OSが選択されていることを確認してChoose(選択)を押します。 ではマシンを起動しましょう。 マシンが頑張ってファイルを読み込んでいます。 画面の解像度を上げる では、インストールを進める前にPop_OSの解像度を上げます。 このままだとOKボタンが見えず次にすすめませんね。 歯車のアイコン→Displays→Resolutionから自分のPCの画面に合うような解像度を選択しましょう。ではApplyを押します。 インストールと初期設定の開始 では画面がまともになったところで言語の選択を進めます。 個人的には全部英語で進めることをお勧めしますが、日本語の設定もあるのでこれで進めてもOKです。理由は、今後、他のアプリケーション、ソフトウェアで操作をする際に日本語の設定がない可能性があり、英語で何でも操作していく良い練習になるからです」。 次にキーボードのレイアウトを設定します。 お使いのキーボードを選択しましょう。 次に、インストールを進めていきます。 下記の画像の箇所ではClean Installを選択します。 ※仮想マシンで割り当てたハードウェアにOSをインストールするのでErase Everthing(すべてを削除して)を記載してありますが、割り当てた部分のハードウェアのみがすべてフォーマットされるという意味です。 では、Erase and Installを選択します。 ユーザー名を指定します。 これがマシンで使うユーザー名になります。 次にパスワードを作成します。これは必ず使うので覚えられるものにしましょう。 パスワードの設定が終わるとハードディスクの暗号化をするか聞かれます。このデータは仮想マシンにあので普通の状況ではEncrypt(暗号化)する必要はありません。 ですのでDon’t Encryptを選択でOKです。 これでインストールが始まりましたね! お茶でも飲んでインストールが完了するのを待ちます。 インストールが終わったらデバイスの再起動を行い、仮想マシン(Pop_OS)を使用できるようになります。 細かい設定 ここからは細かい設定の説明を行います。おまけですね。 … Read more

Django REST APIを公開

DjangoAPI-Demo

皆さん、こんにちは。 今日は、PythonのウェブフレームワークDjangoで作成したREST APIを公開するので是非使ってみてください。 APIの概要 このAPIはコールセンターをイメージしたDBを構成し、CRUD操作(Create,Read,Update,Delete)を可能にしたAPIです。 もう一つにトークン認証でログインしたユーザーのみアクセスできるAPIもあります。 そちらは、81番ポートからアクセスしてください。今回はトークン認証の不要なAPIのみ紹介します。 使えるAPI 利用可能なAPI http://172.104.81.40/api/ このURL(URI)にアクセスすると、下記のように各URLからAPIにアクセスできます。 Office:オフィス情報のAPIです。 Staff:従業員のAPIです。Officeの情報が紐づいています。 Tickets:お客様からのコール情報に他のテーブル(スタッフ、店舗情報、チケットカテゴリ)が紐づいています。 Ticket-Categories:コールのカテゴリ情報です。 Company:企業情報です。 StoreS:各企業の店舗情報です。 Customer-contact:お客様の連絡先です。 Djangoセットアップの手順 下記のURLにソースコードがアップロードされているので自由にクローンして使ってください。 https://github.com/TraitOtaku/Django-TicketAppAPI Gitを使ってクローンからセットアップまでの手順です。 モデルの内容 各アプリのmodels.pyを参照して受け入れるデータタイプとデータが必須かどうかを確認してください。 blank=True, null=Trueの場合はデータがなしでもOKです。 シリアライザーの内容 各アプリのSerializers.pyが先ほどのDBとコミュニケーションをとるmodels.pyをシリアル化してAPIの役目をします。チケットの例でいうとReadのGETリクエストが来たときとその他のリクエストで別々のリスポンスを返すようにしています。その設定はViews.pyで行いますが、APIの内容はここで決めます。 https://github.com/TraitOtaku/Django-TicketAppAPI/blob/master/tickets/serializers.py UIからデータを操作してみる では、実際にDjangoのAPIのUIを使用してデータを操作してみましょう。 http://172.104.81.40/api/tickets/ 上記のJSONデータを入れてあげると、DjangoからAcceptのリスポンスが返されてデータが追加されました。 レコードの更新と削除 先ほど作成したレコードはIDが1で作成されました。このデータにアクセスするには下記のようにURLの最後にIDを追加すればOKです。 http://172.104.81.40/api/tickets/1/ そうするとDELETEのオプションと下記にPUTとPATCHのオプションが追加されるのでそこからレコードを削除するなり修正するなりできます。

複数のウェブサイトを一つのサーバーからデプロイする

複数のサイトを一つのサーバーからデプロイする方法

皆さん、こんにちは。 今日は今まで習ってきたウェブサイトのデプロイの仕方をちょっと工夫してみます。 特に、ドメインはいらないけど、複数のポートを開けておいて、各ポートに応じたウェブサイトがユーザーに届けられるようにしたい!という時を想定しています。 下記に、例を挙げます。 社内のアプリケーションで、複数のアプリケーションを同じサーバーからデプロイしたい。 プログラムのポートフォリオを同じサーバーにまとめておきたい。 しかし覚えておきたいのはIPアドレスでユーザーがアクセスできるという事は、HTTPSにできない。つまり、ユーザーとやり取りするデーターが暗号化できないので個人情報のあるフォーム等を使う事は絶対に避けましょう。 もし、ドメインを購入して、ドメインごとに対応したウェブサイトを同じサーバーからデプロイすることもできるので、その場合は別の記事を参考にしてください。 今日の目的 Ubuntuサーバーから2つのサイトをデプロイさせる。ユーザーはIPアドレスとポートを見てそれぞれのサイトにアクセスできるようにする。 今日の環境 Ubuntu 22.04 下準備 では、下記の記事にnginxのセットアップの仕方が記載されているので、まずはそちらを見てください。 この記事の通りに進めてIPアドレスでNginxのデフォルトのページが見れるところまで進めてください。 サーバーブロックの設定 ここも前回の記事を参考に一つ目のサイトとなるファイルを作成していきます。 詳しい説明は前回の記事を参考にしてください。 各ウェブアプリケーション事でサイトを作成します。まずは一つ目のサイトをasameshisoft.comと名前を付けてそのフォルダーを作成します。 (今回はドメインは購入しないのでIPアドレスで参照します。) ランディングページを作りましょう。 今回はテストだけなので適当にテキストを書いておきます。 nginx Nginxの指定したsites-enabledディレクトリにリンクさせます。 nginxのテストをします。sucessと出れば成功です。 Nginxのサービスをリスタートします。 これでポート80をリッスンするサイトが完成しました。 2つ目のサイトのポートを開ける 今回はポート80と81を使ってサイトを公開します。ポート81はまだ何もしていないのでこれから設定していきましょう。 2つ目のサイトを設定 先ほどと同じことを繰り返します。 ポートを81にして、サイト名(ただの名称)をasameshiapp.comにした場合です。 では2つのブラウザをオープンしてサーバーのIPとポートを指定してエンターします。 172.105.218.191:80 172.105.218.191:81 皆さんも自分のサーバーのIPで同じことを行い、それぞれのHTMLが返ってきたら成功です! ではお疲れさまでした。

UbuntuサーバーにNginxをインストールしよう

Install-nginx-on-Ubuntu

今日は前回作成した仮想マシンにインストールしたUbuntuサーバーにNginxをインストールしていきます。 仮想マシン(VirtualBox)にUbuntuサーバーをインストールする方法かこちらからどうぞ。 Nginxとは Nginx(エンジンエックス)はApacheと同じで、世界で最も使われているウェブサーバーのうちの一つです。 Ngnixは、軽量で、大規模なウェブサイトにも使えるエンタープライズレベルのアプリケーションになります。 今日の目的 この記事では、Ubuntuサーバー22.04にNginxをインストールして、ファイヤーウォールの設定、Nginxののプロセスを管理、そしてサーバーブロックを設定する方法を説明します。 準備しておくこと Ubuntuサーバーのある環境(今回はバージョン22.04) Ubutnuユーザーのログイン情報 必要に応じてドメインネームの取得 Nginxのインストール NginxはUbuntuのデフォルトのリポジトリで取得可能なためそこから簡単にインストールできます。今回はサーバーを設定したばかりなのでローカルパッケージをアップデートして最新のパッケージにアクセスできるようにしておきます。 Nginxの際にDo you want to continue?と聞かれるのでY(イエスの意味)を入力してエンターします。 ファイヤーウォールの設定 Nignixをテストする前にファイヤーウォールのソフトウェアを設定してNginxがサービスにアクセスできるようにします。 先ほどNginxをインストールした際にNginx自体がサービスとしてufw(Uncomplicated Firewall)に登録されています。 まずは、ufwに登録されているアプリケーションを一覧で見てみましょう。 アウトプットから見てわかるようにNginxから3つのプロフィールが作成されていることが分かります。 Nginx Full: ポート 80 (通常, 暗号化されていない)とポート 443 (TLS/SSL 暗号化されたトラフィック) Nginx HTTP: ポート80だけ Nginx HTTPS: ポート443だけ 今回はポート80しか使わないので下記のコマンドでポート80だけ開けておきます。もちろん、プロダクションの場合はHttps://を使うのでポート443を開けることになります。 このコマンドで、現在のステータスを確認しましょう。 もしStatusがinactiveとなっている場合はファイヤーフォールがアクティブになっていないのでこのコマンドでファイヤーオールを起動させます。 再度ステータスを確認するとアクティブになっていることが分かり、HTTPのファイヤーウォールも設定されていることが分かりますね。 ウェブサーバーの設定 Nginxをインストールした時点で、自動でウェブサーバーが起動して使える状態になっているはずです。 念のために確認しておきましょう。 アウトプットを見てわかるように、アクティブになっていることが分かります。 これでサーバーのIPアドレスにアクセスするとNginxのデフォルトのページが見れるはずです。 まずは、サーバーのIPアドレスを見つけましょう。 ifconfigのコマンドが使えない場合は、このコマンドでnet-toolをインストールしてくださいというメッセージが出ますね。インストールし再度ifconfigのコマンドを実行します。 もしVirtualBoxを使っている人は仮想マシンのSettingからNetworkにいき、Bridged Adapterになっていることを確認しましょう。 使用しているネットワークのインターフェースにもよりますが、enp0s3の方のinetが192.168.0.186になっていることが分かります。loの方はローカルの方なので関係ないです。 もしレンタルサーバーとかを使っている方はパブリックIPが分かるはずなのでそれを自身のブラウザに入力します。 これで、Nginxが正しく起動されていることが分かりました。 … Read more

UbutnuサーバーをVirtualBoxにインストールしよう

皆さん、お疲れ様です。

今日は、Ubutnu ServerのISOファイルを使って、VirtualBoxにインストールする作業を説明します。

Ubutnu のデスクトップバージョンも同じやり方でできますし、他のLinuxも同じ方法なので是非試してみてください。

特にお金のかかるサーバーをレンタルする前のテストにはもってこいです!

今日の環境

  • Windows10(VirtualBoxのホストPC、OSで何でもOKです。)
  • ホストPCのメモリが8G以上(理想は16G以上)
  • VirtualBoxがインストールされた状態
  • UbutnuServer22.04

VirtualBoxってなに?

VirtualBoxはOracle社が提供している仮想マシンのアプリケーションのことです。MicrosoftではHyper-Vという同じような仮想マシンを提供しています。他に、有名なものではVMWareというものもあります。

動画ではVirtualBox(以下、略してVB)のインストールから説明しているのでご覧ください。

ISOファイルをダウンロード

Ubuntuの公式サイトからUbuntu ServerのISOファイルをダウンロードしておきます。

https://ubuntu.com/download/server

VBインスタンスを作成

Instanceは事例、という意味ですが、プログラマーの世界では、プロジェクトの意味合いに近いものになります。

では、早速Newのボタンを押して新しいインスタンス(プロジェクト)を作成します。これが各OSがインストールされる仮想マシンになるわけですね。

で、マシン名と、メモリのサイズを指定していきます。サーバーだけならデスクトップよりもメモリは食わないので4Gあれば足りるかな?私は8Gに設定しておきました。これは後から調整できるので色々試してください。

で、Createをクリック。

ファイルサイズを指定します。

使用目的にもよりますが、使うと思う分のハードディスクを割り当ててください。

Hard Disk File Typeは、仮想マシンのファイル端子のことです。他の人とシェアしないならどれでも構わないと思います。

私はVMDKを選びました、これならエキスポートした仮想マシンファイルをVirtualBox以外のアプリケーションにインポートすることができます。

Storage on physical hard diskはハードディスクの容量をどのように区切るかの設定です。

通常はDynamically allocatedでOKです。これは、指定した分を実際にハードディスクから削り取るのではなく、使った分だけダイナミックにホストPCから割り当てるという事になります。

これで問題なければCreateを押します。

ネットワークの設定

では、インスタンスがハイライトされた状態でSettingsを押して詳細を確認します。 

ネットワーク設定を見てみましょう。

もし同じLANネットワークで使用したいのであればBrige Networkを使用しましょう。

その場合は、ホストPCが192.168.1.5とかなら、192168.5.16などの同じネットワークのIPが割り当てられます。

NATの場合はちょっと複雑になります。私の場合はとりあえずこのままでOKにしておきます。

インストールするOSを指定

ではStartボタンからマシンを起動しましょう。

そうするとスタートアップに使用するででディスクを指定してくださいというメッセージが出ます。

フォルダのアイコンをクリックしましょう。

Addを押します。

では、ダウンロードしておいたUbuntuサーバーのISOファイルを指定します。

Chooseを押します。

ではStartを押してマシンを起動しましょう。

Ubuntuサーバーのインストール

ではインストールが始まるので言語選択の画面になるまで待ちます。

日本語がないので英語で進めていきます。私はプログラミングは全部英語で行っています。皆さんも同じ習慣をつけることをお勧めします。

ではEnglishがハイライトされた状態でエンターを押します。

キーボードの設定をします。

キーボードのタブボタンを使って上下にスクロールします。スクロールアップの場合はシフトを押しながらタブになります。LayoutをJapanese、VariantをJapaneseにしましょう。

完了したらDoneを選択します。

特にハードディスクに制限がない場合は通常版のサーバーをインストールしましょう。

minimizedバージョン(軽量版)をインストールしても後から変更できるのでどっちでもOKです。

選択したらDoneをクリックします。

ネットワークの設定をします。

これも後から変更できるのでそのままにしてDoneにしましょう。

次のプロキシアドレスの設定も後から行うのでそのままdoneにします。

これもそのままDoneでOKです。

ストレージはヴァーチャルボックスで割り当てた分をUbuntuサーバーで使用できるようになっているのでデフォルトのまま次に進みましょう。

では全体のサマリーをみて問題がなさそうならdoneを押します。

そうすると確認のメッセージが出るのでContinueを選択しエンター。

Ubutnuのユーザーを作成します。

これはログインの際に使います。

こんな感じで適当に入力できたらDoneを押します。

次にオープンSSHサーバーをインストールするか聞かれます。

もしSSHの意味が分からない人は下記に説明の動画があるので見てみてください。

要約すると、ホスト側(ユーザー側)のPCのコマンドライン(シェル、コマンドプロンプト、ターミナル)からサーバー側のマシンにアクセスするためのツールになります。

これは必須の知識なので是非、練習してみましょう。

ですので、タブとエンターキーを使ってInstall Open SSHServerにチェックを入れてDoneを選択します。

次に他にインストールしたいアプリケーションがあれば選択してください。

個人的にnextcloudのファイル管理アプリが楽しそうだと思いました。

とりあえず今回はスキップするのでそのままDoneを選択します。

インストールが始まります。

インストールが完了したら下のオプションからReboot Nowを選択してマシンを再起動します。

バーチャルボックス側ではインストール用のISOファイルは外れると思いますが、一応それを確認して、サーバーが起動できることを確認します。

サーバーを再起動

サーバーを再起動すると先ほど設定したパスワードを聞かれます。

パスワードの部分は打っても何も動かないですが、入力されています。

ログイン情報を入力したらエンターを押します。

これでログインができました!

とりあえずUbuntu Serverがインストールできたので今日はこれでおしまいにします。

この後はサーバーの更新、初期設定をしたり、SSHで接続してWebサーバーを設定していきたいと思います。

良かったら他の記事も参考にしてください。

ではお疲れ様です。