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

Это руководство содержит сведения по созданию веб-сайта на базе PHP и MySQL в Windows Azure и его развертыванию с помощью Git. Для выполнения заданий нужно будет использовать установленные на компьютере PHP, средство командной строки MySQL (часть MySQL), веб-сервер и Git. Инструкции, содержащиеся в этом руководстве, можно выполнять в любой операционной системе, включая Windows, Mac и Linux. После выполнения всех действий будет создан веб-сайт PHP/MySQL, работающий на платформе Windows Azure.

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

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

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

clip_image002

Настройка среды разработки

Предполагается, что на компьютере уже установлены PHP, средство командной строки MySQL (часть MySQL), веб-сервер и Git.

Примечание. Если разработка данного приложения ведется в ОС Windows, то можно выполнить настройку PHP и автоматическую настройку IIS (встроенного веб-сервера Windows), установив пакет Windows Azure SDK для PHP.

Создание учетной записи Windows Azure

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

clip_image004

Включение сервиса Windows Azure Web Sites в свою подписку

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

clip_image006

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

clip_image008

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

clip_image010

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

Чтобы создать веб-сайт Windows Azure и базу данных MySQL, выполните следующие действия. Войдите на портал Windows Azure (предварительная версия). В нижней левой части портала щелкните значок + New.

clip_image011

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

clip_image012

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

clip_image013

Введите имя в поле NAME для базы данных, выберите центр обработки данных для базы данных в раскрывающемся списке REGION и установите флажок, выразив тем самым согласие с юридическими условиями. Щелкните флажок в нижней части диалогового окна.

clip_image014

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

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

clip_image015

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

clip_image016

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

clip_image017

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

clip_image018

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

clip_image019

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

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

На панели быстрого запуска веб-сайта в правой части страницы щелкните ссылку View connection strings.

clip_image021

Запомните значения для Database, Data Source, User Id, и Password.

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

После создания веб-сайта Windows Azure можно разработать приложение, протестировать его на локальном компьютере, а затем развернуть.

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

  • index.php. Отображает форму для регистрации и таблицу с данными о зарегистрировавшемся участнике.

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

Подключитесь к удаленному серверу MySQL с помощью полученных ранее значений для Data Source, User Id, Password и Database.

mysql -h{Data Source] -u[User Id] -p[Password] -D[Database]

Откроется командная строка MySQL.

mysql>

Вставьте следующую команду CREATE TABLE, чтобы создать таблицу registration_tbl в базе данных.

mysql> CREATE TABLE registration_tbl(id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id), name VARCHAR(30), email VARCHAR(30), date DATE);

В корневом каталоге веб-сервера создайте папку с именем registration, а в ней –– файл с именем index.php. Откройте файл index.php в текстовом редакторе или IDE и добавьте следующий код. Затем внесите необходимые изменения, отмеченные комментариями //TODO:.

<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
    // DB connection info
    //TODO: Update the values for $host, $user, $pwd, and $db
    //using the values you retrieved earlier from the portal.
    $host = "value of Data Source";
    $user = "value of User Id";
    $pwd = "value of Password";
    $db = "value of Database";
    // Connect to database.
    try {
        $conn = new PDO( "mysql:host=$host;dbname=$db", $user, $pwd);
        $conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
    }
    catch(Exception $e){
        die(var_dump($e));
    }
    // Insert registration info
    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>";
    }
    // Retrieve data
    $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>";
    }
?>
< /body>
< /html>

Теперь можно перейти к файлу https://localhost/registration/index.php, чтобы протестировать приложение.

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

После тестирования на локальном компьютере приложение можно опубликовать на веб-сайте Windows Azure с помощью Git. Вы включите локальный репозиторий Git и опубликуете приложение.

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

(Необязательно) Если вы забыли или потеряли URL-адрес удаленного репозитория Git, то перейдите на портале на вкладку Deployment.

clip_image019[1]

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

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

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

clip_image023

Перейдите к файлу https://[имя_сайта].azurewebsites.net/index.php, чтобы начать работу с приложением (эти сведения будут сохранены на панели мониторинга учетной записи).

clip_image024

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

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

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

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

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

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

clip_image026

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

clip_image027

На вкладке Deployments портала управления появится новое развертывание.

clip_image029