Ранее на этой неделе я опубликовал обзор «нового» Windows Azure SDK для PHP . В этом посте я обещал глубже погрузиться в несколько областей SDK. В этой статье я начну выполнять это обещание с рассмотрения того, как использовать Windows Azure PowerShell для создания и публикации веб-роли PHP в Windows Azure. Я предполагаю, что вы создали учетную запись Windows Azure .
Примечание . Если вы хотите просто разместить веб-сайт PHP в Windows Azure, вам следует использовать веб-сайты Windows Azure. В течение бесплатного пробного периода вы можете бесплатно создать до 10 веб-сайтов и до 3-х экземпляров каждого сайта. Если вашему сайту требуется больше лошадиных сил, вы можете перейти в «зарезервированный» режим (хотя этот режим не является бесплатным — см. « Информация о ценах» для получения дополнительной информации). Однако если вы создаете приложение, для которого требуется настраиваемая установка PHP, многоуровневое приложение, приложение, требующее расширенного администрирования, или приложение, требующее расширенной работы в сети, то вам следует рассмотреть веб-роли Windows Azure (т. Е. Платформу Windows Azure. Предложение как услуга).
Основным командлетом PowerShell для создания веб-роли PHP является командлет Add-AzurePHPWebRole . Этот командлет создает локальный каталог, который является готовым к развертыванию приложением PHP (хотя он очень прост — он просто отображает вывод phpinfo ). Вам просто нужно добавить свой код и развернуть его. При развертывании приложения в Windows Azure проект установит PHP и соответствующим образом настроит IIS с помощью установщика веб-платформы. Установленная версия PHP — это последняя версия PHP, доступная через установщик веб-платформы (на момент написания этой статьи это PHP 5.3.13). Установка PHP полностью настраивается — вы можете предоставить свой собственный файл php.ini и каталог расширений, который будет использоваться установкой PHP.
Примечание . Команда Windows Azure надеется в ближайшем будущем сделать выбор из нескольких версий PHP. Кроме того, команда работает над добавлением поддержки разработки и развертывания веб- и рабочих ролей на платформах, отличных от Windows, добавляя команды, доступные в средствах командной строки Windows Azure для Mac и Linux .
Общий обзор командлетов см. В разделе Как использовать Windows Azure PowerShell .
Получить инструменты
Самый простой способ получить командлеты Windows Azure PowerShell — это установить Windows Azure SDK для PHP: загрузить Windows Azure SDK для PHP . По этой ссылке будет загружен установщик веб-платформы и настроен для установки командлетов PowerShell и эмуляторов Windows Azure:
Если вы предпочитаете устанавливать только командлеты PowerShell (а не эмуляторы), нажмите кнопку «назад» …
… И выберите Windows Azure PowerShell:
Импортируйте ваши настройки публикации
После установки командлетов выполните следующие действия, чтобы импортировать параметры публикации. Вам нужно выполнить эти шаги только один раз.
1. Запустите Windows Azure PowerShell с повышенными привилегиями (в меню « Пуск» найдите Windows Azure PowerShell , щелкните правой кнопкой мыши и выберите « Запуск от имени администратора» ).
2. Загрузите настройки публикации, выполнив команду ниже. Это откроет ваш веб-браузер и потребует от вас входа с учетными данными Windows Azure. ( Запишите, где вы сохранили файл .publishsettings .)
Get-AzurePublishSettingsFile
3. Импортируйте настройки публикации с помощью этой команды:
Import-PublishSettingsFile <путь к загруженному файлу .publishsettings>
Создать PHP веб-роль
После импорта параметров публикации создайте веб-роль PHP, выполнив следующие действия:
1. Создайте новый проект Azure. Обратите внимание, что эта команда создаст новый каталог с именем myAzureProject и автоматически изменит на него каталоги.
New-AzureServiceProject myAzureProject
2. В каталоге myAzureProject (или как вы называете свой проект Azure) добавьте веб-роль PHP:
Add-AzurePHPWebRole myWebRole
Теперь у вас есть каркасный проект PHP / Azure. На самом деле, у вас есть очень простое PHP-приложение (отображающее вывод phpinfo ), которое готово к развертыванию. (На этом этапе вы можете перейти к разделу « Опубликовать в Windows Azure »).
Осматривая структуру каталогов, вы должны увидеть нечто похожее на это:
/myAzureProject deploymentSettings.json ServiceConfiguration.Cloud.cscfg ServiceConfiguration.Local.cscfg ServiceDefinition.csdef /myWebRole index.php Web.cloud.config Web.config /bin Microsoft.Web.Deployment.dll Microsoft.Web.PlatformInstaller.dll Microsoft.Web.PlatformInstaller.UI.dll setup.cmd setup.ps1 setup_web.cmd WebpiCmdLine.exe
Теперь вы можете добавить свой код приложения в папку myWebRole . Если вы хотите добавить задачи запуска, вы можете сделать это, отредактировав файл .csdef и добавив сценарии в папку bin . Для получения дополнительной информации см. Как определить задачи запуска для роли .
Настройте свою конфигурацию PHP
Как я упоминал ранее, командлет Add-AzurePHPWebRole создает проект скаффолда, который при развертывании установит последнюю версию PHP, доступную через установщик веб-платформы. На момент написания статьи PHP 5.3.13 является доступной версией и поставляется со стандартной конфигурацией «из коробки». Однако вы можете настроить эту конфигурацию, выполнив следующие действия (пропустите шаг 2, если вы не хотите включать какие-либо пользовательские расширения):
1. Добавьте папку php в каталог bin .
2. Добавьте папку ext в каталог php и поместите в нее любые расширения PHP, которые вы хотите иметь доступными (например, php_mongo.dll ).
3. Добавьте пользовательский файл php.ini в каталог php . Вы можете включить / выключить настройки и включить расширения, как при любой другой установке PHP через этот файл .ini .
Тест в эмуляторе вычислений
Если вы установили эмуляторы Windows Azure, вы можете проверить приложение локально, выполнив следующую команду из каталога проекта:
Start-AzureEmulator
Однако для этого потребуется установить PHP, поскольку эмулятор использует вашу локальную установку PHP. В частности, он будет использовать версию PHP, которая находится в переменной среды PATH , или использовать любую версию PHP, установленную с помощью установщика веб-платформы. (Скоро рассмотрим более подробный пост о том, как использовать эмуляторы.)
Включить доступ к удаленному рабочему столу
Это совершенно необязательный шаг, но я обнаружил, что включение удаленного доступа к рабочему столу очень помогает при устранении неполадок. И этот один командлет позволяет легко:
Enable-AzureServiceProjectRemoteDesktop
Вам будет предложено указать имя пользователя и пароль, которые вы будете использовать при доступе к экземпляру. После развертывания проекта (подробности в разделе ниже) вы можете получить доступ к экземпляру, войдя в портал управления , щелкнув INSTANCES на панели инструментов вашего веб-сайта, выбрав экземпляр и нажав кнопку CONNECT в нижней части страницы.
Если вы используете производственный портал, перейдите к экземпляру и щелкните значок подключения:
Публикация в Windows Azure
Наконец, вы можете опубликовать свой проект в Windows Azure с помощью следующей команды:
Опубликовать-AzureServiceProject
Это попытается создать облачный сервис, используя имя вашего проекта ( myAzureProject в приведенных выше примерах). Если это имя недоступно, вы можете получить ошибку. Если это произойдет, вы можете развернуть его под другим именем, используя флаг — ServiceName :
Publish-AzureServiceProject –ServiceName myNewServiceName
Вы можете проверить, доступно ли имя с помощью этой команды:
Test-AzureName — Сервис «myAzureProject»
Дополнительные флаги для командлета Publish-AzureServiceProject : — Слот , — Расположение , — Подписка и — Хранилище . Дополнительные сведения об использовании этих флагов см. В разделе Как использовать Windows Azure PowerShell .
После развертывания проекта потребуется несколько минут, прежде чем он будет доступен в качестве условий Windows Azure и настроит новые виртуальные машины для каждого развертывания.
Это все на данный момент. Как обычно, дайте нам знать, если у вас есть какие-либо отзывы.
Спасибо.