Microsoft Azure Windows Server 2016 Datacenter 無料試用版で、外部参照可能な PHP Laravel Server を起動するっ!

1.概要

 

 最近、AWS や今回記事に取り上げる Microsoft Azure に、Windows が含まれていることに気づいている人は、どれくらいいるのでしょうか。どちらも無料利用枠が設定されており、該当する Instance であれば、12ヶ月無料で利用することができます。一年間、無料で利用できるというのは、意外に実用に耐え得る期間だと思われないでしょうか。今回は、Microsoft Azure の Windows Server 2016 Datacenter を無料試用版の Standard B1s(CPU:1 Memory:1GB)を使用して立ち上げて、local(127.0.01) からだけでなく、外部参照が可能な状態で PHP Laravel Server を起動する方法を説明します。

 

つまり、Windows Server 2016 Datacenter の Laravel の動かせる Web Server が 12ヶ月無料で利用できるっ!

 

complete_image

complete_image

これが、起動完了イメージです。手元の Ubuntu 19.04 から RDP で Microsoft Azure Windows Server 2016 Datacenter に接続、xampp から ApacheMySQL を起動して、手元の chrome から Server 上の Apache に接続しているところです。

 

 

2.仮想マシン Windows Server 2016 Datacenter の作成

 

 初めに、Microsoft Azure にアカウントを作成します。これは、説明は不要でしょう。各種情報を設定して、アカウントを作成します。

 

 Microsoft Azure : https://azure.microsoft.com/ja-jp/

 

Microsoft Azure Login

 

Login したら、右上の「ポータル」ページに移動し、上の方に並んでいる「Azure サービス」アイコンから、「Virtual Machines」に移動します。移動したら、左上にある「+追加」ボタンを押して、新しい Windows Server 2016 Datacenter を作成します。2019年11月11日現在、このページには上の方に「クラシックVMをお探しですか?Azure MarketplaceからVMを作成する」と言うリンクがあります。ここをクリックして、既存のVMを選ぶと間違いがありません。クリックすると、VM一覧と検索用テキストボックスがありますので、「Free account virtual machine」を探すか、検索して「作成」ボタンから作成します。

 

ここでひとつ注意しなければならないのは、12ヶ月無料で利用できるサイズは、「Standard B1s」だけとなる点です。上記のVMを選択した場合は、このサイズが規定値となっています。そして、「リソースグループ」、「イメージ」、「仮想マシン名」、「ユーザー名」、「パスワード」、「受信ポート選択」等、空白部分を入力し、「確認および作成」ボタンで次へ移ります。「リソースグループ」には、「A1」など何でも構いません。「イメージ」には言うまでもなく「Windows Server 2016 Datacenter」、「受信ポート選択」では、予め選択されている「RDP」の他、「HTTP(80)」、「HTTPS(443)」、「SSH(22)」もチェックを入れておきます。問題がなければ、「検証に成功しました」と表示されるので、「作成」ボタンから作成します。

 

作成中は、「デプロイが進行中です」と表示さているので、しばらく待つと、「デプロイが完了しました」と表示され自動的に起動するので、「リソースに移動」ボタンで移動します。

 

Detail of Virtual Machine

Detail of Virtual Machine

既にVMは起動しているので、RDP で接続するために、右の方に、「コンピュータ名」、「オペレーティングシステム」などとVMの情報が表示されています。その中の「パブリックIPアドレス」の値をコピーします。

 

Connect to VM

Connect to VM

私は今、Ubuntu 19.04 を使用して作業をしている為、RDP 接続に「Remmina」を使用していますが、ご自分の環境で利用できる RDP ソフトウェアを利用します。Windows の場合は「リモートデスクトップ接続」と言うソフトウェアが使えます。先程コピーした「パブリックIPアドレス」と、VM作成時に設定したユーザー名、パスワードを指定して接続します。

 

Connecting

Connecting

どうでしょうか。無事、接続できたでしょうか。

 

 

3.環境設定

 

 接続できたら、環境設定を行います。インストールした状態では、IE しか Browser がありませんが、必要なソフトウェアをインストールするのに「IE Enhanced Security Configuration」が有効になっている為、各種ソフトウェアが download できません。起動した状態では、「Server Manager」が起動しているはずですから、「Server Manager」の左側のメニューから「Local Server」を選択し、右側に表示される「IE Enhanced Security Configuration」から、「Administrator」と「Users」を off にします。

 

IE Enhanced Security Configuration

IE Enhanced Security Configuration

これで、IE を利用して各種ソフトウェアの download が可能になりますので、適ほど Firefoxchrome、圧縮解凍ソフトなど必要なソフトウェアをインストールします。

 

また、Windows メニューから設定を開いて、「Time & language」から、「Date & time」と「Region & language」を設定しておきます。

 

Time & Language Setting

Time & Language Setting

 

 

4.xampp のインストール

 

 そして、PHPMySQL をインストールする為に、xampp をインストールします。これはご存知の通り、Web Server に必要な各種ソフトウェアをパッケージにしたものです。下記のリンクから Windows 用のインストーラーを download してインストールします。

 

www.apachefriends.org

 

