Создание облачного сайта на PHP с SQL Database и его развертывание с помощью Git

в 8:56, , рубрики: Git, php, windows azure, windows azure sql database, Блог компании Microsoft, Облачные вычисления, облачные сервисы

Это руководство содержит сведения по созданию веб-сайта PHP Windows Azure с Windows Azure SQL Database и его развертыванию с помощью Git. Предполагается, что на вашем компьютере установлены PHP, SQL Server Express, драйверы Microsoft для SQL Server для PHP, веб-сервер и Git. После выполнения всех действий вы получите веб-сайт PHP с базой данных SQL, работающий на платформе Windows Azure.

Примечание. Для установки и настройки PHP, SQL Server Express, драйверов Microsoft для SQL Server для PHP и служб IIS можно воспользоваться установщиком Microsoft Web Platform Installer.

О чем пойдет речь в данном руководстве:

  • Как создать веб-сайт Windows Azure и базу данных SQL с помощью портала управления (предварительная версия). Поскольку на веб-сайтах Windows Azure технология PHP включена по умолчанию, для выполнения кода PHP никакие особые действия не требуются.
  • Как публиковать и повторно публиковать приложения на платформе Windows Azure с помощью Git.

Следуя инструкциям в этом руководстве, вы создадите простое веб-приложение на языке PHP для регистрации. Это приложение будет размещено на веб-сайте Windows Azure. Снимок экрана готового приложения приведен ниже:

Windows Azure PHP Website

Создание веб-сайта Windows Azure и настройка публикации Git. Создание учетной записи Windows Azure

Откройте веб-браузер и перейдите на веб-сайт http://www.windowsazure.com. Чтобы приступить к работе с помощью бесплатной учетной записи, щелкните в верхнем правом углу Free Trial и выполните указанные действия. Для проверки личности может потребоваться указать номер кредитной карты или мобильного телефона. Счет при этом не выставляется.

clip_image004

Включение веб-сайта Windows Azure

Перейдите на страницу https://account.windowsazure.com/ и выполните вход с помощью учетной записи Windows Azure. Щелкните элемент preview features, чтобы увидеть доступные варианты предварительного просмотра.

clip_image006

Выполните прокрутку до пункта Web Sites и нажмите кнопку try it now.

clip_image008

Выберите подписку и установите флажок.

clip_image010

Чтобы создать веб-сайт Windows Azure и базу данных SQL, выполните следующие действия.

Войдите на портал Windows Azure (предварительная версия). В нижней левой части портала щелкните значок + New.

clip_image011

Щелкните WEB SITE, а затем CREATE WITH DATABASE.

Custom Create a new Website

Введите значение в поле URL, выберите Create a New SQL Database в раскрывающемся списке DATABASE и укажите центр обработки данных для веб-сайта в раскрывающемся списке REGION. Щелкните стрелку в нижней части диалогового окна.

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

После создания веб-сайта появится сообщение Creation of Web Site ‘[ИМЯ_САЙТА]’ completed successfully. Теперь можно включить публикацию Git.

Щелкните имя веб-сайта, отображаемого в списке веб-сайтов, чтобы открыть панель быстрого запуска (Quick Start) веб-сайта.

clip_image016

В нижней части страницы Quick Start щелкните Set up Git publishing.

clip_image017

Чтобы включить публикацию Git, необходимо указать имя пользователя и пароль. Запомните созданные имя пользователя и пароль. (Если репозиторий Git был настроен ранее, это действие пропускается.)

clip_image018

Настройка репозитория займет несколько секунд.

clip_image019

Когда репозиторий будет готов, появятся инструкции по помещению файлов приложения в репозиторий. Запомните эти инструкции, так как они понадобятся позднее.

clip_image020

Получение сведений о подключении к базе данных SQL

Чтобы подключиться к экземпляру базы данных SQL, запущенному на веб-сайтах Windows Azure, потребуются сведения о подключении. Чтобы получить сведения о подключении к базе данных SQL, выполните следующие действия.

