Статьи

PHP и MySQL в Windows Azure: начало работы и развертывание с помощью Git

Теперь я уверен, что вы уже слышали о конкурсе Push The Web Forward от SitePoint и Windows Azure. Если нет, то это конкурс, который требует, чтобы вы зарегистрировали пробную учетную запись в Windows Azure и развернули там любое приложение, чтобы иметь право на ничью, в которой вы можете выиграть до 3000 долларов за приложение. Вы даже можете проверить текущие записи, посетив галерею .

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

Настройка

В этой статье мы рассмотрим процедуру настройки PHP-приложения Hello World в Windows Azure и подключения его к базе данных в этой самой среде. Мы также развернем через FTP и настроим автоматическое развертывание через Github.

Если вы этого еще не сделали, зарегистрируйтесь для получения бесплатного пробного аккаунта . Как только вы дойдете до панели управления (см. Скриншот ниже), мы настроим наш начальный веб-сайт.

Создание нового PHP-проекта в Windows Azure

В нижней части экрана нажмите New -> Compute -> Website -> From Gallery, как показано на скриншоте ниже.

Это должно открыть галерею стартовых шаблонов веб-сайтов, которая предлагает что-нибудь от приложений Ruby до готовых к использованию форумов. Мы стремимся к подходу с нуля, поэтому прокрутите вниз, пока не дойдете до «Пустого сайта PHP», и на следующем экране укажите произвольное имя URL для него. Я выбрал SitePoint01 для этого упражнения.

Через несколько секунд ваше приложение должно заработать. Фактически, вы должны увидеть его в списке веб-сайтов, и он должен иметь статус «Работает».

Нажмите на название приложения, чтобы войти в его панель управления, и найдите время, чтобы осмотреться — ознакомиться с различными экранами. Первый экран, который вы видите, — это экран «Быстрый старт», предназначенный для быстрого начала работы с наиболее распространенными функциями, а остальные говорят сами за себя.

Если вы посетите свое приложение в браузере сейчас, вы получите пустой экран. Это отлично. В конце концов, мы еще ничего не сделали. Давайте настроим базу данных, прежде чем двигаться дальше.

Настройка базы данных в Windows Azure

Перейдите к «Связанные ресурсы» на панели инструментов вашего приложения и нажмите «Связать ресурс». Мы хотим создать новый ресурс, и мы выберем базу данных MySQL. На следующем экране мастера присвойте ему имя, примите условия и нажмите галочку «Завершить» в правом нижнем углу всплывающего окна.

После нескольких секунд настройки ресурс должен быть готов и связан.

Если вы сейчас перейдете на панель мониторинга, первым параметром в разделе «Быстрый просмотр» должен быть «Просмотр строк подключения», который при щелчке создает всплывающее окно с учетными данными базы данных, которые можно использовать для доступа к только что настроенной базе данных.

Для управления нашей базой данных мы будем использовать Oracle MySQL Workbench в этой статье (не стесняйтесь использовать любой другой инструмент управления SQL, если хотите). Когда вы создаете базу данных MySQL в Windows Azure, база данных фактически создается в ClearDB . Базы данных ClearDB могут быть подключены удаленно, и это то, что мы будем делать.

Загрузите MySQL Workbench и решите создать новое соединение. В появившемся окне заполните данные предыдущего скриншота — имя хоста, имя пользователя и пароль. Вы даже можете загрузить ключи SSL из ClearDB (см. Скриншот ниже) и использовать их на вкладке SSL соединения в MySQL Workbench, чтобы сделать ваше соединение более безопасным.

После нажатия кнопки Test Connection Workbench должен успешно подключиться. После нажатия кнопки «Соединить» должна отобразиться пустая база данных.

Чтобы настроить базовую таблицу с некоторыми примерами данных, которые мы будем получать, вставьте следующие операторы SQL на вкладку SQL в Workbench и нажмите кнопку «Выполнить», представленную значком thunderbolt на панели инструментов вкладки SQL. Естественно, замените «sitepoint01» именем вашей собственной базы данных.

USE `sitepoint01` ;

CREATE TABLE IF NOT EXISTS `sitepoint01`.`hello_world` (
  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  `data` VARCHAR(45) NULL,
  PRIMARY KEY (`id`))
ENGINE = InnoDB;

START TRANSACTION;
USE `sitepoint01`;
INSERT INTO `sitepoint01`.`hello_world` (`id`, `data`) VALUES (1, 'I was retrieved from the database!');

COMMIT;

Теперь у нас есть данные в нашей базе данных MySQL. Имейте в виду, что вы также можете использовать отличный редактор моделей Workbench для графического построения таблиц и отношений, а затем экспортировать все это прямо в вашу удаленную базу данных. Не забывайте часто экономить — Workbench — фантастический инструмент, но он может быть очень глючным и часто дает сбой.

Загрузка файлов в Windows Azure

Загрузка файлов в приложения Windows Azure может осуществляться двумя способами: через систему контроля версий или через FTP.

Использование FTP для загрузки файлов в Windows Azure

Если вы перейдете на панель инструментов вашего приложения, вы должны увидеть имя хоста FTP в правом меню — но нет пользователя. Нам нужно это настроить, чтобы попробовать. В разделе «Быстрый просмотр» снова нажмите «Настройка учетных данных для развертывания», чтобы создать пользователя FTP. После этого убедитесь, что на вашем компьютере установлен FTP-клиент — для этой статьи я буду использовать FileZilla .

