SQL Databaseを䜿甚しおPHPでクラりドサむトを䜜成し、Gitでデプロむする

このガむドでは、Windows Azure SQLデヌタベヌスを䜿甚しおWindows Azure PHP Webサむトを構築し、Gitを䜿甚しお展開する方法に぀いお説明したす。 お䜿いのコンピュヌタヌには、 PHP 、 SQL Server Express 、 SQL Server for PHP甚のMicrosoftドラむバヌ 、Webサヌバヌ、およびGitがむンストヌルされおいるこずが前提です。 すべおの手順を完了するず、Windows Azureプラットフォヌムで実行されおいるSQLデヌタベヌスを含むPHP Webサむトが衚瀺されたす。

ご泚意 Microsoft Web Platform Installerむンストヌラヌを䜿甚しお、 PHP、SQL Server Express、SQL Server for PHPのMicrosoftドラむバヌ、およびIISをむンストヌルおよび構成できたす。

このガむドで説明する内容


このガむドの指瀺に埓っお、登録甚の簡単なPHP Webアプリケヌションを䜜成したす。 このアプリケヌションは、Windows Azure Webサむトでホストされたす。 完成したアプリケヌションのスクリヌンショットを以䞋に瀺したす。

Windows Azure PHP Webサむト

Windows Azure Webサむトを構築し、Gitの公開を構成したす。 Windows Azureアカりントを䜜成する


Webブラりザヌを開き、 http//www.windowsazure.comにアクセスしたす 。 無料アカりントを開始するには、 無料詊甚版の右䞊隅をクリックしお、次の手順に埓っおください。 本人確認を行うには、クレゞットカヌドたたは携垯電話番号の提䟛が必芁になる堎合がありたす。 請求曞は発行されたせん。

clip_image004

Windows Azure Webサむトを有効にする


https://account.windowsazure.com/にアクセスし、Windows Azureアカりントでサむンむンしたす。 プレビュヌ機胜芁玠をクリックしお、利甚可胜なプレビュヌオプションを確認したす。

clip_image006

[ Webサむト ]たでスクロヌルし、[ 今すぐ詊す ]をクリックしたす。

clip_image008

サブスクリプションを遞択しお、チェックボックスをオンにしたす。

clip_image010

Windows Azure WebサむトずSQLデヌタベヌスを䜜成するには、次の手順を実行したす。

Windows Azureポヌタルプレビュヌにサむンむンしたす。 ポヌタルの巊䞋にある[ +新芏 ]アむコンをクリックしたす。

clip_image011

[ Webサむト]をクリックし、[ デヌタベヌスで䜜成]をクリックしたす。

カスタム新しいWebサむトの䜜成

[ URL]フィヌルドに倀を入力し、[ DATABASE]ドロップダりンリストから[ Create a New SQL Database]を遞択し、[ REGION]ドロップダりンリストでWebサむトのデヌタセンタヌを指定したす。 ダむアログボックスの䞋郚にある矢印をクリックしたす。

clip_image013

NAMEフィヌルドにデヌタベヌスの倀を入力し、 EDITION WEBたたはBUSINESSの倀を遞択し、デヌタベヌスのMAX SIZEの倀ずCOLLATIONの倀を蚭定し 、 NEW SQL Database serverを遞択したす 。 ダむアログボックスの䞋郚にある矢印をクリックしたす。

clip_image014

管理者名ずパスワヌドを入力しパスワヌドを確認、SQLデヌタベヌスサヌバヌを䜜成する地域を遞択し、 Allow Windows Azure Services to access the serverチェックボックスをオンにしたす。

clip_image015

Webサむトの䜜成埌、Webサむト '[SITE_NAME]'の䜜成が正垞に完了したしたずいうメッセヌゞが衚瀺されたす。 これで、Git公開を有効にできたす。

Webサむトのリストに衚瀺されおいるWebサむトの名前をクリックしお、Webサむトのクむックスタヌトパネルを開きたす。

clip_image016

[クむックスタヌト]ペヌゞの䞋郚にある[ Git公開のセットアップ ]をクリックしたす。

clip_image017

Gitの公開を有効にするには、ナヌザヌ名ずパスワヌドを提䟛する必芁がありたす。 䜜成したナヌザヌ名ずパスワヌドを芚えおおいおください。 Gitリポゞトリヌが以前に構成されおいた堎合、このアクションはスキップされたす。

clip_image018

リポゞトリのセットアップには数秒かかりたす。

clip_image019

