WindowsでLinuxベースのローカル開発サイトをホストする方法

Table of Contents

WindowsでLinuxベースのローカル開発サイトをホストする方法

ハンズオン:最終的にLinuxサーバーでホストされるウェブサイトを構築する場合(多くのサイトがそうであるように)、開発作業を行う場所についてはいくつかの選択肢があります。ウェブホストでサイトのベータ版を作成し、そこにすべてのファイルをアップロードするか、自宅やオフィスにローカルテストサーバーを構築するかです。

テストサーバーは、Raspberry Piなどの独立したLinuxマシンでも構いませんし、デスクトップOSとしてLinuxを使っている場合はメインのPCでも構いません。Windowsでコーディングしている場合は、ローカルのWindows Webサーバーを実行することもできますが、本番環境を完璧にシミュレートできるわけではありません。

代わりに、Windows Subsystem for Linuxを使って、MicrosoftのOS内でローカルLinuxウェブサーバーを実行することをお勧めします。こうすることで、Windowsでコードを記述しながら、本来のプラットフォーム上で実行することができ、別のコンピューターやリモートサーバーは必要ありません。手順は以下のとおりです。

まず、Windows Subsystem for Linux 2(WSL 2)をインストールします。PowerShell(任意のバージョン)を起動し、以下を入力します。

wsl --install --no-distribution

次に、LinuxディストリビューションとしてAlmaLinux 9をインストールします。デフォルトでは、WSLを--no-distributionオプション付きでインストールしないとUbuntuがインストールされますが、ほとんどのウェブホスティングプラットフォームはCentOSまたはAlmaLinux(CentOSに類似)を使用しているため、今回はそちらを使用します。Microsoft StoreでAlmaLinux 9を見つけてインストールをクリックします。

Microsoft Store の AlmaLinux OS 9

Microsoft Store の AlmaLinux OS 9 - クリックして拡大

Windows Searchでショートカットアイコンを見つけて、AlmaLinux環境を起動してください。初めて起動する際は、ユーザー名とパスワードの設定を求められますのでご注意ください。

AlmaLinuxのユーザー名を設定する

AlmaLinux のユーザー名を設定する - クリックして拡大

新しいLinuxインスタンスをインストールしたばかりなので、アップデートを実行してすべてを最新の仕様にする必要があります。AlmaLinuxで次のコマンドを入力します。

sudo dnf アップデート

次に、rootユーザーのパスワードを設定する必要があります。パスワードは必ず手元に保管しておいてください。

sudo パスワード ルート

次に、ウェブサーバーのコントロールパネルアプリをインストールします。多くのホスティングサービスではcPanelが使用されていますが、ライセンス料がかかるため、ここではVirtualminとWebminを使用します(Virtualminがサーバーを、Webminが各アカウントを管理します)。これらは無料の代替手段です。既にcPanelなどのアプリをお持ちの場合は、そちらを使用してください。Virtualmin / Webminをインストールするには、以下を入力します。

sudo sh -c "$(curl -fsSL https://software.virtualmin.com/gpl/scripts/virtualmin-install.sh)" -- --bundle LAMP

プロセス中に完全修飾ドメイン名(FQDN)の入力を求められた場合は、host.example.com のように入力してプロセスを先に進めてください。Virtualmin、Webmin、そしてローカルサイトへのアクセスにはIPアドレスを使用します。

Virtualminの完全修飾ドメイン名を入力してください

Virtualminの完全修飾ドメイン名を入力してください - クリックして拡大

インストールが完了すると、スクリプトによって末尾に:10000が付いたIPアドレスが提供されます。それをコピーしてブラウザに貼り付けてください。

Virtualminのインストール

Virtualmin のインストール - クリックして拡大

ブラウザに「接続はプライベートではありません」というエラーが表示されますが、そのまま続行してください。

接続がプライベートではありませんエラー

「接続はプライベートではありません」というエラー - クリックして拡大

Webminダイアログボックスに、ユーザー名「root」と、rootに割り当てたパスワードを入力します。その後、サインインします。

Webminログイン画面

Webmin ログイン画面 - クリックして拡大

「次へ」をクリックして、インストール後のウィザードを続行します。

Webmin インストール後ウィザード

Webmin インストール後ウィザード - クリックして拡大

「次へ」をクリックし、MariaDBのパスワードページまでデフォルト設定をそのまま使用します。ここで、パスワードをもっと覚えやすいものに変更することもできます。あるいは、少なくともパスワードをメモしておきましょう。

MariaDBのパスワードを設定する

MariaDB のパスワードを設定する - クリックして拡大

ネームサーバーページで「解決可能性のチェックをスキップ」にチェックを入れてください。これにより、host.example.comのような偽のドメイン名を使用しても、IPアドレスを使ってWebminにアクセスできるようになります。

解決可能性のチェックをスキップ

解決可能性のチェックをスキップ - クリックして拡大

[新しい仮想サーバーの追加]をクリックします。

新しい仮想サーバーの追加をクリック

新しい仮想サーバーの追加をクリック - クリックして拡大

新しい仮想サーバーに管理者パスワードと、トップレベルドメイン(.com、.eduなど)を持たないドメイン名を設定します。ここでは「mysite」というドメイン名を使用しました。「サーバーの作成」をクリックします。

サイトに名前を付けて「サーバーの作成」をクリックします

サイトに名前を付けて「サーバーの作成」をクリックします - クリックして拡大

さて、ウェブサイトに必要なアプリケーションをいくつかインストールしましょう。Virtualmin > Webアプリの管理に移動すると、利用可能なアプリケーションの一覧が表示されます。データベース管理にはphpMyAdmin、WordPressサイトを運営している場合はWordPressをインストールすることをお勧めします。

VirtualminのWebアプリの管理に移動します

Virtualmin の Web アプリの管理に移動します - クリックして拡大

これで、http://YOUR_IP_ADDRESS (私の場合は http://172.26.88.73) に移動してサイトのホームページを表示し、http://YOUR_IP_ADDRESS/phpmyadmin に移動してデータベースを管理できるようになります。

この時点で、ローカルサイトへのアクセスを容易にするために、IPアドレスの代わりに分かりやすい名前を付けると良いでしょう。C:\Windows\System32\drivers\etc\hostsファイルを編集し、任意の名前(例:mysite)とIPアドレスを追加してください。

ホストファイルにサイト名を追加する

ホストファイルにサイト名を追加します - クリックして拡大

ブラウザでローカルサイトを表示するには、名前の前に http を追加する必要があることに注意してください (例: http://mysite)。

次に、ウェブサイトのルートディレクトリであるpublic_htmlディレクトリを見つけて、パーミッションを設定します。Virtualminは、仮想サーバーの作成時に入力したサイトのドメイン名(この場合はmysite)でユーザーを作成します。つまり、関連するフォルダは/home/mysite/public_htmlにあります。

Linux コマンドラインで次のコマンドを入力して、このフォルダーへのアクセス許可を自分に付与します。

sudo chmod -R 777 /home/mysite

これで、ファイルエクスプローラーでLinux->AlmaLinux-9->home->mysite->public_htmlに移動して、サイトのファイルにアクセスできるようになります。

ファイルエクスプローラーでpublic_htmlフォルダを開く

ファイルエクスプローラーで public_html フォルダを開く - クリックして拡大

適切な権限が設定されていれば、サイトの開発作業を行い、http://YOUR_IP_ADDRESS または http://mysite にアクセスしてサイトの状態を確認できます。AlmaLinux WSL ターミナルウィンドウを開いたままにしておくと、ウェブサーバーが起動しません。®

Discover More