Подключение не может быть более простым. Просто введите учетные данные в диалоговом окне «Новый сайт» FileZilla, как показано ниже, и нажмите «Подключиться».

Как только дерево каталогов откроется, вы можете перейти к /site/wwwroot/favicon.icoindex.php Загрузите файл index.php

 <?php
echo "Hello World";
?>

Затем загрузите файл обратно в Azure. Если вас попросят перезаписать оригинальный файл, сделайте это. Теперь, если вы зайдете по URL-адресу вашего веб-приложения (этот URL можно увидеть на информационной панели среди других данных в правом столбце), вы должны увидеть печально известное сообщение Hello World.

Тем не менее, использование FTP для загрузки файлов вашего сайта очень … девяностых. Давайте вступим в информационную эру.

Подключение репозитория Github к Windows Azure

Для развертывания через Github нам сначала нужно немного «развернуть» локальную папку нашего приложения. Добавьте в него следующие файлы: .gitignore и README.md .

Это просто для чистого хранилища. Каждое хранилище должно иметь файл README, независимо от того, насколько он тривиален, и файл .gitignore, который гарантирует, что никакие ненужные файлы не будут переданы.

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

Теперь cd

 git init
git add .
git commit -am 'First commit'

Я в настоящее время на Windows, и вот как выглядит процесс:

Теперь создайте новый репозиторий на Github. Я назвал мой «sitepoint-azure1». Добавьте источник в репозиторий, который мы только что инициализировали локально, в соответствии с инструкциями Github.

 git remote add origin git@github.com:Swader/sitepoint-azure1.git
git push -u origin master

Теперь репо нашего приложения в сети, давайте настроим его в панели управления Azure. Перейдите либо на панель управления вашего веб-сайта, либо на экран «Быстрый старт», и выберите параметр «Настроить развертывание из системы контроля версий». В появившемся всплывающем окне выберите Github, нажмите «Далее», авторизуйте все, что Azure просит вас авторизовать, и найдите репо, которое вы только что создали, в списке предлагаемых репозиториев.

Пройдет несколько секунд, и развертывание будет готово. Фактически, как только он завершит обработку, файлы вашего приложения в экземпляре Azure уже будут обновлены. Если вы обновите представление в своем FTP-клиенте сейчас, вы заметите, что наши файлы README и .gitignore тоже там. Это все автоматически. Это действительно настолько просто! Теперь, когда один из ваших коллег-разработчиков обновляет ваше приложение Github, и вы принимаете их запрос на извлечение в основной ветке, Azure автоматически позаботится о его обновлении. Вы даже можете принудительно выполнить синхронизацию вручную с помощью кнопок в нижнем колонтитуле вкладки «Развертывание», если чувствуете, что она недостаточно быстро выполняет свою работу.

Мы продемонстрируем, как это автоматически обновляется в следующем разделе.

Подключение приложения PHP к базе данных MySQL в Windows Azure

Во-первых, давайте рассмотрим некоторые меры безопасности. При подключении к базе данных нам нужно сообщить PHP, какие учетные данные использовать для подключения к MySQL. Но если мы включим их непосредственно в файл, каждый сможет увидеть наш пароль в Github. Следовательно, создайте файл config.php

 <?php
// Replace with your own
$sUsername = 'user';
$sPassword = 'pass';
$sHost = 'host';
$sDb = 'db';

Затем убедитесь, что он никогда не будет передан, добавив следующий блок вверху нашего файла .gitignore:

 # Configuration
config.php

Наконец, загрузите файл config.php Это гарантирует, что оно останется на месте — оно будет проигнорировано автоматическим развертыванием и нашим локальным репозиторием Git.

Теперь заново откройте локальный файл index.php

 <?php

require_once 'config.php';

try {
    $oConn = new PDO('mysql:host='.$sHost.';dbname='.$sDb, $sUsername, $sPassword);
    $oConn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $oStmt = $oConn->prepare('SELECT data FROM `hello_world`');
    $oResult = $oStmt->fetchAll();

    foreach ($oResult as $aRow) {
        print_r($aRow['data']);
    }

} catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}

Сохраните, запустите git commit -am 'Reading from DB'git push

Посмотрите на экран развертывания в панели управления вашего приложения — история развертывания будет расти с каждым нажатием на master Ваше приложение уже должно быть обновлено — Azure мгновенно извлекает содержимое Github.

Если вы теперь повторно посетите URL своего приложения, вы должны получить «Я был извлечен из базы данных!» сообщение отображается.

Вывод

Как видите, создание и развертывание приложения в Windows Azure очень просто. Вы можете настроить процесс автоматического развертывания за считанные минуты, и все это будет размещено в надежной и масштабируемой инфраструктуре со встроенными метриками и красивыми панелями мониторинга, что сделает управление вашим приложением максимально простым.

Вооружившись этим знанием, почему бы не поучаствовать в конкурсе PTWF и посмотреть, сможете ли вы взять несколько призов домой?

Если вы хотите увидеть более конкретную тему Azure или просто оставить свой общий отзыв, оставьте его в комментариях ниже!