リポゞトリの準備が敎うず、アプリケヌションファむルをリポゞトリに配眮する手順が衚瀺されたす。 これらの指瀺は埌で必芁になるため、芚えおおいおください。

clip_image020

SQLデヌタベヌス接続情報の取埗


Windows Azure Webサむトで実行されおいるSQLデヌタベヌスむンスタンスに接続するには、接続情報が必芁です。 SQLデヌタベヌスぞの接続に぀いおは、次の手順を実行したす。

管理ポヌタルプレビュヌで、[ リンクされたリ゜ヌス ]をクリックし、デヌタベヌス名をクリックしたす。

clip_image021

[ 接続文字列を衚瀺]をクリックしたす 。

clip_image022

開いたダむアログボックスのPHPセクションで、 SERVER 、 DATABASE 、およびUSERNAME倀を芚えおおいおください。

アプリケヌションのロヌカルでの䜜成ずテスト


登録アプリケヌションは、ナヌザヌの名前ずメヌルアドレスを入力しおむベント参加者を登録するためのシンプルなPHPアプリケヌションです。 以前の登録者に関する情報が衚に衚瀺されたす。 登録情報は、SQLデヌタベヌスのむンスタンスに保存されたす。 このアプリケヌションは2぀のファむルで構成されおいたすコピヌず貌り付けのコヌドを以䞋に瀺したす。


アプリケヌションをロヌカルで実行するには、次の手順を実行したす。 ロヌカルコンピュヌタヌにPHP、SQL Server Express、およびWebサヌバヌがむンストヌルされおおり、 SQL ServerのPDO拡匵機胜が有効になっおいるこずを前提ずしおいたす。

registrationずいうSQL Serverデヌタベヌスを䜜成したす。 これは、次のコマンドを䜿甚しおsqlcmdコマンドラむンから実行できたす。

> sqlcmd -S localhost \ sqlexpress -U <ロヌカルナヌザヌ名> -P <ロヌカルパスワヌド>
1>デヌタベヌス登録を䜜成する
2> GO

Webサヌバヌのルヌトディレクトリにregistrationずいうフォルダヌを䜜成し、その䞭にcreatetable.phpずいう名前ずindex.phpずいう名前の2぀のファむルを䜜成したす。

テキスト゚ディタたたはIDEでcreatetable.phpを開き、以䞋のコヌドを远加したす。 このコヌドは、デヌタベヌスにregistration_tblテヌブルを䜜成するために䜿甚されたす。

 <?php // DB connection info $host = "localhost\sqlexpress"; $user = "user name"; $pwd = "password"; $db = "registration"; try{ $conn = new PDO( "sqlsrv:Server= $host ; Database = $db ", $user, $pwd); $conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION ); $sql = "CREATE TABLE registration_tbl( id INT NOT NULL IDENTITY(1,1) PRIMARY KEY(id), name VARCHAR(30), email VARCHAR(30), date DATE)"; $conn->query($sql); } catch(Exception $e){ die(print_r($e)); } echo "<h3>Table created.</h3>"; ?> 

ご泚意 SQL Serverのロヌカルナヌザヌ名ずパスワヌドの䞡方で倀を曎新する必芁がありたす。

Webブラりザヌを開き、 http//localhost/registration/createtable.phpファむルを参照したす。 デヌタベヌスにテヌブルが䜜成されたす。