На Портале управления (предварительная версия) щелкните LINKED RESOURCES, а затем щелкните имя базы данных.

clip_image021

Щелкните View connection strings.

clip_image022

В разделе PHP открывшегося диалогового окна запомните значения для SERVER, DATABASE, и USERNAME.

Создание и тестирование приложения локально

Приложение Registration — это простое PHP-приложение для регистрации участников мероприятия путем ввода имени и адреса электронной почты пользователя. Сведения о предыдущих зарегистрировавшихся лицах отображаются в таблице. Информация о регистрации хранится в экземпляре базы данных SQL. Приложение состоит из двух файлов (код для копирования и вставки указан ниже).

  • index.php. Отображает форму для регистрации и таблицу с данными о зарегистрировавшемся участнике.
  • createtable.php. Создает таблицу базы данных SQL для приложения. Этот файл используется только один раз.

Чтобы запустить приложение локально, выполните следующие действия. Предполагается, что на локальном компьютере установлены PHP, SQL Server Express и веб-сервер и включено расширение PDO для SQL Server.

Создайте базу данных SQL Server с именем registration. Это можно сделать из командной строки sqlcmd с помощью следующих команд.

>sqlcmd -S localhostsqlexpress -U <local user name> -P <local password>
1> create database registration
2> GO

В корневом каталоге веб-сервера создайте папку с именем registration, а в ней создайте два файла, один с именем createtable.php и другой с именем index.php.

Откройте файл createtable.php в текстовом редакторе или IDE и добавьте указанный ниже код. Этот код будет использоваться для создания таблицы registration_tbl в базе данных .

<?php
// DB connection info
$host = "localhostsqlexpress";
$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.

Откройте веб-браузер и перейдите к файлу http://localhost/registration/createtable.php. В базе данных будет создана таблица.

Откройте файл index.php в текстовом редакторе или IDE и добавьте базовый код 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 = "localhostsqlexpress";
$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("Y-m-d");
    // 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, чтобы протестировать приложение.

Публикация приложения

Протестировав приложение локально, его можно опубликовать на веб-сайте Windows Azure с помощью Git. Однако сначала необходимо обновить в приложении сведения о подключении к базе данных. Используя сведения о подключении к базе данных, полученные ранее (в разделе «Получение сведений о подключении к базе данных SQL»), обновите следующую информацию в обоих файлах — и — соответствующими значениями.

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

Примечание. К значению SERVER следует добавить, а значение объединяет значения USERNAME, '@' и идентификатор сервера. Идентификатор сервера состоит из первых 10 символов значения SERVER.

Теперь вы готовы настроить публикацию Git и опубликовать приложение.

Примечание. Выполните те же самые действия, которые описаны в конце разделов «Создание веб-сайта Windows Azure» и «Настройка публикации Git».

Откройте GitBash (или терминал, если в имеется Git), измените каталоги на корневой каталог приложения и выполните следующие команды.

git init
git add.
git commit -m "initial commit"
git remote add azure [URL for remote repository]
git push azure master

Появится запрос на ввод пароля, созданного ранее.

Перейдите на сайт http://[имя_сайта].azurewebsites.net/createtable.php, чтобы создать таблицу MySQL для приложения. Перейдите на сайт http://[имя_сайта].azurewebsites.net/index.php, чтобы начать использование приложения.

В опубликованное приложение можно вносить изменения и публиковать их с помощью Git.

Публикация изменений в приложение

Чтобы опубликовать изменения приложения, выполните следующие действия.

Измените приложение локально.

Откройте GitBash (или терминал, если в имеется Git), измените каталоги на корневой каталог приложения и выполните следующие команды.

git add.
git commit -m "comment describing changes"
git push azure master

Появится запрос на ввод пароля, созданного ранее.

Перейдите на сайт http://[имя_сайта].azurewebsites.net/index.php, чтобы просмотреть изменения.

Автор: XaocCPS

Поделиться

* - обязательные к заполнению поля