xampp のインストールが終わったら、xampp のコントロールパネルの ApacheMySQL の右側にあるチェックボックスを確認します。チェックがなければ、それぞれチェックを入れることで、インストールを行うことができます。

 

インストールが終わったら、php.ini の最低限の設定をしておきます。xampp のコントロールパネルにある Apache の「config」ボタンをクリックして php.ini を開きます。最後の方に 「date.timezone」を設定する行があるので、「date.timezone=Asia/Tokyo」に変更して保存します。

 

ApacheMySQL の「Start」ボタンを押して、起動します。正常に起動したら、接続を確認します。Browser から「http://127.0.01/dashboard/」を開きます。

 

Confirmed xampp

Confirmed xampp

どうでしょうか。正常に開くことができたでしょうか。

 

 

5.Laravel のインストール

 

 xampp のインストールが終わると、もう、Web Server として使えます。今回は、Laravel も使いますから、こちらの準備をします。xampp をインストールしてあるので、php は既に入っています。Windowsコマンドプロンプトを開いて、「Composer」 をインストールします。

 

C:\bin>echo @php "%~dp0composer.phar" %*>composer.bat

 

ご存知の通り「Composer」 の Windows 版には Installer が用意されているので、こちらを利用してインストールしても構いません。

 

getcomposer.org

「Composer」のインストールが終わったら、「Laravel」をインストールします。

 

composer global require "laravel/installer=~1.1" 

 

readouble.com

これで、Laravel のインストールも完了しました。新しい Laravel Project を作成して確認します。コマンドプロンプトから「C:\xampp\htdocs」に移動して laravel 用のディレクトリを作成します。ここでは「laravel」とします。そして、このディレクトリに移動し、「larave new blog」を実行することで「blog」project を作成することができます。

 

cd c:\xampp\htdocs

md laravel

cd laravel

laravel new blog

 

作成したら、Laravel に接続してみます。Browser から「http://127.0.0.1/laravel/blog/public/」を開いて確認します。

 

Connect to local laravel

Connect to local laravel

問題なく動作したでしょうか。

 

 

6.外部参照の設定

 

 VMを作成した際に、「受信ポート選択」から「HTTP(80)」を選択してあるので、Microsoft Azure の Virtual Machines の右側にある設定メニュー「ネットワーク」を開くことで、「受信ポートの規制」に「HTTP」が入っていることを確認できます。もし、設定していなければ、ここで設定します。

 

Network Configration

Network Configration

そして、Windows Server 側も同様に HTTP(80) Port を許可する設定を行います。Server Manager を開いて右側のメニューから「Local Server」を選択します。次に「Windows Firewall」を選択するとコントロールパネルが開くので、右側のメニューにある「Advanced settings」を選びます。すると「Windows Firewall with Advanced Security」のウィンドウが開くので、右側のメニューにある「Inbound Rules」を選択し、右側の「Action」メニューにある「New Rule...」をクリックします。

 

New Inbound Rule Wizard

New Inbound Rule Wizard

「New Inbound Rule Wizard」ウィンドウが開くので「Port」を選択し「Next」を押します。

 

Protocol and Ports

Protocol and Ports

「Protocol and Ports」に変わるので「Specific local Ports:」に「80」を入力して「Next」を押します。

 

Allow the connection

Allow the connection

「Action」の選択へ変わるので「Allow the connection」が選択されていることを確認して「Next」を押します。

 

Profile

Profile

「Profile」の選択へ変わるので、すべて選択されていることを確認して「Next」を押します。

Name

Name

最後に「Name」の設定に変わり、入力を求められます。今回は、HTTP(80) の Port を許可する設定なので、名前と説明を適ほど入力し、「Finish」を押して完了です。

Confirm

Confirm

Windows Firewall with Advanced Security」に、先程設定した HTTP(80) の設定が追加されていれば、問題ありません。

 

7.確認

 

 外部接続の設定を行ったので、手元の環境から接続を確認します。RDP 接続で確認した Windows Server の「パブリックIPアドレス」を使って、「http://xxx.xxx.xxx.xxx/laravel/blog/public」を Browser から開きます。

 

Connect to server from public address

Connect to server from public address

上手く接続できたでしょうか。
これで、localhost(127.0.0.1)からだけでなく、外部参照(外部アクセス)可能な、Windows Server 2016 Datacenter による PHP Laravel Server が起動しました。

 

8.補足

 

 Microsoft Azure Windows Server 2016 Datacenter で Laravel Server をほぼ一年間利用して気づいたことを補足しておきます。システム自体には問題なく、不具合も発生しませんでした。気をつけなければならないのは、知らない内に課金が発生していることが多いということです。今回紹介している無料試用版で利用できるリソースは、例えばストレージであれば、P6 SSD × 2 です。VMを作成する際に試行的に利用したリソースも確実に削除しておく必要があります。この際、「Virtual Machine」のメニューで表示されるものだけでなく、「すべてのリソース」のメニューで確認する必要があることです。

知らずに課金が発生してしまったリソースについては、その旨、サポートへ伝えることでキャンセルが可能です。しばらく運用して、意図しない課金に気づいたら、問合せてみることができます。

 

以上