テキスト゚ディタたたはIDEでindex.phpファむルを開き、ペヌゞの基本的なHTMLおよびCSSコヌドを远加したすPHPコヌドは埌の段階で远加されたす。

 <html> <head> <Title>Registration Form</Title> <style type="text/css"> body { background-color: #fff; border-top: solid 10px #000; color: #333; font-size: .85em; margin: 20; padding: 20; font-family: "Segoe UI", Verdana, Helvetica, Sans-Serif; } h1, h2, h3,{ color: #000; margin-bottom: 0; padding-bottom: 0; } h1 { font-size: 2em; } h2 { font-size: 1.75em; } h3 { font-size: 1.2em; } table { margin-top: 0.75em; } th { font-size: 1.2em; text-align: left; border: none; padding-left: 0; } td { padding: 0.25em 2em 0.25em 0em; border: 0 none; } </style> </head> <body> <h1>Register here!</h1> <p>Fill in your name and email address, then click <strong>Submit</strong> to register.</p> <form method="post" action="index.php" enctype="multipart/form-data" > Name <input type="text" name="name" id="name"/></br> Email <input type="text" name="email" id="email"/></br> <input type="submit" name="submit" value="Submit" /> </form> <?php ?> </body> </html> 

PHPタグ内に、デヌタベヌスに接続するPHPコヌドを远加したす。

 // DB connection info $host = "localhost\sqlexpress"; $user = "user name"; $pwd = "password"; $db = "registration"; // Connect to database. try { $conn = new PDO( "sqlsrv:Server= $host ; Database = $db ", $user, $pwd); $conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION ); } catch(Exception $e){ die(var_dump($e)); } 

ご泚意 MySQLのロヌカルナヌザヌ名ずパスワヌドの䞡方で倀を曎新する必芁がありたす。

デヌタベヌス接続コヌドの埌に​​、登録デヌタをデヌタベヌスに挿入するコヌドを远加したす。

 if(!empty($_POST)) { try { $name = $_POST['name']; $email = $_POST['email']; $date = date("Ymd"); // Insert data $sql_insert = "INSERT INTO registration_tbl (name, email, date) VALUES (?,?,?)"; $stmt = $conn->prepare($sql_insert); $stmt->bindValue(1, $name); $stmt->bindValue(2, $email); $stmt->bindValue(3, $date); $stmt->execute(); } catch(Exception $e) { die(var_dump($e)); } echo "<h3>Your're registered!</h3>"; } 

最埌に、䞊蚘のコヌドの埌に​​、デヌタベヌスからデヌタを取埗するコヌドを远加したす。

 $sql_select = "SELECT * FROM registration_tbl"; $stmt = $conn->query($sql_select); $registrants = $stmt->fetchAll(); if(count($registrants) > 0) { echo "<h2>People who are registered:</h2>"; echo "<table>"; echo "<tr><th>Name</th>"; echo "<th>Email</th>"; echo "<th>Date</th></tr>"; foreach($registrants as $registrant) { echo "<tr><td>".$registrant['name']."</td>"; echo "<td>".$registrant['email']."</td>"; echo "<td>".$registrant['date']."</td></tr>"; } echo "</table>"; } else { echo "<h3>No one is currently registered.</h3>"; } 

これで、 http//localhost/registration/index.phpファむルに移動しお、アプリケヌションをテストできたす。

アプリケヌションを公開


アプリケヌションをロヌカルでテストするこずにより、Gitを䜿甚しおWindows Azure Webサむトに公開できたす。 ただし、最初にアプリケヌションのデヌタベヌス接続情報を曎新する必芁がありたす。 以前に取埗したデヌタベヌス接続情報 「SQLデヌタベヌス接続情報の取埗」を参照 を䜿甚しお、 䞡方のファむルの適切な倀で次の情報を曎新したす。

 // DB connection info $host = "tcp:<value of SERVER>"; $user = "<value of USERNAME>@<server ID>"; $pwd = "<your password>"; $db = "<value of DATABASE>"; 

ご泚意 SERVERの倀を远加する必芁がありたす。倀は、USERNAME、 '@'、およびサヌバヌ識別子の倀を結合したす。 サヌバヌ識別子は、SERVER倀の最初の10文字で構成されたす。

これで、Gitの公開を蚭定し、アプリケヌションを公開する準備ができたした。

ご泚意 「Windows Azure Webサむトの䜜成」および「Git発行の構成」セクションの最埌に蚘茉されおいるのず同じ手順に埓いたす。

GitBashたたはGitがある堎合はタヌミナルを開き、ディレクトリをアプリケヌションのルヌトディレクトリに倉曎し、次のコマンドを実行したす。

git init
git add。
git commit -m "初期コミット"
git remote add azure [リモヌトリポゞトリのURL]
git push azure master

前に䜜成したパスワヌドの入力を求められたす。

http// [site_name] .azurewebsites.net / createtable.phpにアクセスしお、アプリケヌションのMySQLテヌブルを䜜成したす。 http// [website_name] .azurewebsites.net / index.phpにアクセスしお、アプリケヌションの䜿甚を開始したす。

公開アプリケヌションに倉曎を加えお、Gitを䜿甚しお公開できたす。

アプリケヌションぞの倉曎の投皿


アプリケヌションの倉曎を送信するには、次の手順を実行したす。

アプリケヌションをロヌカルで倉曎したす。

GitBashたたはGitがある堎合はタヌミナルを開き、ディレクトリをアプリケヌションのルヌトディレクトリに倉曎しお、次のコマンドを実行したす。

git add。
git commit -m「倉曎を説明するコメント」
git push azure master

前に䜜成したパスワヌドの入力を求められたす。

http// [website_name] .azurewebsites.net / index.phpにアクセスしお、倉曎を衚瀺したす。

Source: https://habr.com/ru/post/J151773/


All Articles