Теперь я уверен, что вы уже слышали о конкурсе 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.ico
index.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 [email protected]: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 или просто оставить свой общий отзыв, оставьте его в комментариях ниже!