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ヶ月無料で利用できるっ!
これが、起動完了イメージです。手元の Ubuntu 19.04 から RDP で Microsoft Azure Windows Server 2016 Datacenter に接続、xampp から Apache と MySQL を起動して、手元の chrome から Server 上の Apache に接続しているところです。
2.仮想マシン Windows Server 2016 Datacenter の作成
初めに、Microsoft Azure にアカウントを作成します。これは、説明は不要でしょう。各種情報を設定して、アカウントを作成します。
Microsoft Azure : https://azure.microsoft.com/ja-jp/
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)」もチェックを入れておきます。問題がなければ、「検証に成功しました」と表示されるので、「作成」ボタンから作成します。
作成中は、「デプロイが進行中です」と表示さているので、しばらく待つと、「デプロイが完了しました」と表示され自動的に起動するので、「リソースに移動」ボタンで移動します。
既にVMは起動しているので、RDP で接続するために、右の方に、「コンピュータ名」、「オペレーティングシステム」などとVMの情報が表示されています。その中の「パブリックIPアドレス」の値をコピーします。
私は今、Ubuntu 19.04 を使用して作業をしている為、RDP 接続に「Remmina」を使用していますが、ご自分の環境で利用できる RDP ソフトウェアを利用します。Windows の場合は「リモートデスクトップ接続」と言うソフトウェアが使えます。先程コピーした「パブリックIPアドレス」と、VM作成時に設定したユーザー名、パスワードを指定して接続します。
どうでしょうか。無事、接続できたでしょうか。
3.環境設定
接続できたら、環境設定を行います。インストールした状態では、IE しか Browser がありませんが、必要なソフトウェアをインストールするのに「IE Enhanced Security Configuration」が有効になっている為、各種ソフトウェアが download できません。起動した状態では、「Server Manager」が起動しているはずですから、「Server Manager」の左側のメニューから「Local Server」を選択し、右側に表示される「IE Enhanced Security Configuration」から、「Administrator」と「Users」を off にします。
これで、IE を利用して各種ソフトウェアの download が可能になりますので、適ほど Firefox や chrome、圧縮解凍ソフトなど必要なソフトウェアをインストールします。
また、Windows メニューから設定を開いて、「Time & language」から、「Date & time」と「Region & language」を設定しておきます。
4.xampp のインストール
そして、PHP と MySQL をインストールする為に、xampp をインストールします。これはご存知の通り、Web Server に必要な各種ソフトウェアをパッケージにしたものです。下記のリンクから Windows 用のインストーラーを download してインストールします。
xampp のインストールが終わったら、xampp のコントロールパネルの Apache、MySQL の右側にあるチェックボックスを確認します。チェックがなければ、それぞれチェックを入れることで、インストールを行うことができます。
インストールが終わったら、php.ini の最低限の設定をしておきます。xampp のコントロールパネルにある Apache の「config」ボタンをクリックして php.ini を開きます。最後の方に 「date.timezone」を設定する行があるので、「date.timezone=Asia/Tokyo」に変更して保存します。
Apache、MySQL の「Start」ボタンを押して、起動します。正常に起動したら、接続を確認します。Browser から「http://127.0.01/dashboard/」を開きます。
どうでしょうか。正常に開くことができたでしょうか。
5.Laravel のインストール
xampp のインストールが終わると、もう、Web Server として使えます。今回は、Laravel も使いますから、こちらの準備をします。xampp をインストールしてあるので、php は既に入っています。Windows のコマンドプロンプトを開いて、「Composer」 をインストールします。
C:\bin>echo @php "%~dp0composer.phar" %*>composer.bat
ご存知の通り「Composer」 の Windows 版には Installer が用意されているので、こちらを利用してインストールしても構いません。
「Composer」のインストールが終わったら、「Laravel」をインストールします。
composer global require "laravel/installer=~1.1"
これで、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/」を開いて確認します。
問題なく動作したでしょうか。
6.外部参照の設定
VMを作成した際に、「受信ポート選択」から「HTTP(80)」を選択してあるので、Microsoft Azure の Virtual Machines の右側にある設定メニュー「ネットワーク」を開くことで、「受信ポートの規制」に「HTTP」が入っていることを確認できます。もし、設定していなければ、ここで設定します。
そして、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」ウィンドウが開くので「Port」を選択し「Next」を押します。
「Protocol and Ports」に変わるので「Specific local Ports:」に「80」を入力して「Next」を押します。
「Action」の選択へ変わるので「Allow the connection」が選択されていることを確認して「Next」を押します。
「Profile」の選択へ変わるので、すべて選択されていることを確認して「Next」を押します。
最後に「Name」の設定に変わり、入力を求められます。今回は、HTTP(80) の Port を許可する設定なので、名前と説明を適ほど入力し、「Finish」を押して完了です。
「Windows Firewall with Advanced Security」に、先程設定した HTTP(80) の設定が追加されていれば、問題ありません。
7.確認
外部接続の設定を行ったので、手元の環境から接続を確認します。RDP 接続で確認した Windows Server の「パブリックIPアドレス」を使って、「http://xxx.xxx.xxx.xxx/laravel/blog/public」を Browser から開きます。
上手く接続できたでしょうか。
これで、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」のメニューで表示されるものだけでなく、「すべてのリソース」のメニューで確認する必要があることです。
知らずに課金が発生してしまったリソースについては、その旨、サポートへ伝えることでキャンセルが可能です。しばらく運用して、意図しない課金に気づいたら、問合せてみることができます。
以上