<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>PHPAzure Wiki &amp; Documentation Rss Feed</title><link>http://phpazure.codeplex.com/Wiki/View.aspx?title=Home</link><description>PHPAzure Wiki Rss Description</description><item><title>Updated Wiki: Home</title><link>http://phpazure.codeplex.com/wikipage?version=26</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;Windows Azure SDK for PHP&lt;em&gt;&amp;nbsp; &lt;/em&gt;&lt;/h1&gt;
&lt;hr&gt;
&lt;h2&gt;&lt;strong&gt;&lt;span style="color:#ff0000"&gt;&lt;em&gt;Deprecated in favor of the new SDK on
&lt;a href="https://github.com/windowsazure/azure-sdk-for-php"&gt;GitHub&lt;/a&gt;&lt;/em&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;The Microsoft Windows Azure team has released a &lt;a href="http://windowsazure.com/en-us/develop/php/"&gt;
new Windows Azure SDK for PHP&lt;/a&gt;. This release is part of an effort to keep PHP client libraries up to date with new Windows Azure features and to make PHP a first-class citizen in Windows Azure. The latest client libraries are on
&lt;a href="https://github.com/windowsazure/azure-sdk-for-php"&gt;GitHub&lt;/a&gt;. While the SDK hosted on here will continue to work for the foreseeable future, it is strongly recommended that new PHP/Windows Azure applications use the SDK hosted on
&lt;a href="https://github.com/windowsazure/azure-sdk-for-php"&gt;GitHub&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;1. What is Windows Azure SDK for PHP?&lt;/h2&gt;
&lt;p&gt;As part of Microsoft&amp;rsquo;s commitment to Interoperability, this open source project is an effort bridge PHP developers to Windows Azure. The Windows Azure SDK for PHP is an open source project to provide a software development kit for Windows Azure and
 Windows Azure Storage.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Overview
&lt;ul&gt;
&lt;li&gt;Enables PHP developers to take advantage of the Microsoft Cloud Services Platform &amp;ndash; Windows Azure.
&lt;/li&gt;&lt;li&gt;Provides consistent programming model for Windows Azure Storage (Blobs, Tables &amp;amp; Queues)
&lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;&lt;li&gt;Features
&lt;ul&gt;
&lt;li&gt;PHP classes for Windows Azure Blobs, Tables &amp;amp; Queues (for CRUD operations)
&lt;/li&gt;&lt;li&gt;Helper Classes for HTTP transport, AuthN/AuthZ, REST &amp;amp; Error Management &lt;/li&gt;&lt;li&gt;Manageability, Instrumentation &amp;amp; Logging support &lt;/li&gt;&lt;li&gt;Support for storing PHP sessions in Azure Table Storage &lt;/li&gt;&lt;li&gt;Management API client &lt;/li&gt;&lt;li&gt;Diagnostics client &lt;/li&gt;&lt;li&gt;Command line tools set for
&lt;ul&gt;
&lt;li&gt;Packaging &lt;/li&gt;&lt;li&gt;Management &lt;/li&gt;&lt;li&gt;Diagnostics &lt;/li&gt;&lt;li&gt;Deployment &lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;br&gt;
View the Documentation page of this project or the &lt;a href="http://azurephp.interoperabilitybridges.com/tutorials"&gt;
Windows Azure PHP&lt;/a&gt; website maintained by the Microsoft Interoperability Team.&lt;/p&gt;
&lt;h2&gt;2. Project contributors&lt;/h2&gt;
&lt;p&gt;Windows Azure SDK for PHP is an open source collaboration project driven by &lt;a href="http://www.realdolmen.com"&gt;
RealDolmen&lt;/a&gt; and &lt;a href="http://www.microsoft.com"&gt;Microsoft&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;img title="logorealdolmen.jpg" src="http://i3.codeplex.com/Download?ProjectName=phpazure&amp;DownloadId=66981" alt="logorealdolmen.jpg"&gt;&lt;br&gt;
The &lt;a href="http://www.realdolmen.com"&gt;RealDolmen&lt;/a&gt; Microsoft Competence Centre is occupied with the supply of made-to-measure professional Microsoft solutions to customers and is the largest Microsoft integrator in Belgium. RealDolmen has over 10 years
 of experience of complete implementation of Microsoft projects in terms of strategy, architecture, implementation, integration of systems, maintenance, training as well as support.&lt;br&gt;
&lt;br&gt;
&lt;img title="logomicrosoft.jpg" src="http://i3.codeplex.com/Download?ProjectName=phpazure&amp;DownloadId=66982" alt="logomicrosoft.jpg"&gt;
&lt;br&gt;
&lt;a href="http://www.microsoft.com"&gt;Microsoft&lt;/a&gt; is the project sponsor and provides Architectural &amp;amp; Technical Guidance on its
&lt;a href="http://www.azure.com"&gt;Windows Azure&lt;/a&gt; platform.&lt;/p&gt;
&lt;h2&gt;Thanks to&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://www.realdolmen.com"&gt;RealDolmen&lt;/a&gt;, contributor&lt;br&gt;
&lt;a href="http://www.microsoft.com"&gt;Microsoft&lt;/a&gt;, sponsor&lt;br&gt;
&lt;a href="http://www.zitec.com"&gt;Zitec&lt;/a&gt;, feedback and testing&lt;/p&gt;
&lt;hr&gt;
&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>maartenba</author><pubDate>Wed, 06 Jun 2012 06:20:19 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20120606062019A</guid></item><item><title>Updated Wiki: Home</title><link>http://phpazure.codeplex.com/wikipage?version=25</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;Windows Azure SDK for PHP&lt;em&gt;&amp;nbsp; &lt;/em&gt;&lt;strong&gt;&lt;span style="color:#ff0000"&gt;&lt;em&gt;TL;DR; Deprecated in favor of the new SDK on
&lt;a href="https://github.com/windowsazure/azure-sdk-for-php"&gt;GitHub&lt;/a&gt;&lt;/em&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/h1&gt;
&lt;hr&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;The Microsoft Windows Azure team has released a &lt;a href="http://windowsazure.com/en-us/develop/php/"&gt;
new Windows Azure SDK for PHP&lt;/a&gt;. This release is part of an effort to keep PHP client libraries up to date with new Windows Azure features and to make PHP a first-class citizen in Windows Azure. The latest client libraries are on
&lt;a href="https://github.com/windowsazure/azure-sdk-for-php"&gt;GitHub&lt;/a&gt;. While the SDK hosted on here will continue to work for the foreseeable future, it is strongly recommended that new PHP/Windows Azure applications use the SDK hosted on
&lt;a href="https://github.com/windowsazure/azure-sdk-for-php"&gt;GitHub&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;/em&gt;&amp;nbsp;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2&gt;1. What is Windows Azure SDK for PHP?&lt;/h2&gt;
&lt;p&gt;As part of Microsoft&amp;rsquo;s commitment to Interoperability, this open source project is an effort bridge PHP developers to Windows Azure. The Windows Azure SDK for PHP is an open source project to provide a software development kit for Windows Azure and
 Windows Azure Storage.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Overview
&lt;ul&gt;
&lt;li&gt;Enables PHP developers to take advantage of the Microsoft Cloud Services Platform &amp;ndash; Windows Azure.
&lt;/li&gt;&lt;li&gt;Provides consistent programming model for Windows Azure Storage (Blobs, Tables &amp;amp; Queues)
&lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;&lt;li&gt;Features
&lt;ul&gt;
&lt;li&gt;PHP classes for Windows Azure Blobs, Tables &amp;amp; Queues (for CRUD operations)
&lt;/li&gt;&lt;li&gt;Helper Classes for HTTP transport, AuthN/AuthZ, REST &amp;amp; Error Management &lt;/li&gt;&lt;li&gt;Manageability, Instrumentation &amp;amp; Logging support &lt;/li&gt;&lt;li&gt;Support for storing PHP sessions in Azure Table Storage &lt;/li&gt;&lt;li&gt;Management API client &lt;/li&gt;&lt;li&gt;Diagnostics client &lt;/li&gt;&lt;li&gt;Command line tools set for
&lt;ul&gt;
&lt;li&gt;Packaging &lt;/li&gt;&lt;li&gt;Management &lt;/li&gt;&lt;li&gt;Diagnostics &lt;/li&gt;&lt;li&gt;Deployment &lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;br&gt;
View the Documentation page of this project or the &lt;a href="http://azurephp.interoperabilitybridges.com/tutorials"&gt;
Windows Azure PHP&lt;/a&gt; website maintained by the Microsoft Interoperability Team.&lt;/p&gt;
&lt;h2&gt;2. Project contributors&lt;/h2&gt;
&lt;p&gt;Windows Azure SDK for PHP is an open source collaboration project driven by &lt;a href="http://www.realdolmen.com"&gt;
RealDolmen&lt;/a&gt; and &lt;a href="http://www.microsoft.com"&gt;Microsoft&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;img title="logorealdolmen.jpg" src="http://i3.codeplex.com/Download?ProjectName=phpazure&amp;DownloadId=66981" alt="logorealdolmen.jpg"&gt;&lt;br&gt;
The &lt;a href="http://www.realdolmen.com"&gt;RealDolmen&lt;/a&gt; Microsoft Competence Centre is occupied with the supply of made-to-measure professional Microsoft solutions to customers and is the largest Microsoft integrator in Belgium. RealDolmen has over 10 years
 of experience of complete implementation of Microsoft projects in terms of strategy, architecture, implementation, integration of systems, maintenance, training as well as support.&lt;br&gt;
&lt;br&gt;
&lt;img title="logomicrosoft.jpg" src="http://i3.codeplex.com/Download?ProjectName=phpazure&amp;DownloadId=66982" alt="logomicrosoft.jpg"&gt;
&lt;br&gt;
&lt;a href="http://www.microsoft.com"&gt;Microsoft&lt;/a&gt; is the project sponsor and provides Architectural &amp;amp; Technical Guidance on its
&lt;a href="http://www.azure.com"&gt;Windows Azure&lt;/a&gt; platform.&lt;/p&gt;
&lt;h2&gt;Thanks to&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://www.realdolmen.com"&gt;RealDolmen&lt;/a&gt;, contributor&lt;br&gt;
&lt;a href="http://www.microsoft.com"&gt;Microsoft&lt;/a&gt;, sponsor&lt;br&gt;
&lt;a href="http://www.zitec.com"&gt;Zitec&lt;/a&gt;, feedback and testing&lt;/p&gt;
&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>maartenba</author><pubDate>Wed, 06 Jun 2012 06:19:19 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20120606061919A</guid></item><item><title>New Comment on "Diagnostics"</title><link>http://phpazure.codeplex.com/wikipage?title=Diagnostics&amp;ANCHOR#C22320</link><description>&amp;#36;_SERVER&amp;#91;&amp;#39;RdRoleId&amp;#39;&amp;#93; does not exist &amp;#40;s. http&amp;#58;&amp;#47;&amp;#47;phpazure.codeplex.com&amp;#47;workitem&amp;#47;6650&amp;#41;</description><author>aurelious</author><pubDate>Tue, 24 Jan 2012 12:06:02 GMT</pubDate><guid isPermaLink="false">New Comment on "Diagnostics" 20120124120602P</guid></item><item><title>New Comment on "Table storage session handler"</title><link>http://phpazure.codeplex.com/wikipage?title=Table storage session handler&amp;ANCHOR#C21994</link><description>Hi, do you have an idea why my application is 10 times slower &amp;#40;&amp;#126;400ms&amp;#41; with the TableSessionHandler than without it &amp;#40;&amp;#126;40ms&amp;#41;&amp;#63;&amp;#10;&amp;#10;&amp;#40;session_start is called after the handler registration&amp;#41;</description><author>aurelious</author><pubDate>Wed, 21 Dec 2011 17:03:04 GMT</pubDate><guid isPermaLink="false">New Comment on "Table storage session handler" 20111221050304P</guid></item><item><title>Updated Wiki: Documentation</title><link>http://phpazure.codeplex.com/documentation?version=5</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Getting Started&lt;/h1&gt;Back to &lt;a href="http://phpazure.codeplex.com/wikipage?referringTitle=Documentation"&gt;Home&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The following topics are available:
&lt;ul&gt;&lt;li&gt;&lt;a href="http://azurephp.interoperabilitybridges.com/articles/understanding-the-windows-azure-platform" class="externalLink"&gt;Understanding Windows Azure&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href="http://azurephp.interoperabilitybridges.com/get-started" class="externalLink"&gt;Setup the Windows Azure development environment pre-requisites&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href="http://azurephp.interoperabilitybridges.com/articles/setup-the-windows-azure-sdk-for-php" class="externalLink"&gt;Setup the Windows Azure SDK for PHP&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://azurephp.interoperabilitybridges.com/articles/build-and-deploy-a-windows-azure-php-application" class="externalLink"&gt;Build your first Windows Azure PHP application&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Using the command line tools
&lt;ul&gt;&lt;li&gt;&lt;a href="http://azurephp.interoperabilitybridges.com/articles/packaging-applications" class="externalLink"&gt;Packaging applications&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://azurephp.interoperabilitybridges.com/articles/using-scaffolds" class="externalLink"&gt;Using scaffolds&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://phpazure.codeplex.com/wikipage?title=Blob%20storage&amp;referringTitle=Documentation"&gt;Blob storage&lt;/a&gt; &lt;a href="http://azurephp.interoperabilitybridges.com/articles/tutorial-using-blob-storage" class="externalLink"&gt;Blob storage explained&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://phpazure.codeplex.com/wikipage?title=Blob%20storage%20stream%20wrapper&amp;referringTitle=Documentation"&gt;Blob storage stream wrapper&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://phpazure.codeplex.com/wikipage?title=Shared%20Access%20Signature&amp;referringTitle=Documentation"&gt;Shared Access Signature&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://phpazure.codeplex.com/wikipage?title=Table%20storage&amp;referringTitle=Documentation"&gt;Table storage&lt;/a&gt; &lt;a href="http://azurephp.interoperabilitybridges.com/articles/tutorial-using-table-storage" class="externalLink"&gt;Table storage explained&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://phpazure.codeplex.com/wikipage?title=Defining%20entities%20for%20Table%20Storage&amp;referringTitle=Documentation"&gt;Defining entities for Table Storage&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://phpazure.codeplex.com/wikipage?title=Table%20storage%20session%20handler&amp;referringTitle=Documentation"&gt;Table storage session handler&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://phpazure.codeplex.com/wikipage?title=Queue%20storage&amp;referringTitle=Documentation"&gt;Queue storage&lt;/a&gt; &lt;a href="http://azurephp.interoperabilitybridges.com/articles/tutorial-using-queue-service" class="externalLink"&gt;Queue storage explained&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://phpazure.codeplex.com/wikipage?title=Diagnostics&amp;referringTitle=Documentation"&gt;Diagnostics&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://phpazure.codeplex.com/wikipage?title=Management&amp;referringTitle=Documentation"&gt;Management&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://azurephp.interoperabilitybridges.com/articles/resources-for-building-scalable-php-applications-on-windows-azure" class="externalLink"&gt;Scaling PHP applications&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://azurephp.interoperabilitybridges.com/articles/scaling-php-applications-on-windows-azure-part-i-performance-metrics" class="externalLink"&gt;Performance metrics&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://azurephp.interoperabilitybridges.com/articles/scaling-php-applications-on-windows-azure-part-ii-role-management" class="externalLink"&gt;Role Management&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://azurephp.interoperabilitybridges.com/articles/scaling-php-applications-on-windows-azure-part-iii-performance-monitor" class="externalLink"&gt;Performance monitor&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://azurephp.interoperabilitybridges.com/articles/scaling-php-applications-on-windows-azure-part-iv-using-worker-roles-for-automated-scaling" class="externalLink"&gt;Using worker roles for automated scaling&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://azurephp.interoperabilitybridges.com/articles/deploying-your-first-php-application-to-windows-azure#new_deploy" class="externalLink"&gt;Deploying PHP applications to Windows Azure&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>blobaugh</author><pubDate>Tue, 22 Nov 2011 16:32:42 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Documentation 20111122043242P</guid></item><item><title>Updated Wiki: Home</title><link>http://phpazure.codeplex.com/wikipage?version=24</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Windows Azure SDK for PHP&lt;/h1&gt;
&lt;h2&gt;1. What is Windows Azure SDK for PHP?&lt;/h2&gt;As part of Microsoft’s commitment to Interoperability, this open source project is an effort bridge PHP developers to Windows Azure. The Windows Azure SDK for PHP is an open source project to provide a software development kit for Windows Azure and Windows Azure Storage.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Overview
&lt;ul&gt;&lt;li&gt;Enables PHP developers to take advantage of the Microsoft Cloud Services Platform  – Windows Azure.  &lt;/li&gt;
&lt;li&gt;Provides consistent programming model for Windows Azure Storage (Blobs, Tables &amp;amp; Queues)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Features
&lt;ul&gt;&lt;li&gt;PHP classes for Windows Azure Blobs, Tables &amp;amp; Queues (for CRUD operations)&lt;/li&gt;
&lt;li&gt;Helper Classes for HTTP transport, AuthN/AuthZ, REST &amp;amp; Error Management&lt;/li&gt;
&lt;li&gt;Manageability, Instrumentation &amp;amp; Logging support&lt;/li&gt;
&lt;li&gt;Support for storing PHP sessions in Azure Table Storage&lt;/li&gt;
&lt;li&gt;Management API client&lt;/li&gt;
&lt;li&gt;Diagnostics client&lt;/li&gt;
&lt;li&gt;Command line tools set for
&lt;ul&gt;&lt;li&gt;Packaging&lt;/li&gt;
&lt;li&gt;Management&lt;/li&gt;
&lt;li&gt;Diagnostics&lt;/li&gt;
&lt;li&gt;Deployment&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;View the Documentation page of this project or the &lt;a href="http://azurephp.interoperabilitybridges.com/tutorials" class="externalLink"&gt;Windows Azure PHP&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; website maintained by the Microsoft Interoperability Team.&lt;br /&gt;
&lt;h2&gt;2. Project contributors&lt;/h2&gt;Windows Azure SDK for PHP is an open source collaboration project driven by &lt;a href="http://www.realdolmen.com" class="externalLink"&gt;RealDolmen&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://www.microsoft.com" class="externalLink"&gt;Microsoft&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=PHPAzure&amp;DownloadId=66981" alt="logorealdolmen.jpg" title="logorealdolmen.jpg" /&gt;&lt;br /&gt;The &lt;a href="http://www.realdolmen.com" class="externalLink"&gt;RealDolmen&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; Microsoft Competence Centre is occupied with the supply of made-to-measure professional Microsoft solutions to customers and is the largest Microsoft integrator in Belgium. RealDolmen has over 10 years of experience of complete implementation of Microsoft projects in terms of strategy, architecture, implementation, integration of systems, maintenance, training as well as support.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=PHPAzure&amp;DownloadId=66982" alt="logomicrosoft.jpg" title="logomicrosoft.jpg" /&gt; &lt;br /&gt;&lt;a href="http://www.microsoft.com" class="externalLink"&gt;Microsoft&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; is the project sponsor and provides Architectural &amp;amp; Technical Guidance on its &lt;a href="http://www.azure.com" class="externalLink"&gt;Windows Azure&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; platform.&lt;br /&gt;
&lt;h2&gt;Thanks to&lt;/h2&gt;&lt;a href="http://www.realdolmen.com" class="externalLink"&gt;RealDolmen&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, contributor&lt;br /&gt;&lt;a href="http://www.microsoft.com" class="externalLink"&gt;Microsoft&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, sponsor&lt;br /&gt;&lt;a href="http://www.zitec.com" class="externalLink"&gt;Zitec&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, feedback and testing&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>blobaugh</author><pubDate>Tue, 13 Sep 2011 22:01:01 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20110913100101P</guid></item><item><title>New Comment on "Documentation"</title><link>http://phpazure.codeplex.com/documentation?&amp;ANCHOR#C20949</link><description>Please see http&amp;#58;&amp;#47;&amp;#47;azurephp.interoperabilitybridges.com&amp;#47;tutorials for tutorials on deploying WordPress, Drupal and other PHP CMS on Windows Azure</description><author>blobaugh</author><pubDate>Tue, 13 Sep 2011 21:53:21 GMT</pubDate><guid isPermaLink="false">New Comment on "Documentation" 20110913095321P</guid></item><item><title>Updated Wiki: Documentation</title><link>http://phpazure.codeplex.com/documentation?version=4</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Getting Started&lt;/h1&gt;Back to &lt;a href="http://phpazure.codeplex.com/wikipage?referringTitle=Documentation"&gt;Home&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The following topics are available:
&lt;ul&gt;&lt;li&gt;&lt;a href="http://azurephp.interoperabilitybridges.com/articles/understanding-the-windows-azure-platform" class="externalLink"&gt;Understanding Windows Azure&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href="http://azurephp.interoperabilitybridges.com/get-started" class="externalLink"&gt;Setup the Windows Azure development environment pre-requisites&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href="http://azurephp.interoperabilitybridges.com/articles/setup-the-windows-azure-sdk-for-php" class="externalLink"&gt;Setup the Windows Azure SDK for PHP&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://azurephp.interoperabilitybridges.com/articles/build-and-deploy-a-windows-azure-php-application" class="externalLink"&gt;Build your first Windows Azure PHP application&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Using the command line tools
&lt;ul&gt;&lt;li&gt;&lt;a href="http://azurephp.interoperabilitybridges.com/articles/packaging-applications" class="externalLink"&gt;Packaging applications&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://azurephp.interoperabilitybridges.com/articles/using-scaffolds" class="externalLink"&gt;Using scaffolds&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://phpazure.codeplex.com/wikipage?title=Blob%20storage&amp;referringTitle=Documentation"&gt;Blob storage&lt;/a&gt; &lt;a href="http://azurephp.interoperabilitybridges.com/articles/tutorial-using-table-storage" class="externalLink"&gt;Blob storage explained&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://phpazure.codeplex.com/wikipage?title=Blob%20storage%20stream%20wrapper&amp;referringTitle=Documentation"&gt;Blob storage stream wrapper&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://phpazure.codeplex.com/wikipage?title=Shared%20Access%20Signature&amp;referringTitle=Documentation"&gt;Shared Access Signature&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://phpazure.codeplex.com/wikipage?title=Table%20storage&amp;referringTitle=Documentation"&gt;Table storage&lt;/a&gt; &lt;a href="http://azurephp.interoperabilitybridges.com/articles/tutorial-using-table-storage" class="externalLink"&gt;Table storage explained&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://phpazure.codeplex.com/wikipage?title=Defining%20entities%20for%20Table%20Storage&amp;referringTitle=Documentation"&gt;Defining entities for Table Storage&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://phpazure.codeplex.com/wikipage?title=Table%20storage%20session%20handler&amp;referringTitle=Documentation"&gt;Table storage session handler&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://phpazure.codeplex.com/wikipage?title=Queue%20storage&amp;referringTitle=Documentation"&gt;Queue storage&lt;/a&gt; &lt;a href="http://azurephp.interoperabilitybridges.com/articles/tutorial-using-queue-service" class="externalLink"&gt;Queue storage explained&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://phpazure.codeplex.com/wikipage?title=Diagnostics&amp;referringTitle=Documentation"&gt;Diagnostics&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://phpazure.codeplex.com/wikipage?title=Management&amp;referringTitle=Documentation"&gt;Management&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://azurephp.interoperabilitybridges.com/articles/resources-for-building-scalable-php-applications-on-windows-azure" class="externalLink"&gt;Scaling PHP applications&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://azurephp.interoperabilitybridges.com/articles/scaling-php-applications-on-windows-azure-part-i-performance-metrics" class="externalLink"&gt;Performance metrics&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://azurephp.interoperabilitybridges.com/articles/scaling-php-applications-on-windows-azure-part-ii-role-management" class="externalLink"&gt;Role Management&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://azurephp.interoperabilitybridges.com/articles/scaling-php-applications-on-windows-azure-part-iii-performance-monitor" class="externalLink"&gt;Performance monitor&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://azurephp.interoperabilitybridges.com/articles/scaling-php-applications-on-windows-azure-part-iv-using-worker-roles-for-automated-scaling" class="externalLink"&gt;Using worker roles for automated scaling&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://azurephp.interoperabilitybridges.com/articles/deploying-your-first-php-application-to-windows-azure#new_deploy" class="externalLink"&gt;Deploying PHP applications to Windows Azure&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>blobaugh</author><pubDate>Tue, 13 Sep 2011 21:52:07 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Documentation 20110913095207P</guid></item><item><title>New Comment on "Documentation"</title><link>http://phpazure.codeplex.com/documentation?&amp;ANCHOR#C19302</link><description>Here is a full detailed presentation on  how to setup wordpress on azure. http&amp;#58;&amp;#47;&amp;#47;cloudgeist.blogspot.com&amp;#47;2011&amp;#47;04&amp;#47;guide-on-hosting-wordpress-on-windows.html</description><author>ajaleelka</author><pubDate>Sat, 16 Apr 2011 16:07:34 GMT</pubDate><guid isPermaLink="false">New Comment on "Documentation" 20110416040734P</guid></item><item><title>Updated Wiki: Table storage session handler</title><link>http://phpazure.codeplex.com/wikipage?title=Table storage session handler&amp;version=6</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Getting Started&lt;/h1&gt;Back to &lt;a href="http://phpazure.codeplex.com/wikipage?title=Getting%20Started&amp;referringTitle=Table%20storage%20session%20handler"&gt;Getting Started&lt;/a&gt;.&lt;br /&gt;Back to &lt;a href="http://phpazure.codeplex.com/wikipage?title=Table%20storage&amp;referringTitle=Table%20storage%20session%20handler"&gt;Table storage&lt;/a&gt;.&lt;br /&gt;
&lt;h2&gt;Table storage session handler&lt;/h2&gt;When running a PHP application on the Windows Azure platform in a load-balanced mode (running 2 Web Role instances or more), it is important that PHP session data can be shared between multiple Web Role instances. The Windows Azure SDK for PHP provides the &lt;i&gt;Microsoft_WindowsAzure_SessionHandler&lt;/i&gt; class, which uses Windows Azure Table Storage or Blob Storage as a session handler for PHP applications.&lt;br /&gt;&lt;br /&gt;To use the &lt;i&gt;Microsoft_WindowsAzure_SessionHandler&lt;/i&gt; session handler, it should be registered as the default session handler for your PHP application:&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;/** Microsoft_WindowsAzure_Storage_Table */&lt;/span&gt;
&lt;span style="color:Blue;"&gt;require_once&lt;/span&gt; &lt;span style="color:#A31515;"&gt;&amp;#39;Microsoft/WindowsAzure/Storage/Table.php&amp;#39;&lt;/span&gt;; &lt;span style="color:Green;"&gt;// note you can also use blob storage for larger sessions&lt;/span&gt;

&lt;span style="color:Green;"&gt;/** Microsoft_WindowsAzure_SessionHandler */&lt;/span&gt;
&lt;span style="color:Blue;"&gt;require_once&lt;/span&gt; &lt;span style="color:#A31515;"&gt;&amp;#39;Microsoft/WindowsAzure/SessionHandler.php&amp;#39;&lt;/span&gt;;

$storageClient = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Microsoft_WindowsAzure_Storage_Table(&lt;span style="color:#A31515;"&gt;&amp;#39;table.core.windows.net&amp;#39;&lt;/span&gt;, &lt;span style="color:#A31515;"&gt;&amp;#39;myaccount&amp;#39;&lt;/span&gt;, &lt;span style="color:#A31515;"&gt;&amp;#39;myauthkey&amp;#39;&lt;/span&gt;);

$sessionHandler = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Microsoft_WindowsAzure_SessionHandler($storageClient , &lt;span style="color:#A31515;"&gt;&amp;#39;sessionstable&amp;#39;&lt;/span&gt;);
$sessionHandler-&amp;gt;register();
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;The above code registers the &lt;i&gt;Microsoft_WindowsAzure_SessionHandler&lt;/i&gt; session handler and will store sessions in a table called &amp;quot;sessionstable&amp;quot;.&lt;br /&gt;&lt;br /&gt;After registration of the &lt;i&gt;Microsoft_WindowsAzure_SessionHandler&lt;/i&gt; session handler, sessions can be started and used in the same way as a normal PHP session:&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Green;"&gt;/** Microsoft_WindowsAzure_Storage_Table */&lt;/span&gt;
&lt;span style="color:Blue;"&gt;require_once&lt;/span&gt; &lt;span style="color:#A31515;"&gt;&amp;#39;Microsoft/WindowsAzure/Storage/Table.php&amp;#39;&lt;/span&gt;;

&lt;span style="color:Green;"&gt;/** Microsoft_WindowsAzure_SessionHandler */&lt;/span&gt;
&lt;span style="color:Blue;"&gt;require_once&lt;/span&gt; &lt;span style="color:#A31515;"&gt;&amp;#39;Microsoft/WindowsAzure/SessionHandler.php&amp;#39;&lt;/span&gt;;

$storageClient = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Microsoft_WindowsAzure_Storage_Table(&lt;span style="color:#A31515;"&gt;&amp;#39;table.core.windows.net&amp;#39;&lt;/span&gt;, &lt;span style="color:#A31515;"&gt;&amp;#39;myaccount&amp;#39;&lt;/span&gt;, &lt;span style="color:#A31515;"&gt;&amp;#39;myauthkey&amp;#39;&lt;/span&gt;);

$sessionHandler = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Microsoft_WindowsAzure_SessionHandler($storageClient , &lt;span style="color:#A31515;"&gt;&amp;#39;sessionstable&amp;#39;&lt;/span&gt;);
$sessionHandler-&amp;gt;register();

session_start();

&lt;span style="color:Blue;"&gt;if&lt;/span&gt; (!&lt;span style="color:Blue;"&gt;isset&lt;/span&gt;($_SESSION[&lt;span style="color:#A31515;"&gt;&amp;#39;firstVisit&amp;#39;&lt;/span&gt;]))
{
    $_SESSION[&lt;span style="color:#A31515;"&gt;&amp;#39;firstVisit&amp;#39;&lt;/span&gt;] = time();
}

&lt;span style="color:Green;"&gt;// ...&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;WARNING: &lt;/b&gt; The &lt;i&gt;Microsoft_WindowsAzure_SessionHandler&lt;/i&gt; session handler should be registered &lt;u&gt;before&lt;/u&gt; a call to &lt;i&gt;session_start()&lt;/i&gt; is made!&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>maartenba</author><pubDate>Fri, 08 Apr 2011 10:41:01 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Table storage session handler 20110408104101A</guid></item><item><title>Updated Wiki: Management</title><link>http://phpazure.codeplex.com/wikipage?title=Management&amp;version=12</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;Management&lt;/h1&gt;
&lt;p&gt;Back to &lt;a href="http://phpazure.codeplex.com/wikipage?title=Getting%20Started"&gt;
Getting Started&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Introduction&lt;/h2&gt;
&lt;p&gt;The Service Management API provides programmatic access to much of the functionality available through the Management Portal. Using the Service Management API, you can manage your storage accounts and hosted services, your service deployments, and your affinity
 groups. &lt;br&gt;
&lt;br&gt;
The Service Management API is a REST API. All API operations are performed over SSL and mutually authenticated using X.509 v3 certificates. The management service may be accessed from within a service running in Windows Azure, or directly over the Internet
 from any application that can send an HTTPS request and receive an HTTPS response. For more background and in-depth information about the management API's, refer to the
&lt;a href="http://msdn.microsoft.com/en-us/library/ee460807.aspx"&gt;MSDN documentation&lt;/a&gt;.
&lt;br&gt;
&lt;br&gt;
The Windows Azure SDK for PHP provides a wrapper for the REST API calls, providing native PHP access to all the functionality exposed by this service.&lt;/p&gt;
&lt;h2&gt;Prerequisites&lt;/h2&gt;
&lt;p&gt;The Service Management API requires mutual authentication of certificates over SSL to ensure that a request made to the management service is secure.&lt;/p&gt;
&lt;p&gt;To make a request against the Service Management API, you must first associate a certificate with your subscription, then send the certificate's private key with the request.&lt;/p&gt;
&lt;h3&gt;Generating a management certificate&lt;/h3&gt;
&lt;p&gt;Any X.509 v3 certificate can be used for authentication against the Service Management API. You can use a self-signed certificate or one signed by a certificate authority. The length of the certificate's key must be at least 2048 bits. Windows Azure will
 reject any certificate that does not meet this requirement.&lt;/p&gt;
&lt;p&gt;A pair of PFX and CER (private and public) certificates should be generated. Also, a PEM certificate will be required for connecting to the management API from PHP. Generating the required certificates can be done as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Download OpenSSL from &lt;a title="http://www.openssl.org/related/binaries.html" href="http://www.openssl.org/related/binaries.html"&gt;
http://www.openssl.org/related/binaries.html&lt;/a&gt;. &lt;/li&gt;&lt;li&gt;Start a command prompt and navigate to the folder where OpenSSL.exe is installed
&lt;/li&gt;&lt;li&gt;Issue the following statement to generate a PEM certificate. This certificate will be the base certificate used by PHP to connect to the management service API.&lt;em&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; openssl req -x509 -nodes -days 9999 -newkey rsa:2048 -keyout mycert.pem -out mycert.pem&lt;/em&gt;
&lt;/li&gt;&lt;li&gt;Issue the following command to convert the PEM certificate to a PFX certificate.
&lt;br&gt;
&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; openssl pkcs12 -export -out mycert.pfx -in mycert.pem -name &amp;quot;My Certificate&amp;quot;&lt;/em&gt;
&lt;/li&gt;&lt;li&gt;Issue the following command to convert the PEM cetificate to a CER certificate.
&lt;br&gt;
&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; openssl x509 -in mycert.pem -inform PEM -out mycert.cer -outform DER&lt;/em&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;The folder where OpenSSL.exe is installed will now contain 3 files: mycert.pem, mycert.pfx and mycert.cer. These files can be used for connecting to the management API from PHP.&lt;/p&gt;
&lt;h3&gt;Preparing your subscription to use the Management API&lt;/h3&gt;
&lt;p&gt;In order for the Windows Azure SDK to be able to connect to the Windows Azure Service Management API, a certificate file should be uploaded to the Windows Azure management portal. This can be done through
&lt;a href="http://windows.azure.com"&gt;http://windows.azure.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Under &lt;em&gt;Hosted Services, Storage Accounts &amp;amp; CDN&lt;/em&gt;, upload the CER file created previously.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://download.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=phpazure&amp;DownloadId=223010"&gt;&lt;img title="image" src="http://download.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=phpazure&amp;DownloadId=223011" border="0" alt="image" width="644" height="391" style="padding-left:0px; padding-right:0px; display:inline; margin-left:0px; margin-right:0px; padding-top:0px; border:0px"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;API examples&lt;/h2&gt;
&lt;p&gt;This topic lists some examples of using the Windows Azure SDK for PHP. Other features are available in the download package, as well as a detailed API documentation of those features.&lt;/p&gt;
&lt;h3&gt;Creating a management client instance&lt;/h3&gt;
&lt;p&gt;All service management requests are done through the &lt;em&gt;Microsoft_WindowsAzure_Management_Client
&lt;/em&gt;class.&lt;/p&gt;
&lt;div id="x_x_x_scid:9D7513F9-C04C-4721-824A-2B34F0212519:6901311a-290a-4f8e-98b8-bafb5f2fd34b" style="margin:0px; display:inline; float:none; padding:0px"&gt;
&lt;pre style="width:682px; height:273px; background-color:white; overflow:auto"&gt;&lt;div&gt;&lt;span style="color:#008080"&gt;1&lt;/span&gt; &lt;span style="color:#008000"&gt;//&lt;/span&gt;&lt;span style="color:#008000"&gt; Certificate&lt;/span&gt;&lt;span style="color:#008000"&gt;
&lt;/span&gt;&lt;span style="color:#008080"&gt;2&lt;/span&gt; &lt;span style="color:#800080"&gt;$certificate&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;=&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;&amp;lt;path-to-certificate.pem&amp;gt;&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;;
&lt;/span&gt;&lt;span style="color:#008080"&gt;3&lt;/span&gt; &lt;span style="color:#000000"&gt;
&lt;/span&gt;&lt;span style="color:#008080"&gt;4&lt;/span&gt; &lt;span style="color:#008000"&gt;//&lt;/span&gt;&lt;span style="color:#008000"&gt; Require client&lt;/span&gt;&lt;span style="color:#008000"&gt;
&lt;/span&gt;&lt;span style="color:#008080"&gt;5&lt;/span&gt; &lt;span style="color:#0000ff"&gt;require&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;Microsoft/WindowsAzure/Management/Client.php&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;;
&lt;/span&gt;&lt;span style="color:#008080"&gt;6&lt;/span&gt; &lt;span style="color:#000000"&gt;
&lt;/span&gt;&lt;span style="color:#008080"&gt;7&lt;/span&gt; &lt;span style="color:#800080"&gt;$client&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;=&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#0000ff"&gt;new&lt;/span&gt;&lt;span style="color:#000000"&gt; Microsoft_WindowsAzure_Management_Client(
&lt;/span&gt;&lt;span style="color:#008080"&gt;8&lt;/span&gt; &lt;span style="color:#000000"&gt;    &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;&amp;lt;subscription id&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#800080"&gt;$certificate&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;&amp;lt;optional certificate password&amp;gt;&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;A real example of this can be the following:&lt;/p&gt;
&lt;div id="x_x_x_scid:9D7513F9-C04C-4721-824A-2B34F0212519:7aaa9e8f-a13a-4c96-981e-fb6fc305fddb" style="margin:0px; display:inline; float:none; padding:0px"&gt;
&lt;pre style="width:682px; height:273px; background-color:white; overflow:auto"&gt;&lt;div&gt;&lt;span style="color:#008080"&gt;1&lt;/span&gt; &lt;span style="color:#008000"&gt;//&lt;/span&gt;&lt;span style="color:#008000"&gt; Certificate&lt;/span&gt;&lt;span style="color:#008000"&gt;
&lt;/span&gt;&lt;span style="color:#008080"&gt;2&lt;/span&gt; &lt;span style="color:#800080"&gt;$certificate&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;=&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;C:\Projects\Workspaces\Default\Azure\management.pem&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;;
&lt;/span&gt;&lt;span style="color:#008080"&gt;3&lt;/span&gt; &lt;span style="color:#000000"&gt;
&lt;/span&gt;&lt;span style="color:#008080"&gt;4&lt;/span&gt; &lt;span style="color:#008000"&gt;//&lt;/span&gt;&lt;span style="color:#008000"&gt; Require client&lt;/span&gt;&lt;span style="color:#008000"&gt;
&lt;/span&gt;&lt;span style="color:#008080"&gt;5&lt;/span&gt; &lt;span style="color:#0000ff"&gt;require&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;Microsoft/WindowsAzure/Management/Client.php&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;;
&lt;/span&gt;&lt;span style="color:#008080"&gt;6&lt;/span&gt; &lt;span style="color:#000000"&gt;
&lt;/span&gt;&lt;span style="color:#008080"&gt;7&lt;/span&gt; &lt;span style="color:#800080"&gt;$client&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;=&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#0000ff"&gt;new&lt;/span&gt;&lt;span style="color:#000000"&gt; Microsoft_WindowsAzure_Management_Client(
&lt;/span&gt;&lt;span style="color:#008080"&gt;8&lt;/span&gt; &lt;span style="color:#000000"&gt;    &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;xxxxxxxx-xxxx-xxxx-xxxx-xxxx&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#800080"&gt;$certificate&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;c00lP@ssw0rd&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;h3&gt;Creating a hosted service programmatically&lt;/h3&gt;
&lt;p&gt;A hosted service can be created programmatically. The following code creates a new hosted service located in
&lt;em&gt;West Europe&lt;/em&gt; named &lt;em&gt;wazsdk-sample&lt;/em&gt; with a label &lt;em&gt;wazsdk-sample&lt;/em&gt;. A description is also given to the hosted service.&lt;/p&gt;
&lt;div id="x_x_x_scid:9D7513F9-C04C-4721-824A-2B34F0212519:be00ae35-b294-47ea-8913-3e0a41fe9a08" style="margin:0px; display:inline; float:none; padding:0px"&gt;
&lt;pre style="width:682px; height:40px; background-color:white; overflow:auto"&gt;&lt;div&gt;&lt;span style="color:#008080"&gt;1&lt;/span&gt; &lt;span style="color:#800080"&gt;$client&lt;/span&gt;&lt;span style="color:#000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:#000000"&gt;createHostedService(&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;wazsdk-sample&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;wazsdk-sample&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;Sample using Windows Azure SDK for PHP&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;West Europe&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;h3&gt;Creating a deployment programmatically&lt;/h3&gt;
&lt;p&gt;First of all, a valid &lt;em&gt;.cspkg&lt;/em&gt; Windows Azure deployment package should be created and uploaded to a blob storage account
&lt;em&gt;in the same subscription&lt;/em&gt; as your hosted service. This can be done using any blob storage client, for example the Windows Azure SDK blob client, which can be created through the management API. The following code block uploads a file
&lt;em&gt;WindowsAzureProject1.cspkg&lt;/em&gt; to a blob storage account &lt;em&gt;sdksamplestorage&lt;/em&gt;.&lt;/p&gt;
&lt;div id="x_x_x_scid:9D7513F9-C04C-4721-824A-2B34F0212519:150d99a9-ab7b-4a9b-85bc-c21d6bd8651e" style="margin:0px; display:inline; float:none; padding:0px"&gt;
&lt;pre style="width:682px; height:178px; background-color:white; overflow:auto"&gt;&lt;div&gt;&lt;span style="color:#008080"&gt;1&lt;/span&gt; &lt;span style="color:#800080"&gt;$blobClient&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;=&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#800080"&gt;$client&lt;/span&gt;&lt;span style="color:#000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:#000000"&gt;createBlobClientForService(&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;sdksamplestorage&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;);
&lt;/span&gt;&lt;span style="color:#008080"&gt;2&lt;/span&gt; &lt;span style="color:#800080"&gt;$blobClient&lt;/span&gt;&lt;span style="color:#000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:#000000"&gt;createContainerIfNotExists(&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;deployments&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;);
&lt;/span&gt;&lt;span style="color:#008080"&gt;3&lt;/span&gt; &lt;span style="color:#800080"&gt;$blobClient&lt;/span&gt;&lt;span style="color:#000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:#000000"&gt;putBlob(&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;deployments&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;WindowsAzureProject1.cspkg&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;c:\temp\WindowsAzureProject1.cspkg&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;);
&lt;/span&gt;&lt;span style="color:#008080"&gt;4&lt;/span&gt; &lt;span style="color:#000000"&gt;
&lt;/span&gt;&lt;span style="color:#008080"&gt;5&lt;/span&gt; &lt;span style="color:#800080"&gt;$packageUrl&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;=&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;http://sdksamplestorage.blob.core.windows.net/deployments/WindowsAzureProject1.cspkg&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Next, the actual deployment to a staging or production slot can be performed. The following statement creates a
&lt;em&gt;production&lt;/em&gt; deployment named &lt;em&gt;mydeployment1&lt;/em&gt; in the hosted service labeled
&lt;em&gt;wazsdk-sample&lt;/em&gt;. Also, a configuration file should be specified. This can be a path to a
&lt;em&gt;ServiceConfiguration.cscfg&lt;/em&gt; file on the file system or the actual XML contents of that file. For you to decide.&lt;/p&gt;
&lt;div id="x_x_x_scid:9D7513F9-C04C-4721-824A-2B34F0212519:e67c4b10-8430-43b5-95e5-756faa03ba96" style="margin:0px; display:inline; float:none; padding:0px"&gt;
&lt;pre style="width:682px; height:178px; background-color:white; overflow:auto"&gt;&lt;div&gt;&lt;span style="color:#008080"&gt;1&lt;/span&gt; &lt;span style="color:#800080"&gt;$client&lt;/span&gt;&lt;span style="color:#000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:#000000"&gt;createDeployment(&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;wazsdk-sample&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;production&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;mydeployment1&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;mydeployment1&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#800080"&gt;$packageUrl&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;c:\temp\ServiceConfiguration.cscfg&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#0000ff"&gt;true&lt;/span&gt;&lt;span style="color:#000000"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;This will trigger the deployment process on Windows Azure. If needed, a &amp;ldquo;waiting loop&amp;rdquo; can be created to continue other code only after the deployment is finished. Note that this is optional.&lt;/p&gt;
&lt;div id="x_x_x_scid:9D7513F9-C04C-4721-824A-2B34F0212519:f73b84e0-5e75-4372-83f9-bfb0e27021b4" style="margin:0px; display:inline; float:none; padding:0px"&gt;
&lt;pre style="width:682px; height:178px; background-color:white; overflow:auto"&gt;&lt;div&gt;&lt;span style="color:#008080"&gt;1&lt;/span&gt; &lt;span style="color:#800080"&gt;$client&lt;/span&gt;&lt;span style="color:#000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:#000000"&gt;waitForOperation();&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;h3&gt;Other supported actions&lt;/h3&gt;
&lt;p&gt;The following actions are currently possible using the Windows Azure for SDK management client:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tracking Asynchronous Service Management Requests
&lt;ul&gt;
&lt;li&gt;Get Operation&amp;nbsp; Status &lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;&lt;li&gt;Operations on Storage Accounts
&lt;ul&gt;
&lt;li&gt;List Storage Accounts &lt;/li&gt;&lt;li&gt;Get Storage Account Properties &lt;/li&gt;&lt;li&gt;Get Storage Account Keys &lt;/li&gt;&lt;li&gt;Regenerate Storage Account Keys &lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;&lt;li&gt;Operations on Hosted Services
&lt;ul&gt;
&lt;li&gt;List Hosted Services &lt;/li&gt;&lt;li&gt;Create Hosted Service &lt;/li&gt;&lt;li&gt;Update Hosted Service &lt;/li&gt;&lt;li&gt;Delete Hosted Service &lt;/li&gt;&lt;li&gt;Get Hosted Service Properties &lt;/li&gt;&lt;li&gt;Create Deployment &lt;/li&gt;&lt;li&gt;Get Deployment &lt;/li&gt;&lt;li&gt;Swap Deployment &lt;/li&gt;&lt;li&gt;Delete Deployment &lt;/li&gt;&lt;li&gt;Change Deployment Configuration &lt;/li&gt;&lt;li&gt;Update Deployment Status &lt;/li&gt;&lt;li&gt;Upgrade Deployment &lt;/li&gt;&lt;li&gt;Walk Upgrade Domain &lt;/li&gt;&lt;li&gt;Reboot Role Instance &lt;/li&gt;&lt;li&gt;Reimage Role Instance &lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;&lt;li&gt;Operations on Certificates
&lt;ul&gt;
&lt;li&gt;List Certificates &lt;/li&gt;&lt;li&gt;Get Certificate &lt;/li&gt;&lt;li&gt;Add Certificate &lt;/li&gt;&lt;li&gt;Delete Certificate &lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;&lt;li&gt;Operations on Affinity Groups
&lt;ul&gt;
&lt;li&gt;List Affinity Groups &lt;/li&gt;&lt;li&gt;Create Affinity Group &lt;/li&gt;&lt;li&gt;Delete Affinity Group &lt;/li&gt;&lt;li&gt;Update Affinity Group &lt;/li&gt;&lt;li&gt;Get Affinity Group Properties &lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;&lt;li&gt;Operations on Locations
&lt;ul&gt;
&lt;li&gt;List Locations &lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;&lt;li&gt;Operations for Tracking Asynchronous Requests
&lt;ul&gt;
&lt;li&gt;List Operating Systems &lt;/li&gt;&lt;li&gt;List Operating System Families &lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;&lt;li&gt;Operations for Retrieving Operating System Information
&lt;ul&gt;
&lt;li&gt;List Operating Systems &lt;/li&gt;&lt;li&gt;List Operating System Families &lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;&lt;li&gt;List Subscription Operations &lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>maartenba</author><pubDate>Fri, 01 Apr 2011 11:22:37 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Management 20110401112237A</guid></item><item><title>Updated Wiki: Management</title><link>http://phpazure.codeplex.com/wikipage?title=Management&amp;version=11</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;Management&lt;/h1&gt;
&lt;p&gt;Back to &lt;a href="/PHPAzure/wikipage?title=Getting%20Started&amp;referringTitle=Management"&gt;
Getting Started&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Introduction&lt;/h2&gt;
&lt;p&gt;The Service Management API provides programmatic access to much of the functionality available through the Management Portal. Using the Service Management API, you can manage your storage accounts and hosted services, your service deployments, and your affinity
 groups. &lt;br&gt;
&lt;br&gt;
The Service Management API is a REST API. All API operations are performed over SSL and mutually authenticated using X.509 v3 certificates. The management service may be accessed from within a service running in Windows Azure, or directly over the Internet
 from any application that can send an HTTPS request and receive an HTTPS response. For more background and in-depth information about the management API's, refer to the
&lt;a href="http://msdn.microsoft.com/en-us/library/ee460807.aspx"&gt;MSDN documentation&lt;/a&gt;.
&lt;br&gt;
&lt;br&gt;
The Windows Azure SDK for PHP provides a wrapper for the REST API calls, providing native PHP access to all the functionality exposed by this service.&lt;/p&gt;
&lt;h2&gt;Prerequisites&lt;/h2&gt;
&lt;p&gt;The Service Management API requires mutual authentication of certificates over SSL to ensure that a request made to the management service is secure.&lt;/p&gt;
&lt;p&gt;To make a request against the Service Management API, you must first associate a certificate with your subscription, then send the certificate's private key with the request.&lt;/p&gt;
&lt;h3&gt;Generating a management certificate&lt;/h3&gt;
&lt;p&gt;Any X.509 v3 certificate can be used for authentication against the Service Management API. You can use a self-signed certificate or one signed by a certificate authority. The length of the certificate's key must be at least 2048 bits. Windows Azure will
 reject any certificate that does not meet this requirement.&lt;/p&gt;
&lt;p&gt;A pair of PFX and CER (private and public) certificates should be generated. Also, a PEM certificate will be required for connecting to the management API from PHP. Generating the required certificates can be done as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Download OpenSSL from &lt;a title="http://www.openssl.org/related/binaries.html" href="http://www.openssl.org/related/binaries.html"&gt;
http://www.openssl.org/related/binaries.html&lt;/a&gt;. &lt;/li&gt;&lt;li&gt;Start a command prompt and navigate to the folder where OpenSSL.exe is installed
&lt;/li&gt;&lt;li&gt;Issue the following statement to generate a PEM certificate. This certificate will be the base certificate used by PHP to connect to the management service API.&lt;em&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; openssl req -x509 -nodes -days 9999 -newkey rsa:2048 -keyout mycert.pem -out mycert.pem&lt;/em&gt;
&lt;/li&gt;&lt;li&gt;Issue the following command to convert the PEM certificate to a PFX certificate.
&lt;br&gt;
&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; openssl pkcs12 -export -out mycert.pfx -in mycert.pem -name &amp;quot;My Certificate&amp;quot;&lt;/em&gt;
&lt;/li&gt;&lt;li&gt;Issue the following command to convert the PEM cetificate to a CER certificate.
&lt;br&gt;
&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; openssl x509 -in mycert.pem -inform PEM -out mycert.cer -outform DER&lt;/em&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;The folder where OpenSSL.exe is installed will now contain 3 files: mycert.pem, mycert.pfx and mycert.cer. These files can be used for connecting to the management API from PHP.&lt;/p&gt;
&lt;h3&gt;Preparing your subscription to use the Management API&lt;/h3&gt;
&lt;p&gt;In order for the Windows Azure SDK to be able to connect to the Windows Azure Service Management API, a certificate file should be uploaded to the Windows Azure management portal. This can be done through
&lt;a href="http://windows.azure.com"&gt;http://windows.azure.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Under &lt;em&gt;Hosted Services, Storage Accounts &amp;amp; CDN&lt;/em&gt;, upload the CER file created previously.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://download.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=phpazure&amp;DownloadId=223010"&gt;&lt;img title="image" src="http://download.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=phpazure&amp;DownloadId=223011" border="0" alt="image" width="644" height="391" style="padding-left:0px; padding-right:0px; display:inline; margin-left:0px; margin-right:0px; padding-top:0px; border:0px"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;API examples&lt;/h2&gt;
&lt;p&gt;This topic lists some examples of using the Windows Azure SDK for PHP. Other features are available in the download package, as well as a detailed API documentation of those features.&lt;/p&gt;
&lt;h3&gt;Creating a management client instance&lt;/h3&gt;
&lt;p&gt;All service management requests are done through the &lt;em&gt;Microsoft_WindowsAzure_Management_Client
&lt;/em&gt;class.&lt;/p&gt;
&lt;div id="x_x_scid:9D7513F9-C04C-4721-824A-2B34F0212519:6901311a-290a-4f8e-98b8-bafb5f2fd34b" style="margin:0px; display:inline; float:none; padding:0px"&gt;
&lt;pre style="width:682px; height:273px; background-color:white; overflow:auto"&gt;&lt;div&gt;&lt;span style="color:#008080"&gt;1&lt;/span&gt; &lt;span style="color:#008000"&gt;//&lt;/span&gt;&lt;span style="color:#008000"&gt; Certificate&lt;/span&gt;&lt;span style="color:#008000"&gt;
&lt;/span&gt;&lt;span style="color:#008080"&gt;2&lt;/span&gt; &lt;span style="color:#800080"&gt;$certificate&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;=&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;&amp;lt;path-to-certificate.pem&amp;gt;&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;;
&lt;/span&gt;&lt;span style="color:#008080"&gt;3&lt;/span&gt; &lt;span style="color:#000000"&gt;
&lt;/span&gt;&lt;span style="color:#008080"&gt;4&lt;/span&gt; &lt;span style="color:#008000"&gt;//&lt;/span&gt;&lt;span style="color:#008000"&gt; Require client&lt;/span&gt;&lt;span style="color:#008000"&gt;
&lt;/span&gt;&lt;span style="color:#008080"&gt;5&lt;/span&gt; &lt;span style="color:#0000ff"&gt;require&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;Microsoft/WindowsAzure/Management/Client.php&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;;
&lt;/span&gt;&lt;span style="color:#008080"&gt;6&lt;/span&gt; &lt;span style="color:#000000"&gt;
&lt;/span&gt;&lt;span style="color:#008080"&gt;7&lt;/span&gt; &lt;span style="color:#800080"&gt;$client&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;=&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#0000ff"&gt;new&lt;/span&gt;&lt;span style="color:#000000"&gt; Microsoft_WindowsAzure_Management_Client(
&lt;/span&gt;&lt;span style="color:#008080"&gt;8&lt;/span&gt; &lt;span style="color:#000000"&gt;    &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;&amp;lt;subscription id&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#800080"&gt;$certificate&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;&amp;lt;optional certificate password&amp;gt;&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;A real example of this can be the following:&lt;/p&gt;
&lt;div id="x_x_scid:9D7513F9-C04C-4721-824A-2B34F0212519:7aaa9e8f-a13a-4c96-981e-fb6fc305fddb" style="margin:0px; display:inline; float:none; padding:0px"&gt;
&lt;pre style="width:682px; height:273px; background-color:white; overflow:auto"&gt;&lt;div&gt;&lt;span style="color:#008080"&gt;1&lt;/span&gt; &lt;span style="color:#008000"&gt;//&lt;/span&gt;&lt;span style="color:#008000"&gt; Certificate&lt;/span&gt;&lt;span style="color:#008000"&gt;
&lt;/span&gt;&lt;span style="color:#008080"&gt;2&lt;/span&gt; &lt;span style="color:#800080"&gt;$certificate&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;=&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;C:\Projects\Workspaces\Default\Azure\management.pem&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;;
&lt;/span&gt;&lt;span style="color:#008080"&gt;3&lt;/span&gt; &lt;span style="color:#000000"&gt;
&lt;/span&gt;&lt;span style="color:#008080"&gt;4&lt;/span&gt; &lt;span style="color:#008000"&gt;//&lt;/span&gt;&lt;span style="color:#008000"&gt; Require client&lt;/span&gt;&lt;span style="color:#008000"&gt;
&lt;/span&gt;&lt;span style="color:#008080"&gt;5&lt;/span&gt; &lt;span style="color:#0000ff"&gt;require&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;Microsoft/WindowsAzure/Management/Client.php&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;;
&lt;/span&gt;&lt;span style="color:#008080"&gt;6&lt;/span&gt; &lt;span style="color:#000000"&gt;
&lt;/span&gt;&lt;span style="color:#008080"&gt;7&lt;/span&gt; &lt;span style="color:#800080"&gt;$client&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;=&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#0000ff"&gt;new&lt;/span&gt;&lt;span style="color:#000000"&gt; Microsoft_WindowsAzure_Management_Client(
&lt;/span&gt;&lt;span style="color:#008080"&gt;8&lt;/span&gt; &lt;span style="color:#000000"&gt;    &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;xxxxxxxx-xxxx-xxxx-xxxx-xxxx&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#800080"&gt;$certificate&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;c00lP@ssw0rd&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;h3&gt;Creating a hosted service programmatically&lt;/h3&gt;
&lt;p&gt;A hosted service can be created programmatically. The following code creates a new hosted service located in
&lt;em&gt;West Europe&lt;/em&gt; named &lt;em&gt;wazsdk-sample&lt;/em&gt; with a label &lt;em&gt;wazsdk-sample&lt;/em&gt;. A description is also given to the hosted service.&lt;/p&gt;
&lt;div id="x_x_scid:9D7513F9-C04C-4721-824A-2B34F0212519:be00ae35-b294-47ea-8913-3e0a41fe9a08" style="margin:0px; display:inline; float:none; padding:0px"&gt;
&lt;pre style="width:682px; height:40px; background-color:white; overflow:auto"&gt;&lt;div&gt;&lt;span style="color:#008080"&gt;1&lt;/span&gt; &lt;span style="color:#800080"&gt;$client&lt;/span&gt;&lt;span style="color:#000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:#000000"&gt;createHostedService(&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;wazsdk-sample&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;wazsdk-sample&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;Sample using Windows Azure SDK for PHP&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;West Europe&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;h3&gt;Creating a deployment programmatically&lt;/h3&gt;
&lt;p&gt;First of all, a valid &lt;em&gt;.cspkg&lt;/em&gt; Windows Azure deployment package should be created and uploaded to a blob storage account
&lt;em&gt;in the same subscription&lt;/em&gt; as your hosted service. This can be done using any blob storage client, for example the Windows Azure SDK blob client, which can be created through the management API. The following code block uploads a file
&lt;em&gt;WindowsAzureProject1.cspkg&lt;/em&gt; to a blob storage account &lt;em&gt;sdksamplestorage&lt;/em&gt;.&lt;/p&gt;
&lt;div id="x_x_scid:9D7513F9-C04C-4721-824A-2B34F0212519:150d99a9-ab7b-4a9b-85bc-c21d6bd8651e" style="margin:0px; display:inline; float:none; padding:0px"&gt;
&lt;pre style="width:682px; height:178px; background-color:white; overflow:auto"&gt;&lt;div&gt;&lt;span style="color:#008080"&gt;1&lt;/span&gt; &lt;span style="color:#800080"&gt;$blobClient&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;=&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#800080"&gt;$client&lt;/span&gt;&lt;span style="color:#000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:#000000"&gt;createBlobClientForService(&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;sdksamplestorage&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;);
&lt;/span&gt;&lt;span style="color:#008080"&gt;2&lt;/span&gt; &lt;span style="color:#800080"&gt;$blobClient&lt;/span&gt;&lt;span style="color:#000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:#000000"&gt;createContainerIfNotExists(&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;deployments&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;);
&lt;/span&gt;&lt;span style="color:#008080"&gt;3&lt;/span&gt; &lt;span style="color:#800080"&gt;$blobClient&lt;/span&gt;&lt;span style="color:#000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:#000000"&gt;putBlob(&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;deployments&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;WindowsAzureProject1.cspkg&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;c:\temp\WindowsAzureProject1.cspkg&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;);
&lt;/span&gt;&lt;span style="color:#008080"&gt;4&lt;/span&gt; &lt;span style="color:#000000"&gt;
&lt;/span&gt;&lt;span style="color:#008080"&gt;5&lt;/span&gt; &lt;span style="color:#800080"&gt;$packageUrl&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;=&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;http://sdksamplestorage.blob.core.windows.net/deployments/WindowsAzureProject1.cspkg&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Next, the actual deployment to a staging or production slot can be performed. The following statement creates a
&lt;em&gt;production&lt;/em&gt; deployment named &lt;em&gt;mydeployment1&lt;/em&gt; in the hosted service labeled
&lt;em&gt;wazsdk-sample&lt;/em&gt;. Also, a configuration file should be specified. This can be a path to a
&lt;em&gt;ServiceConfiguration.cscfg&lt;/em&gt; file on the file system or the actual XML contents of that file. For you to decide.&lt;/p&gt;
&lt;div id="x_x_scid:9D7513F9-C04C-4721-824A-2B34F0212519:e67c4b10-8430-43b5-95e5-756faa03ba96" style="margin:0px; display:inline; float:none; padding:0px"&gt;
&lt;pre style="width:682px; height:178px; background-color:white; overflow:auto"&gt;&lt;div&gt;&lt;span style="color:#008080"&gt;1&lt;/span&gt; &lt;span style="color:#800080"&gt;$client&lt;/span&gt;&lt;span style="color:#000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:#000000"&gt;createDeployment(&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;wazsdk-sample&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;production&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;mydeployment1&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;mydeployment1&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#800080"&gt;$packageUrl&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;c:\temp\ServiceConfiguration.cscfg&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#0000ff"&gt;true&lt;/span&gt;&lt;span style="color:#000000"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;This will trigger the deployment process on Windows Azure. If needed, a &amp;ldquo;waiting loop&amp;rdquo; can be created to continue other code only after the deployment is finished. Note that this is optional.&lt;/p&gt;
&lt;div id="x_x_scid:9D7513F9-C04C-4721-824A-2B34F0212519:f73b84e0-5e75-4372-83f9-bfb0e27021b4" style="margin:0px; display:inline; float:none; padding:0px"&gt;
&lt;pre style="width:682px; height:178px; background-color:white; overflow:auto"&gt;&lt;div&gt;&lt;span style="color:#008080"&gt;1&lt;/span&gt; &lt;span style="color:#800080"&gt;$client&lt;/span&gt;&lt;span style="color:#000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:#000000"&gt;waitForOperation();&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;h3&gt;Other supported actions&lt;/h3&gt;
&lt;p&gt;The following actions are currently possible using the Windows Azure for SDK management client:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tracking Asynchronous Service Management Requests
&lt;ul&gt;
&lt;li&gt;Get Operation&amp;nbsp; Status &lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;&lt;li&gt;Operations on Storage Accounts
&lt;ul&gt;
&lt;li&gt;List Storage Accounts &lt;/li&gt;&lt;li&gt;Get Storage Account Properties &lt;/li&gt;&lt;li&gt;Get Storage Account Keys &lt;/li&gt;&lt;li&gt;Regenerate Storage Account Keys &lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;&lt;li&gt;Operations on Hosted Services
&lt;ul&gt;
&lt;li&gt;List Hosted Services &lt;/li&gt;&lt;li&gt;Create Hosted Service &lt;/li&gt;&lt;li&gt;Update Hosted Service &lt;/li&gt;&lt;li&gt;Delete Hosted Service &lt;/li&gt;&lt;li&gt;Get Hosted Service Properties &lt;/li&gt;&lt;li&gt;Create Deployment &lt;/li&gt;&lt;li&gt;Get Deployment &lt;/li&gt;&lt;li&gt;Swap Deployment &lt;/li&gt;&lt;li&gt;Delete Deployment &lt;/li&gt;&lt;li&gt;Change Deployment Configuration &lt;/li&gt;&lt;li&gt;Update Deployment Status &lt;/li&gt;&lt;li&gt;Upgrade Deployment &lt;/li&gt;&lt;li&gt;Walk Upgrade Domain &lt;/li&gt;&lt;li&gt;Reboot Role Instance &lt;/li&gt;&lt;li&gt;Reimage Role Instance &lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;&lt;li&gt;Operations on Certificates
&lt;ul&gt;
&lt;li&gt;List Certificates &lt;/li&gt;&lt;li&gt;Get Certificate &lt;/li&gt;&lt;li&gt;Add Certificate &lt;/li&gt;&lt;li&gt;Delete Certificate &lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;&lt;li&gt;Operations on Affinity Groups
&lt;ul&gt;
&lt;li&gt;List Affinity Groups &lt;/li&gt;&lt;li&gt;Create Affinity Group &lt;/li&gt;&lt;li&gt;Delete Affinity Group &lt;/li&gt;&lt;li&gt;Update Affinity Group &lt;/li&gt;&lt;li&gt;Get Affinity Group Properties &lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;&lt;li&gt;Operations on Locations
&lt;ul&gt;
&lt;li&gt;List Locations &lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;&lt;li&gt;Operations for Tracking Asynchronous Requests
&lt;ul&gt;
&lt;li&gt;List Operating Systems &lt;/li&gt;&lt;li&gt;List Operating System Families &lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;&lt;li&gt;Operations for Retrieving Operating System Information
&lt;ul&gt;
&lt;li&gt;List Operating Systems &lt;/li&gt;&lt;li&gt;List Operating System Families &lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;&lt;li&gt;List Subscription Operations &lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>maartenba</author><pubDate>Fri, 01 Apr 2011 09:10:41 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Management 20110401091041A</guid></item><item><title>Updated Wiki: Management</title><link>http://phpazure.codeplex.com/wikipage?title=Management&amp;version=10</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;Management&lt;/h1&gt;
Back to &lt;a href="/PHPAzure/wikipage?title=Getting%20Started&amp;referringTitle=Management"&gt;
Getting Started&lt;/a&gt;. &lt;br&gt;
&lt;h2&gt;Introduction&lt;/h2&gt;
The Service Management API provides programmatic access to much of the functionality available through the Management Portal. Using the Service Management API, you can manage your storage accounts and hosted services, your service deployments, and your affinity
 groups. &lt;br&gt;
&lt;br&gt;
The Service Management API is a REST API. All API operations are performed over SSL and mutually authenticated using X.509 v3 certificates. The management service may be accessed from within a service running in Windows Azure, or directly over the Internet
 from any application that can send an HTTPS request and receive an HTTPS response. For more background and in-depth information about the management API's, refer to the
&lt;a href="http://msdn.microsoft.com/en-us/library/ee460807.aspx"&gt;MSDN documentation&lt;span&gt;&lt;/span&gt;&lt;/a&gt;.
&lt;br&gt;
&lt;br&gt;
The Windows Azure SDK for PHP provides a wrapper for the REST API calls, providing native PHP access to all the functionality exposed by this service.
&lt;br&gt;
&lt;h2&gt;Prerequisites&lt;/h2&gt;
&lt;p&gt;The Service Management API requires mutual authentication of certificates over SSL to ensure that a request made to the management service is secure.&lt;/p&gt;
&lt;p&gt;To make a request against the Service Management API, you must first associate a certificate with your subscription, then send the certificate's private key with the request.&lt;/p&gt;
&lt;h3&gt;Generating a management certificate&lt;/h3&gt;
&lt;p&gt;Any X.509 v3 certificate can be used for authentication against the Service Management API. You can use a self-signed certificate or one signed by a certificate authority. The length of the certificate's key must be at least 2048 bits. Windows Azure will
 reject any certificate that does not meet this requirement.&lt;/p&gt;
&lt;p&gt;A pair of PFX and CER (private and public) certificates should be generated. Also, a PEM certificate will be required for connecting to the management API from PHP. Generating the required certificates can be done as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Download OpenSSL from &lt;a title="http://www.openssl.org/related/binaries.html" href="http://www.openssl.org/related/binaries.html"&gt;
http://www.openssl.org/related/binaries.html&lt;/a&gt;. &lt;/li&gt;&lt;li&gt;Start a command prompt and navigate to the folder where OpenSSL.exe is installed
&lt;/li&gt;&lt;li&gt;Issue the following statement to generate a PEM certificate. This certificate will be the base certificate used by PHP to connect to the management service API.&lt;em&gt;
&lt;br&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; openssl req -x509 -nodes -days 9999 -newkey rsa:2048 -keyout mycert.pem -out mycert.pem&lt;/em&gt;
&lt;/li&gt;&lt;li&gt;Issue the following command to convert the PEM certificate to a PFX certificate.
&lt;br&gt;
&lt;em&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; openssl pkcs12 -export -out mycert.pfx -in mycert.pem -name &amp;quot;My Certificate&amp;quot;&lt;/em&gt;
&lt;/li&gt;&lt;li&gt;Issue the following command to convert the PEM cetificate to a CER certificate.
&lt;br&gt;
&lt;em&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; openssl x509 -in mycert.pem -inform PEM -out mycert.cer -outform DER&lt;/em&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;The folder where OpenSSL.exe is installed will now contain 3 files: mycert.pem, mycert.pfx and mycert.cer. These files can be used for connecting to the management API from PHP.&lt;/p&gt;
&lt;h3&gt;Preparing your subscription to use the Management API&lt;/h3&gt;
&lt;p&gt;In order for the Windows Azure SDK to be able to connect to the Windows Azure Service Management API, a certificate file should be uploaded to the Windows Azure management portal. This can be done through
&lt;a href="http://windows.azure.com"&gt;http://windows.azure.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Under &lt;em&gt;Hosted Services, Storage Accounts &amp;amp; CDN&lt;/em&gt;, upload the CER file created previously.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://download.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=phpazure&amp;DownloadId=223010"&gt;&lt;img title="image" border="0" alt="image" src="http://download.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=phpazure&amp;DownloadId=223011" width="644" height="391" style="border-bottom:0px; border-left:0px; padding-left:0px; padding-right:0px; display:inline; margin-left:0px; border-top:0px; margin-right:0px; border-right:0px; padding-top:0px"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;h2&gt;API examples&lt;/h2&gt;
&lt;p&gt;This topic lists some examples of using the Windows Azure SDK for PHP. Other features are available in the download package, as well as a detailed API documentation of those features.&lt;/p&gt;
&lt;h3&gt;Creating a management client instance&lt;/h3&gt;
&lt;p&gt;All service management requests are done through the &lt;em&gt;Microsoft_WindowsAzure_Management_Client
&lt;/em&gt;class.&lt;/p&gt;
&lt;div id="x_scid:9D7513F9-C04C-4721-824A-2B34F0212519:6901311a-290a-4f8e-98b8-bafb5f2fd34b" style="padding-bottom:0px; margin:0px; padding-left:0px; padding-right:0px; display:inline; float:none; padding-top:0px"&gt;
&lt;pre style="width:682px; height:273px; background-color:White; overflow:auto"&gt;&lt;div&gt;&amp;lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&amp;gt;&lt;span style="color:#008080"&gt;1&lt;/span&gt; &lt;span style="color:#008000"&gt;//&lt;/span&gt;&lt;span style="color:#008000"&gt; Certificate&lt;/span&gt;&lt;span style="color:#008000"&gt;
&lt;/span&gt;&lt;span style="color:#008080"&gt;2&lt;/span&gt; &lt;span style="color:#008000"&gt;&lt;/span&gt;&lt;span style="color:#800080"&gt;$certificate&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;=&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;&amp;lt;path-to-certificate.pem&amp;gt;&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;;
&lt;/span&gt;&lt;span style="color:#008080"&gt;3&lt;/span&gt; &lt;span style="color:#000000"&gt;
&lt;/span&gt;&lt;span style="color:#008080"&gt;4&lt;/span&gt; &lt;span style="color:#000000"&gt;&lt;/span&gt;&lt;span style="color:#008000"&gt;//&lt;/span&gt;&lt;span style="color:#008000"&gt; Require client&lt;/span&gt;&lt;span style="color:#008000"&gt;
&lt;/span&gt;&lt;span style="color:#008080"&gt;5&lt;/span&gt; &lt;span style="color:#008000"&gt;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;require&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;Microsoft/WindowsAzure/Management/Client.php&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;;
&lt;/span&gt;&lt;span style="color:#008080"&gt;6&lt;/span&gt; &lt;span style="color:#000000"&gt;
&lt;/span&gt;&lt;span style="color:#008080"&gt;7&lt;/span&gt; &lt;span style="color:#000000"&gt;&lt;/span&gt;&lt;span style="color:#800080"&gt;$client&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;=&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#0000FF"&gt;new&lt;/span&gt;&lt;span style="color:#000000"&gt; Microsoft_WindowsAzure_Management_Client(
&lt;/span&gt;&lt;span style="color:#008080"&gt;8&lt;/span&gt; &lt;span style="color:#000000"&gt;    &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;&amp;lt;subscription id&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#800080"&gt;$certificate&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;&amp;lt;optional certificate password&amp;gt;&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;
&amp;lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin. http://dunnhq.com --&amp;gt;&lt;/div&gt;
&lt;p&gt;A real example of this can be the following:&lt;/p&gt;
&lt;div id="x_scid:9D7513F9-C04C-4721-824A-2B34F0212519:7aaa9e8f-a13a-4c96-981e-fb6fc305fddb" style="padding-bottom:0px; margin:0px; padding-left:0px; padding-right:0px; display:inline; float:none; padding-top:0px"&gt;
&lt;pre style="width:682px; height:273px; background-color:White; overflow:auto"&gt;&lt;div&gt;&amp;lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&amp;gt;&lt;span style="color:#008080"&gt;1&lt;/span&gt; &lt;span style="color:#008000"&gt;//&lt;/span&gt;&lt;span style="color:#008000"&gt; Certificate&lt;/span&gt;&lt;span style="color:#008000"&gt;
&lt;/span&gt;&lt;span style="color:#008080"&gt;2&lt;/span&gt; &lt;span style="color:#008000"&gt;&lt;/span&gt;&lt;span style="color:#800080"&gt;$certificate&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;=&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;C:\Projects\Workspaces\Default\Azure\management.pem&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;;
&lt;/span&gt;&lt;span style="color:#008080"&gt;3&lt;/span&gt; &lt;span style="color:#000000"&gt;
&lt;/span&gt;&lt;span style="color:#008080"&gt;4&lt;/span&gt; &lt;span style="color:#000000"&gt;&lt;/span&gt;&lt;span style="color:#008000"&gt;//&lt;/span&gt;&lt;span style="color:#008000"&gt; Require client&lt;/span&gt;&lt;span style="color:#008000"&gt;
&lt;/span&gt;&lt;span style="color:#008080"&gt;5&lt;/span&gt; &lt;span style="color:#008000"&gt;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;require&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;Microsoft/WindowsAzure/Management/Client.php&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;;
&lt;/span&gt;&lt;span style="color:#008080"&gt;6&lt;/span&gt; &lt;span style="color:#000000"&gt;
&lt;/span&gt;&lt;span style="color:#008080"&gt;7&lt;/span&gt; &lt;span style="color:#000000"&gt;&lt;/span&gt;&lt;span style="color:#800080"&gt;$client&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;=&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#0000FF"&gt;new&lt;/span&gt;&lt;span style="color:#000000"&gt; Microsoft_WindowsAzure_Management_Client(
&lt;/span&gt;&lt;span style="color:#008080"&gt;8&lt;/span&gt; &lt;span style="color:#000000"&gt;    &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;xxxxxxxx-xxxx-xxxx-xxxx-xxxx&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#800080"&gt;$certificate&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;c00lP@ssw0rd&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;
&amp;lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin. http://dunnhq.com --&amp;gt;&lt;/div&gt;
&lt;h3&gt;Creating a hosted service programmatically&lt;/h3&gt;
&lt;p&gt;A hosted service can be created programmatically. The following code creates a new hosted service located in
&lt;em&gt;West Europe&lt;/em&gt; named &lt;em&gt;wazsdk-sample&lt;/em&gt; with a label &lt;em&gt;wazsdk-sample&lt;/em&gt;. A description is also given to the hosted service.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div id="x_scid:9D7513F9-C04C-4721-824A-2B34F0212519:be00ae35-b294-47ea-8913-3e0a41fe9a08" style="padding-bottom:0px; margin:0px; padding-left:0px; padding-right:0px; display:inline; float:none; padding-top:0px"&gt;
&lt;pre style="width:682px; height:40px; background-color:White; overflow:auto"&gt;&lt;div&gt;&amp;lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&amp;gt;&lt;span style="color:#008080"&gt;1&lt;/span&gt; &lt;span style="color:#800080"&gt;$client&lt;/span&gt;&lt;span style="color:#000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:#000000"&gt;createHostedService(&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;wazsdk-sample&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;wazsdk-sample&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;Sample using Windows Azure SDK for PHP&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;West Europe&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;
&amp;lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin. http://dunnhq.com --&amp;gt;&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h3&gt;Creating a deployment programmatically&lt;/h3&gt;
&lt;p&gt;First of all, a valid &lt;em&gt;.cspkg&lt;/em&gt; Windows Azure deployment package should be created and uploaded to a blob storage account
&lt;em&gt;in the same subscription&lt;/em&gt; as your hosted service. This can be done using any blob storage client, for example the Windows Azure SDK blob client, which can be created through the management API. The following code block uploads a file
&lt;em&gt;WindowsAzureProject1.cspkg&lt;/em&gt; to a blob storage account &lt;em&gt;sdksamplestorage&lt;/em&gt;.&lt;/p&gt;
&lt;div id="x_scid:9D7513F9-C04C-4721-824A-2B34F0212519:150d99a9-ab7b-4a9b-85bc-c21d6bd8651e" style="padding-bottom:0px; margin:0px; padding-left:0px; padding-right:0px; display:inline; float:none; padding-top:0px"&gt;
&lt;pre style="width:682px; height:178px; background-color:White; overflow:auto"&gt;&lt;div&gt;&amp;lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&amp;gt;&lt;span style="color:#008080"&gt;1&lt;/span&gt; &lt;span style="color:#800080"&gt;$blobClient&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;=&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#800080"&gt;$client&lt;/span&gt;&lt;span style="color:#000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:#000000"&gt;createBlobClientForService(&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;sdksamplestorage&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;);
&lt;/span&gt;&lt;span style="color:#008080"&gt;2&lt;/span&gt; &lt;span style="color:#000000"&gt;&lt;/span&gt;&lt;span style="color:#800080"&gt;$blobClient&lt;/span&gt;&lt;span style="color:#000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:#000000"&gt;createContainerIfNotExists(&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;deployments&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;);
&lt;/span&gt;&lt;span style="color:#008080"&gt;3&lt;/span&gt; &lt;span style="color:#000000"&gt;&lt;/span&gt;&lt;span style="color:#800080"&gt;$blobClient&lt;/span&gt;&lt;span style="color:#000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:#000000"&gt;putBlob(&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;deployments&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;WindowsAzureProject1.cspkg&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;c:\temp\WindowsAzureProject1.cspkg&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;);
&lt;/span&gt;&lt;span style="color:#008080"&gt;4&lt;/span&gt; &lt;span style="color:#000000"&gt;
&lt;/span&gt;&lt;span style="color:#008080"&gt;5&lt;/span&gt; &lt;span style="color:#000000"&gt;&lt;/span&gt;&lt;span style="color:#800080"&gt;$packageUrl&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;=&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;http://sdksamplestorage.blob.core.windows.net/deployments/WindowsAzureProject1.cspkg&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;
&amp;lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin. http://dunnhq.com --&amp;gt;&lt;/div&gt;
&lt;p&gt;Next, the actual deployment to a staging or production slot can be performed. The following statement creates a
&lt;em&gt;production&lt;/em&gt; deployment named &lt;em&gt;mydeployment1&lt;/em&gt; in the hosted service labeled
&lt;em&gt;wazsdk-sample&lt;/em&gt;. Also, a configuration file should be specified. This can be a path to a
&lt;em&gt;ServiceConfiguration.cscfg&lt;/em&gt; file on the file system or the actual XML contents of that file. For you to decide.&lt;/p&gt;
&lt;div id="x_scid:9D7513F9-C04C-4721-824A-2B34F0212519:e67c4b10-8430-43b5-95e5-756faa03ba96" style="padding-bottom:0px; margin:0px; padding-left:0px; padding-right:0px; display:inline; float:none; padding-top:0px"&gt;
&lt;pre style="width:682px; height:178px; background-color:White; overflow:auto"&gt;&lt;div&gt;&amp;lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&amp;gt;&lt;span style="color:#008080"&gt;1&lt;/span&gt; &lt;span style="color:#800080"&gt;$client&lt;/span&gt;&lt;span style="color:#000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:#000000"&gt;createDeployment(&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;wazsdk-sample&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;production&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;mydeployment1&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;mydeployment1&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#800080"&gt;$packageUrl&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;c:\temp\ServiceConfiguration.cscfg&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#0000FF"&gt;true&lt;/span&gt;&lt;span style="color:#000000"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;
&amp;lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin. http://dunnhq.com --&amp;gt;&lt;/div&gt;
&lt;p&gt;This will trigger the deployment process on Windows Azure. If needed, a “waiting loop” can be created to continue other code only after the deployment is finished. Note that this is optional.&lt;/p&gt;
&lt;div id="x_scid:9D7513F9-C04C-4721-824A-2B34F0212519:f73b84e0-5e75-4372-83f9-bfb0e27021b4" style="padding-bottom:0px; margin:0px; padding-left:0px; padding-right:0px; display:inline; float:none; padding-top:0px"&gt;
&lt;pre style="width:682px; height:178px; background-color:White; overflow:auto"&gt;&lt;div&gt;&amp;lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&amp;gt;&lt;span style="color:#008080"&gt;1&lt;/span&gt; &lt;span style="color:#800080"&gt;$client&lt;/span&gt;&lt;span style="color:#000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:#000000"&gt;waitForOperation();&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;
&amp;lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin. http://dunnhq.com --&amp;gt;&lt;/div&gt;
&lt;h3&gt;Other supported actions&lt;/h3&gt;
&lt;p&gt;The following actions are currently possible using the Windows Azure for SDK management client:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tracking Asynchronous Service Management Requests &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Get Operation&amp;#160; Status&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Operations on Storage Accounts &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;List Storage Accounts &lt;br&gt;
Get Storage Account Properties &lt;br&gt;
Get Storage Account Keys &lt;br&gt;
Regenerate Storage Account Keys&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Operations on Hosted Services &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;List Hosted Services &lt;br&gt;
Create Hosted Service &lt;br&gt;
Update Hosted Service &lt;br&gt;
Delete Hosted Service &lt;br&gt;
Get Hosted Service Properties &lt;br&gt;
Create Deployment &lt;br&gt;
Get Deployment &lt;br&gt;
Swap Deployment &lt;br&gt;
Delete Deployment &lt;br&gt;
Change Deployment Configuration &lt;br&gt;
Update Deployment Status &lt;br&gt;
Upgrade Deployment &lt;br&gt;
Walk Upgrade Domain &lt;br&gt;
Reboot Role Instance &lt;br&gt;
Reimage Role Instance &lt;br&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Operations on Certificates &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;List Certificates &lt;br&gt;
Get Certificate &lt;br&gt;
Add Certificate &lt;br&gt;
Delete Certificate&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Operations on Affinity Groups &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;List Affinity Groups &lt;br&gt;
Create Affinity Group &lt;br&gt;
Delete Affinity Group &lt;br&gt;
Update Affinity Group &lt;br&gt;
Get Affinity Group Properties&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Operations on Locations &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;List Locations&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Operations for Tracking Asynchronous Requests &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;List Operating Systems &lt;br&gt;
List Operating System Families &lt;br&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Operations for Retrieving Operating System Information &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;List Operating Systems &lt;br&gt;
List Operating System Families&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;List Subscription Operations &lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>maartenba</author><pubDate>Fri, 01 Apr 2011 09:06:03 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Management 20110401090603A</guid></item><item><title>Updated Wiki: Management</title><link>http://phpazure.codeplex.com/wikipage?title=Management&amp;version=9</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;Management&lt;/h1&gt;
Back to &lt;a href="/PHPAzure/wikipage?title=Getting%20Started&amp;referringTitle=Management"&gt;
Getting Started&lt;/a&gt;. &lt;br&gt;
&lt;h2&gt;Introduction&lt;/h2&gt;
The Service Management API provides programmatic access to much of the functionality available through the Management Portal. Using the Service Management API, you can manage your storage accounts and hosted services, your service deployments, and your affinity
 groups. &lt;br&gt;
&lt;br&gt;
The Service Management API is a REST API. All API operations are performed over SSL and mutually authenticated using X.509 v3 certificates. The management service may be accessed from within a service running in Windows Azure, or directly over the Internet
 from any application that can send an HTTPS request and receive an HTTPS response. For more background and in-depth information about the management API's, refer to the
&lt;a href="http://msdn.microsoft.com/en-us/library/ee460807.aspx"&gt;MSDN documentation&lt;span&gt;&lt;/span&gt;&lt;/a&gt;.
&lt;br&gt;
&lt;br&gt;
The Windows Azure SDK for PHP provides a wrapper for the REST API calls, providing native PHP access to all the functionality exposed by this service.
&lt;br&gt;
&lt;h2&gt;Prerequisites&lt;/h2&gt;
&lt;p&gt;The Service Management API requires mutual authentication of certificates over SSL to ensure that a request made to the management service is secure.&lt;/p&gt;
&lt;p&gt;To make a request against the Service Management API, you must first associate a certificate with your subscription, then send the certificate's private key with the request.&lt;/p&gt;
&lt;h3&gt;Generating a management certificate&lt;/h3&gt;
&lt;p&gt;Any X.509 v3 certificate can be used for authentication against the Service Management API. You can use a self-signed certificate or one signed by a certificate authority. The length of the certificate's key must be at least 2048 bits. Windows Azure will
 reject any certificate that does not meet this requirement.&lt;/p&gt;
&lt;p&gt;A pair of PFX and CER (private and public) certificates should be generated. Also, a PEM certificate will be required for connecting to the management API from PHP. Generating the required certificates can be done as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Download OpenSSL from &lt;a title="http://www.openssl.org/related/binaries.html" href="http://www.openssl.org/related/binaries.html"&gt;
http://www.openssl.org/related/binaries.html&lt;/a&gt;. &lt;/li&gt;&lt;li&gt;Start a command prompt and navigate to the folder where OpenSSL.exe is installed
&lt;/li&gt;&lt;li&gt;Issue the following statement to generate a PEM certificate. This certificate will be the base certificate used by PHP to connect to the management service API.&lt;em&gt;
&lt;br&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; openssl req -x509 -nodes -days 9999 -newkey rsa:2048 -keyout mycert.pem -out mycert.pem&lt;/em&gt;
&lt;/li&gt;&lt;li&gt;Issue the following command to convert the PEM certificate to a PFX certificate.
&lt;br&gt;
&lt;em&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; openssl pkcs12 -export -out mycert.pfx -in mycert.pem -name &amp;quot;My Certificate&amp;quot;&lt;/em&gt;
&lt;/li&gt;&lt;li&gt;Issue the following command to convert the PEM cetificate to a CER certificate.
&lt;br&gt;
&lt;em&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; openssl x509 -in mycert.pem -inform PEM -out mycert.cer -outform DER&lt;/em&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;The folder where OpenSSL.exe is installed will now contain 3 files: mycert.pem, mycert.pfx and mycert.cer. These files can be used for connecting to the management API from PHP.&lt;/p&gt;
&lt;h3&gt;Preparing your subscription to use the Management API&lt;/h3&gt;
&lt;p&gt;In order for the Windows Azure SDK to be able to connect to the Windows Azure Service Management API, a certificate file should be uploaded to the Windows Azure management portal. This can be done through
&lt;a href="http://windows.azure.com"&gt;http://windows.azure.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Under &lt;em&gt;Hosted Services, Storage Accounts &amp;amp; CDN&lt;/em&gt;, upload the CER file created previously.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://download.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=phpazure&amp;DownloadId=223010"&gt;&lt;img title="image" border="0" alt="image" src="http://download.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=phpazure&amp;DownloadId=223011" width="644" height="391" style="border-bottom:0px; border-left:0px; padding-left:0px; padding-right:0px; display:inline; margin-left:0px; border-top:0px; margin-right:0px; border-right:0px; padding-top:0px"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;h2&gt;API examples&lt;/h2&gt;
&lt;p&gt;This topic lists some examples of using the Windows Azure SDK for PHP. Other features are available in the download package, as well as a detailed API documentation of those features.&lt;/p&gt;
&lt;h3&gt;Creating a management client instance&lt;/h3&gt;
&lt;p&gt;All service management requests are done through the &lt;em&gt;Microsoft_WindowsAzure_Management_Client
&lt;/em&gt;class.&lt;/p&gt;
&lt;div id="x_scid:9D7513F9-C04C-4721-824A-2B34F0212519:6901311a-290a-4f8e-98b8-bafb5f2fd34b" style="padding-bottom:0px; margin:0px; padding-left:0px; padding-right:0px; display:inline; float:none; padding-top:0px"&gt;
&lt;pre style="width:682px; height:273px; background-color:White; overflow:auto"&gt;&lt;div&gt;&amp;lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&amp;gt;&lt;span style="color:#008080"&gt;1&lt;/span&gt; &lt;span style="color:#008000"&gt;//&lt;/span&gt;&lt;span style="color:#008000"&gt; Certificate&lt;/span&gt;&lt;span style="color:#008000"&gt;
&lt;/span&gt;&lt;span style="color:#008080"&gt;2&lt;/span&gt; &lt;span style="color:#008000"&gt;&lt;/span&gt;&lt;span style="color:#800080"&gt;$certificate&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;=&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;&amp;lt;path-to-certificate.pem&amp;gt;&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;;
&lt;/span&gt;&lt;span style="color:#008080"&gt;3&lt;/span&gt; &lt;span style="color:#000000"&gt;
&lt;/span&gt;&lt;span style="color:#008080"&gt;4&lt;/span&gt; &lt;span style="color:#000000"&gt;&lt;/span&gt;&lt;span style="color:#008000"&gt;//&lt;/span&gt;&lt;span style="color:#008000"&gt; Require client&lt;/span&gt;&lt;span style="color:#008000"&gt;
&lt;/span&gt;&lt;span style="color:#008080"&gt;5&lt;/span&gt; &lt;span style="color:#008000"&gt;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;require&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;Microsoft/WindowsAzure/Management/Client.php&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;;
&lt;/span&gt;&lt;span style="color:#008080"&gt;6&lt;/span&gt; &lt;span style="color:#000000"&gt;
&lt;/span&gt;&lt;span style="color:#008080"&gt;7&lt;/span&gt; &lt;span style="color:#000000"&gt;&lt;/span&gt;&lt;span style="color:#800080"&gt;$client&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;=&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#0000FF"&gt;new&lt;/span&gt;&lt;span style="color:#000000"&gt; Microsoft_WindowsAzure_Management_Client(
&lt;/span&gt;&lt;span style="color:#008080"&gt;8&lt;/span&gt; &lt;span style="color:#000000"&gt;    &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;&amp;lt;subscription id&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#800080"&gt;$certificate&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;&amp;lt;optional certificate password&amp;gt;&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;
&amp;lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin. http://dunnhq.com --&amp;gt;&lt;/div&gt;
&lt;p&gt;A real example of this can be the following:&lt;/p&gt;
&lt;div id="x_scid:9D7513F9-C04C-4721-824A-2B34F0212519:7aaa9e8f-a13a-4c96-981e-fb6fc305fddb" style="padding-bottom:0px; margin:0px; padding-left:0px; padding-right:0px; display:inline; float:none; padding-top:0px"&gt;
&lt;pre style="width:682px; height:273px; background-color:White; overflow:auto"&gt;&lt;div&gt;&amp;lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&amp;gt;&lt;span style="color:#008080"&gt;1&lt;/span&gt; &lt;span style="color:#008000"&gt;//&lt;/span&gt;&lt;span style="color:#008000"&gt; Certificate&lt;/span&gt;&lt;span style="color:#008000"&gt;
&lt;/span&gt;&lt;span style="color:#008080"&gt;2&lt;/span&gt; &lt;span style="color:#008000"&gt;&lt;/span&gt;&lt;span style="color:#800080"&gt;$certificate&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;=&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;C:\Projects\Workspaces\Default\Azure\management.pem&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;;
&lt;/span&gt;&lt;span style="color:#008080"&gt;3&lt;/span&gt; &lt;span style="color:#000000"&gt;
&lt;/span&gt;&lt;span style="color:#008080"&gt;4&lt;/span&gt; &lt;span style="color:#000000"&gt;&lt;/span&gt;&lt;span style="color:#008000"&gt;//&lt;/span&gt;&lt;span style="color:#008000"&gt; Require client&lt;/span&gt;&lt;span style="color:#008000"&gt;
&lt;/span&gt;&lt;span style="color:#008080"&gt;5&lt;/span&gt; &lt;span style="color:#008000"&gt;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;require&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;Microsoft/WindowsAzure/Management/Client.php&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;;
&lt;/span&gt;&lt;span style="color:#008080"&gt;6&lt;/span&gt; &lt;span style="color:#000000"&gt;
&lt;/span&gt;&lt;span style="color:#008080"&gt;7&lt;/span&gt; &lt;span style="color:#000000"&gt;&lt;/span&gt;&lt;span style="color:#800080"&gt;$client&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;=&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#0000FF"&gt;new&lt;/span&gt;&lt;span style="color:#000000"&gt; Microsoft_WindowsAzure_Management_Client(
&lt;/span&gt;&lt;span style="color:#008080"&gt;8&lt;/span&gt; &lt;span style="color:#000000"&gt;    &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;xxxxxxxx-xxxx-xxxx-xxxx-xxxx&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#800080"&gt;$certificate&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;c00lP@ssw0rd&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;
&amp;lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin. http://dunnhq.com --&amp;gt;&lt;/div&gt;
&lt;h3&gt;Creating a hosted service programmatically&lt;/h3&gt;
&lt;p&gt;A hosted service can be created programmatically. The following code creates a new hosted service located in
&lt;em&gt;West Europe&lt;/em&gt; named &lt;em&gt;wazsdk-sample&lt;/em&gt; with a label &lt;em&gt;wazsdk-sample&lt;/em&gt;. A description is also given to the hosted service.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div id="x_scid:9D7513F9-C04C-4721-824A-2B34F0212519:be00ae35-b294-47ea-8913-3e0a41fe9a08" style="padding-bottom:0px; margin:0px; padding-left:0px; padding-right:0px; display:inline; float:none; padding-top:0px"&gt;
&lt;pre style="width:682px; height:40px; background-color:White; overflow:auto"&gt;&lt;div&gt;&amp;lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&amp;gt;&lt;span style="color:#008080"&gt;1&lt;/span&gt; &lt;span style="color:#800080"&gt;$client&lt;/span&gt;&lt;span style="color:#000000"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color:#000000"&gt;createHostedService(&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;wazsdk-sample&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;wazsdk-sample&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;Sample using Windows Azure SDK for PHP&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;West Europe&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;
&amp;lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin. http://dunnhq.com --&amp;gt;&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h3&gt;Creating a deployment programmatically&lt;/h3&gt;
TODO &lt;br&gt;
&lt;h3&gt;Other supported actions&lt;/h3&gt;
&lt;p&gt;The following actions are currently possible using the Windows Azure for SDK management client:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tracking Asynchronous Service Management Requests &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Get Operation&amp;#160; Status&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Operations on Storage Accounts &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;List Storage Accounts &lt;br&gt;
Get Storage Account Properties &lt;br&gt;
Get Storage Account Keys &lt;br&gt;
Regenerate Storage Account Keys&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Operations on Hosted Services &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;List Hosted Services &lt;br&gt;
Create Hosted Service &lt;br&gt;
Update Hosted Service &lt;br&gt;
Delete Hosted Service &lt;br&gt;
Get Hosted Service Properties &lt;br&gt;
Create Deployment &lt;br&gt;
Get Deployment &lt;br&gt;
Swap Deployment &lt;br&gt;
Delete Deployment &lt;br&gt;
Change Deployment Configuration &lt;br&gt;
Update Deployment Status &lt;br&gt;
Upgrade Deployment &lt;br&gt;
Walk Upgrade Domain &lt;br&gt;
Reboot Role Instance &lt;br&gt;
Reimage Role Instance &lt;br&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Operations on Certificates &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;List Certificates &lt;br&gt;
Get Certificate &lt;br&gt;
Add Certificate &lt;br&gt;
Delete Certificate&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Operations on Affinity Groups &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;List Affinity Groups &lt;br&gt;
Create Affinity Group &lt;br&gt;
Delete Affinity Group &lt;br&gt;
Update Affinity Group &lt;br&gt;
Get Affinity Group Properties&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Operations on Locations &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;List Locations&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Operations for Tracking Asynchronous Requests &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;List Operating Systems &lt;br&gt;
List Operating System Families &lt;br&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Operations for Retrieving Operating System Information &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;List Operating Systems &lt;br&gt;
List Operating System Families&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;List Subscription Operations &lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>maartenba</author><pubDate>Fri, 01 Apr 2011 08:58:02 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Management 20110401085802A</guid></item><item><title>Updated Wiki: Management</title><link>http://phpazure.codeplex.com/wikipage?title=Management&amp;version=8</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;Management&lt;/h1&gt;
Back to &lt;a href="/PHPAzure/wikipage?title=Getting%20Started&amp;referringTitle=Management"&gt;
Getting Started&lt;/a&gt;. &lt;br&gt;
&lt;h2&gt;Introduction&lt;/h2&gt;
The Service Management API provides programmatic access to much of the functionality available through the Management Portal. Using the Service Management API, you can manage your storage accounts and hosted services, your service deployments, and your affinity
 groups. &lt;br&gt;
&lt;br&gt;
The Service Management API is a REST API. All API operations are performed over SSL and mutually authenticated using X.509 v3 certificates. The management service may be accessed from within a service running in Windows Azure, or directly over the Internet
 from any application that can send an HTTPS request and receive an HTTPS response. For more background and in-depth information about the management API's, refer to the
&lt;a href="http://msdn.microsoft.com/en-us/library/ee460807.aspx"&gt;MSDN documentation&lt;span&gt;&lt;/span&gt;&lt;/a&gt;.
&lt;br&gt;
&lt;br&gt;
The Windows Azure SDK for PHP provides a wrapper for the REST API calls, providing native PHP access to all the functionality exposed by this service.
&lt;br&gt;
&lt;h2&gt;Prerequisites&lt;/h2&gt;
&lt;p&gt;The Service Management API requires mutual authentication of certificates over SSL to ensure that a request made to the management service is secure.&lt;/p&gt;
&lt;p&gt;To make a request against the Service Management API, you must first associate a certificate with your subscription, then send the certificate's private key with the request.&lt;/p&gt;
&lt;h3&gt;Generating a management certificate&lt;/h3&gt;
&lt;p&gt;Any X.509 v3 certificate can be used for authentication against the Service Management API. You can use a self-signed certificate or one signed by a certificate authority. The length of the certificate's key must be at least 2048 bits. Windows Azure will
 reject any certificate that does not meet this requirement.&lt;/p&gt;
&lt;p&gt;A pair of PFX and CER (private and public) certificates should be generated. Also, a PEM certificate will be required for connecting to the management API from PHP. Generating the required certificates can be done as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Download OpenSSL from &lt;a title="http://www.openssl.org/related/binaries.html" href="http://www.openssl.org/related/binaries.html"&gt;
http://www.openssl.org/related/binaries.html&lt;/a&gt;. &lt;/li&gt;&lt;li&gt;Start a command prompt and navigate to the folder where OpenSSL.exe is installed
&lt;/li&gt;&lt;li&gt;Issue the following statement to generate a PEM certificate. This certificate will be the base certificate used by PHP to connect to the management service API.&lt;em&gt;
&lt;br&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; openssl req -x509 -nodes -days 9999 -newkey rsa:2048 -keyout mycert.pem -out mycert.pem&lt;/em&gt;
&lt;/li&gt;&lt;li&gt;Issue the following command to convert the PEM certificate to a PFX certificate.
&lt;br&gt;
&lt;em&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; openssl pkcs12 -export -out mycert.pfx -in mycert.pem -name &amp;quot;My Certificate&amp;quot;&lt;/em&gt;
&lt;/li&gt;&lt;li&gt;Issue the following command to convert the PEM cetificate to a CER certificate.
&lt;br&gt;
&lt;em&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; openssl x509 -in mycert.pem -inform PEM -out mycert.cer -outform DER&lt;/em&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;The folder where OpenSSL.exe is installed will now contain 3 files: mycert.pem, mycert.pfx and mycert.cer. These files can be used for connecting to the management API from PHP.&lt;/p&gt;
&lt;h3&gt;Preparing your subscription to use the Management API&lt;/h3&gt;
&lt;p&gt;In order for the Windows Azure SDK to be able to connect to the Windows Azure Service Management API, a certificate file should be uploaded to the Windows Azure management portal. This can be done through
&lt;a href="http://windows.azure.com"&gt;http://windows.azure.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Under &lt;em&gt;Hosted Services, Storage Accounts &amp;amp; CDN&lt;/em&gt;, upload the CER file created previously.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://download.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=phpazure&amp;DownloadId=223010"&gt;&lt;img title="image" border="0" alt="image" src="http://download.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=phpazure&amp;DownloadId=223011" width="644" height="391" style="border-bottom:0px; border-left:0px; padding-left:0px; padding-right:0px; display:inline; margin-left:0px; border-top:0px; margin-right:0px; border-right:0px; padding-top:0px"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;h2&gt;API examples&lt;/h2&gt;
&lt;p&gt;This topic lists some examples of using the Windows Azure SDK for PHP. Other features are available in the download package, as well as a detailed API documentation of those features.&lt;/p&gt;
&lt;h3&gt;Creating a management client instance&lt;/h3&gt;
&lt;p&gt;All service management requests are done through the class.&lt;/p&gt;
&lt;div id="x_scid:9D7513F9-C04C-4721-824A-2B34F0212519:6901311a-290a-4f8e-98b8-bafb5f2fd34b" style="padding-bottom:0px; margin:0px; padding-left:0px; padding-right:0px; display:inline; float:none; padding-top:0px"&gt;
&lt;pre style="width:682px; height:273px; background-color:White; overflow:auto"&gt;&lt;div&gt;&amp;lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&amp;gt;&lt;span style="color:#008080"&gt;1&lt;/span&gt; &lt;span style="color:#008000"&gt;//&lt;/span&gt;&lt;span style="color:#008000"&gt; Certificate&lt;/span&gt;&lt;span style="color:#008000"&gt;
&lt;/span&gt;&lt;span style="color:#008080"&gt;2&lt;/span&gt; &lt;span style="color:#008000"&gt;&lt;/span&gt;&lt;span style="color:#800080"&gt;$certificate&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;=&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;&amp;lt;path-to-certificate.pem&amp;gt;&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;;
&lt;/span&gt;&lt;span style="color:#008080"&gt;3&lt;/span&gt; &lt;span style="color:#000000"&gt;
&lt;/span&gt;&lt;span style="color:#008080"&gt;4&lt;/span&gt; &lt;span style="color:#000000"&gt;&lt;/span&gt;&lt;span style="color:#008000"&gt;//&lt;/span&gt;&lt;span style="color:#008000"&gt; Require client&lt;/span&gt;&lt;span style="color:#008000"&gt;
&lt;/span&gt;&lt;span style="color:#008080"&gt;5&lt;/span&gt; &lt;span style="color:#008000"&gt;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;require&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;Microsoft/WindowsAzure/Management/Client.php&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;;
&lt;/span&gt;&lt;span style="color:#008080"&gt;6&lt;/span&gt; &lt;span style="color:#000000"&gt;
&lt;/span&gt;&lt;span style="color:#008080"&gt;7&lt;/span&gt; &lt;span style="color:#000000"&gt;&lt;/span&gt;&lt;span style="color:#800080"&gt;$client&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;=&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#0000FF"&gt;new&lt;/span&gt;&lt;span style="color:#000000"&gt; Microsoft_WindowsAzure_Management_Client(
&lt;/span&gt;&lt;span style="color:#008080"&gt;8&lt;/span&gt; &lt;span style="color:#000000"&gt;    &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;&amp;lt;subscription id&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#800080"&gt;$certificate&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;&amp;lt;optional certificate password&amp;gt;&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;
&amp;lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin. http://dunnhq.com --&amp;gt;&lt;/div&gt;
&lt;p&gt;A real example of this can be the following:&lt;/p&gt;
&lt;div id="x_scid:9D7513F9-C04C-4721-824A-2B34F0212519:7aaa9e8f-a13a-4c96-981e-fb6fc305fddb" style="padding-bottom:0px; margin:0px; padding-left:0px; padding-right:0px; display:inline; float:none; padding-top:0px"&gt;
&lt;pre style="width:682px; height:273px; background-color:White; overflow:auto"&gt;&lt;div&gt;&amp;lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&amp;gt;&lt;span style="color:#008080"&gt;1&lt;/span&gt; &lt;span style="color:#008000"&gt;//&lt;/span&gt;&lt;span style="color:#008000"&gt; Certificate&lt;/span&gt;&lt;span style="color:#008000"&gt;
&lt;/span&gt;&lt;span style="color:#008080"&gt;2&lt;/span&gt; &lt;span style="color:#008000"&gt;&lt;/span&gt;&lt;span style="color:#800080"&gt;$certificate&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;=&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;C:\Projects\Workspaces\Default\Azure\management.pem&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;;
&lt;/span&gt;&lt;span style="color:#008080"&gt;3&lt;/span&gt; &lt;span style="color:#000000"&gt;
&lt;/span&gt;&lt;span style="color:#008080"&gt;4&lt;/span&gt; &lt;span style="color:#000000"&gt;&lt;/span&gt;&lt;span style="color:#008000"&gt;//&lt;/span&gt;&lt;span style="color:#008000"&gt; Require client&lt;/span&gt;&lt;span style="color:#008000"&gt;
&lt;/span&gt;&lt;span style="color:#008080"&gt;5&lt;/span&gt; &lt;span style="color:#008000"&gt;&lt;/span&gt;&lt;span style="color:#0000FF"&gt;require&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;Microsoft/WindowsAzure/Management/Client.php&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;;
&lt;/span&gt;&lt;span style="color:#008080"&gt;6&lt;/span&gt; &lt;span style="color:#000000"&gt;
&lt;/span&gt;&lt;span style="color:#008080"&gt;7&lt;/span&gt; &lt;span style="color:#000000"&gt;&lt;/span&gt;&lt;span style="color:#800080"&gt;$client&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;=&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#0000FF"&gt;new&lt;/span&gt;&lt;span style="color:#000000"&gt; Microsoft_WindowsAzure_Management_Client(
&lt;/span&gt;&lt;span style="color:#008080"&gt;8&lt;/span&gt; &lt;span style="color:#000000"&gt;    &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;xxxxxxxx-xxxx-xxxx-xxxx-xxxx&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#800080"&gt;$certificate&lt;/span&gt;&lt;span style="color:#000000"&gt;,&lt;/span&gt;&lt;span style="color:#000000"&gt; &lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;c00lP@ssw0rd&lt;/span&gt;&lt;span style="color:#000000"&gt;'&lt;/span&gt;&lt;span style="color:#000000"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;
&amp;lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin. http://dunnhq.com --&amp;gt;&lt;/div&gt;
&lt;h3&gt;Creating a hosted service programmatically&lt;/h3&gt;
TODO &lt;br&gt;
&lt;h3&gt;Creating a deployment programmatically&lt;/h3&gt;
TODO &lt;br&gt;
&lt;h3&gt;Other supported actions&lt;/h3&gt;
TODO &lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>maartenba</author><pubDate>Fri, 01 Apr 2011 08:50:02 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Management 20110401085002A</guid></item><item><title>Updated Wiki: Management</title><link>http://phpazure.codeplex.com/wikipage?title=Management&amp;version=7</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;Management&lt;/h1&gt;
Back to &lt;a href="/PHPAzure/wikipage?title=Getting%20Started&amp;referringTitle=Management"&gt;
Getting Started&lt;/a&gt;. &lt;br&gt;
&lt;h2&gt;Introduction&lt;/h2&gt;
The Service Management API provides programmatic access to much of the functionality available through the Management Portal. Using the Service Management API, you can manage your storage accounts and hosted services, your service deployments, and your affinity
 groups. &lt;br&gt;
&lt;br&gt;
The Service Management API is a REST API. All API operations are performed over SSL and mutually authenticated using X.509 v3 certificates. The management service may be accessed from within a service running in Windows Azure, or directly over the Internet
 from any application that can send an HTTPS request and receive an HTTPS response. For more background and in-depth information about the management API's, refer to the
&lt;a href="http://msdn.microsoft.com/en-us/library/ee460807.aspx"&gt;MSDN documentation&lt;span&gt;&lt;/span&gt;&lt;/a&gt;.
&lt;br&gt;
&lt;br&gt;
The Windows Azure SDK for PHP provides a wrapper for the REST API calls, providing native PHP access to all the functionality exposed by this service.
&lt;br&gt;
&lt;h2&gt;Prerequisites&lt;/h2&gt;
&lt;p&gt;The Service Management API requires mutual authentication of certificates over SSL to ensure that a request made to the management service is secure.&lt;/p&gt;
&lt;p&gt;To make a request against the Service Management API, you must first associate a certificate with your subscription, then send the certificate's private key with the request.&lt;/p&gt;
&lt;h3&gt;Generating a management certificate&lt;/h3&gt;
&lt;p&gt;Any X.509 v3 certificate can be used for authentication against the Service Management API. You can use a self-signed certificate or one signed by a certificate authority. The length of the certificate's key must be at least 2048 bits. Windows Azure will
 reject any certificate that does not meet this requirement.&lt;/p&gt;
&lt;p&gt;A pair of PFX and CER (private and public) certificates should be generated. Also, a PEM certificate will be required for connecting to the management API from PHP. Generating the required certificates can be done as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Download OpenSSL from &lt;a title="http://www.openssl.org/related/binaries.html" href="http://www.openssl.org/related/binaries.html"&gt;
http://www.openssl.org/related/binaries.html&lt;/a&gt;. &lt;/li&gt;&lt;li&gt;Start a command prompt and navigate to the folder where OpenSSL.exe is installed
&lt;/li&gt;&lt;li&gt;Issue the following statement to generate a PEM certificate. This certificate will be the base certificate used by PHP to connect to the management service API.&lt;em&gt;
&lt;br&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; openssl req -x509 -nodes -days 9999 -newkey rsa:2048 -keyout mycert.pem -out mycert.pem&lt;/em&gt;
&lt;/li&gt;&lt;li&gt;Issue the following command to convert the PEM certificate to a PFX certificate.
&lt;br&gt;
&lt;em&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; openssl pkcs12 -export -out mycert.pfx -in mycert.pem -name &amp;quot;My Certificate&amp;quot;&lt;/em&gt;
&lt;/li&gt;&lt;li&gt;Issue the following command to convert the PEM cetificate to a CER certificate.
&lt;br&gt;
&lt;em&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; openssl x509 -in mycert.pem -inform PEM -out mycert.cer -outform DER&lt;/em&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;The folder where OpenSSL.exe is installed will now contain 3 files: mycert.pem, mycert.pfx and mycert.cer. These files can be used for connecting to the management API from PHP.&lt;/p&gt;
&lt;h3&gt;Preparing your subscription to use the Management API&lt;/h3&gt;
&lt;p&gt;In order for the Windows Azure SDK to be able to connect to the Windows Azure Service Management API, a certificate file should be uploaded to the Windows Azure management portal. This can be done through
&lt;a href="http://windows.azure.com"&gt;http://windows.azure.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Under &lt;em&gt;Hosted Services, Storage Accounts &amp;amp; CDN&lt;/em&gt;, upload the CER file created previously.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://download.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=phpazure&amp;DownloadId=223010"&gt;&lt;img title="image" border="0" alt="image" src="http://download.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=phpazure&amp;DownloadId=223011" width="644" height="391" style="border-bottom:0px; border-left:0px; padding-left:0px; padding-right:0px; display:inline; margin-left:0px; border-top:0px; margin-right:0px; border-right:0px; padding-top:0px"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;h2&gt;Example usage&lt;/h2&gt;
TODO &lt;br&gt;
&lt;h3&gt;Creating a hosted service programmatically&lt;/h3&gt;
TODO &lt;br&gt;
&lt;h3&gt;Creating a deployment programmatically&lt;/h3&gt;
TODO &lt;br&gt;
&lt;h3&gt;Other supported actions&lt;/h3&gt;
TODO &lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>maartenba</author><pubDate>Fri, 01 Apr 2011 08:44:41 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Management 20110401084441A</guid></item><item><title>Updated Wiki: Management</title><link>http://phpazure.codeplex.com/wikipage?title=Management&amp;version=6</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;Management&lt;/h1&gt;
Back to &lt;a href="/PHPAzure/wikipage?title=Getting%20Started&amp;referringTitle=Management"&gt;
Getting Started&lt;/a&gt;. &lt;br&gt;
&lt;h2&gt;Introduction&lt;/h2&gt;
The Service Management API provides programmatic access to much of the functionality available through the Management Portal. Using the Service Management API, you can manage your storage accounts and hosted services, your service deployments, and your affinity
 groups. &lt;br&gt;
&lt;br&gt;
The Service Management API is a REST API. All API operations are performed over SSL and mutually authenticated using X.509 v3 certificates. The management service may be accessed from within a service running in Windows Azure, or directly over the Internet
 from any application that can send an HTTPS request and receive an HTTPS response. For more background and in-depth information about the management API's, refer to the
&lt;a href="http://msdn.microsoft.com/en-us/library/ee460807.aspx"&gt;MSDN documentation&lt;span&gt;&lt;/span&gt;&lt;/a&gt;.
&lt;br&gt;
&lt;br&gt;
The Windows Azure SDK for PHP provides a wrapper for the REST API calls, providing native PHP access to all the functionality exposed by this service.
&lt;br&gt;
&lt;h2&gt;Prerequisites&lt;/h2&gt;
&lt;p&gt;The Service Management API requires mutual authentication of certificates over SSL to ensure that a request made to the management service is secure.&lt;/p&gt;
&lt;p&gt;To make a request against the Service Management API, you must first associate a certificate with your subscription, then send the certificate's private key with the request.&lt;/p&gt;
&lt;h3&gt;Generating a management certificate&lt;/h3&gt;
&lt;p&gt;Any X.509 v3 certificate can be used for authentication against the Service Management API. You can use a self-signed certificate or one signed by a certificate authority. The length of the certificate's key must be at least 2048 bits. Windows Azure will
 reject any certificate that does not meet this requirement.&lt;/p&gt;
&lt;p&gt;A pair of PFX and CER (private and public) certificates should be generated. Also, a PEM certificate will be required for connecting to the management API from PHP. Generating the required certificates can be done as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Download OpenSSL from &lt;a title="http://www.openssl.org/related/binaries.html" href="http://www.openssl.org/related/binaries.html"&gt;
http://www.openssl.org/related/binaries.html&lt;/a&gt;. &lt;/li&gt;&lt;li&gt;Start a command prompt and navigate to the folder where OpenSSL.exe is installed
&lt;/li&gt;&lt;li&gt;Issue the following statement to generate a PEM certificate. This certificate will be the base certificate used by PHP to connect to the management service API.&lt;em&gt;
&lt;br&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; openssl req -x509 -nodes -days 9999 -newkey rsa:2048 -keyout mycert.pem -out mycert.pem&lt;/em&gt;
&lt;/li&gt;&lt;li&gt;Issue the following command to convert the PEM certificate to a PFX certificate.
&lt;br&gt;
&lt;em&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; openssl pkcs12 -export -out mycert.pfx -in mycert.pem -name &amp;quot;My Certificate&amp;quot;&lt;/em&gt;
&lt;/li&gt;&lt;li&gt;Issue the following command to convert the PEM cetificate to a CER certificate.
&lt;br&gt;
&lt;em&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; openssl x509 -in mycert.pem -inform PEM -out mycert.cer -outform DER&lt;/em&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;The folder where OpenSSL.exe is installed will now contain 3 files: mycert.pem, mycert.pfx and mycert.cer. These files can be used for connecting to the management API from PHP.&lt;/p&gt;
&lt;h3&gt;Preparing your subscription to use the Management API&lt;/h3&gt;
TODO &lt;br&gt;
&lt;h2&gt;Example usage&lt;/h2&gt;
TODO &lt;br&gt;
&lt;h3&gt;Creating a hosted service programmatically&lt;/h3&gt;
TODO &lt;br&gt;
&lt;h3&gt;Creating a deployment programmatically&lt;/h3&gt;
TODO &lt;br&gt;
&lt;h3&gt;Other supported actions&lt;/h3&gt;
TODO &lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>maartenba</author><pubDate>Fri, 01 Apr 2011 08:36:30 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Management 20110401083630A</guid></item><item><title>Updated Wiki: Management</title><link>http://phpazure.codeplex.com/wikipage?title=Management&amp;version=5</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;Management&lt;/h1&gt;
Back to &lt;a href="/PHPAzure/wikipage?title=Getting%20Started&amp;referringTitle=Management"&gt;
Getting Started&lt;/a&gt;. &lt;br&gt;
&lt;h2&gt;Introduction&lt;/h2&gt;
The Service Management API provides programmatic access to much of the functionality available through the Management Portal. Using the Service Management API, you can manage your storage accounts and hosted services, your service deployments, and your affinity
 groups. &lt;br&gt;
&lt;br&gt;
The Service Management API is a REST API. All API operations are performed over SSL and mutually authenticated using X.509 v3 certificates. The management service may be accessed from within a service running in Windows Azure, or directly over the Internet
 from any application that can send an HTTPS request and receive an HTTPS response. For more background and in-depth information about the management API's, refer to the
&lt;a href="http://msdn.microsoft.com/en-us/library/ee460807.aspx"&gt;MSDN documentation&lt;span&gt;&lt;/span&gt;&lt;/a&gt;.
&lt;br&gt;
&lt;br&gt;
The Windows Azure SDK for PHP provides a wrapper for the REST API calls, providing native PHP access to all the functionality exposed by this service.
&lt;br&gt;
&lt;h2&gt;Prerequisites&lt;/h2&gt;
&lt;p&gt;The Service Management API requires mutual authentication of certificates over SSL to ensure that a request made to the management service is secure.&lt;/p&gt;
&lt;p&gt;To make a request against the Service Management API, you must first associate a certificate with your subscription, then send the certificate's private key with the request.&lt;/p&gt;
&lt;h3&gt;Generating a management certificate&lt;/h3&gt;
&lt;p&gt;Any X.509 v3 certificate can be used for authentication against the Service Management API. You can use a self-signed certificate or one signed by a certificate authority. The length of the certificate's key must be at least 2048 bits. Windows Azure will
 reject any certificate that does not meet this requirement.&lt;/p&gt;
&lt;p&gt;A pair of PFX and CER (private and public) certificates should be generated. Also, a PEM certificate will be required for connecting to the management API from PHP. Generating the required certificates can be done as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Download OpenSSL from &lt;a title="http://www.openssl.org/related/binaries.html" href="http://www.openssl.org/related/binaries.html"&gt;
http://www.openssl.org/related/binaries.html&lt;/a&gt;. &lt;/li&gt;&lt;li&gt;Start a command prompt and navigate to the folder where OpenSSL.exe is installed
&lt;/li&gt;&lt;li&gt;Issue the following statement to generate a PEM certificate. This certificate will be the base certificate used by PHP to connect to the management service API.
&lt;br&gt;
&lt;em&gt;&lt;br&gt;
openssl req -x509 -nodes -days 9999 -newkey rsa:2048 -keyout mycert.pem -out mycert.pem
&lt;br&gt;
&lt;/em&gt;&lt;/li&gt;&lt;li&gt;Issue the following command to convert the PEM certificate to a PFX certificate.
&lt;br&gt;
&lt;br&gt;
&lt;em&gt;openssl pkcs12 -export -out mycert.pfx -in mycert.pem -name &amp;quot;My Certificate&amp;quot;
&lt;br&gt;
&lt;/em&gt;&lt;/li&gt;&lt;li&gt;Issue the following command to convert the PEM cetificate to a CER certificate.
&lt;br&gt;
&lt;br&gt;
&lt;em&gt;openssl x509 -in mycert.pem -inform PEM -out mycert.cer -outform DER &lt;br&gt;
&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;The folder where OpenSSL.exe is installed will now contain 3 files: mycert.pem, mycert.pfx and mycert.cer. These files can be used for connecting to the management API from PHP.&lt;/p&gt;
&lt;h3&gt;Preparing your subscription to use the Management API&lt;/h3&gt;
TODO &lt;br&gt;
&lt;h2&gt;Example usage&lt;/h2&gt;
TODO &lt;br&gt;
&lt;h3&gt;Creating a hosted service programmatically&lt;/h3&gt;
TODO &lt;br&gt;
&lt;h3&gt;Creating a deployment programmatically&lt;/h3&gt;
TODO &lt;br&gt;
&lt;h3&gt;Other supported actions&lt;/h3&gt;
TODO &lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>maartenba</author><pubDate>Fri, 01 Apr 2011 08:35:26 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Management 20110401083526A</guid></item><item><title>Updated Wiki: Management</title><link>http://phpazure.codeplex.com/wikipage?title=Management&amp;version=4</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;Management&lt;/h1&gt;
Back to &lt;a href="/PHPAzure/wikipage?title=Getting%20Started&amp;referringTitle=Management"&gt;
Getting Started&lt;/a&gt;. &lt;br&gt;
&lt;h2&gt;Introduction&lt;/h2&gt;
The Service Management API provides programmatic access to much of the functionality available through the Management Portal. Using the Service Management API, you can manage your storage accounts and hosted services, your service deployments, and your affinity
 groups. &lt;br&gt;
&lt;br&gt;
The Service Management API is a REST API. All API operations are performed over SSL and mutually authenticated using X.509 v3 certificates. The management service may be accessed from within a service running in Windows Azure, or directly over the Internet
 from any application that can send an HTTPS request and receive an HTTPS response. For more background and in-depth information about the management API's, refer to the
&lt;a href="http://msdn.microsoft.com/en-us/library/ee460807.aspx"&gt;MSDN documentation&lt;span&gt;&lt;/span&gt;&lt;/a&gt;.
&lt;br&gt;
&lt;br&gt;
The Windows Azure SDK for PHP provides a wrapper for the REST API calls, providing native PHP access to all the functionality exposed by this service.
&lt;br&gt;
&lt;h2&gt;Prerequisites&lt;/h2&gt;
&lt;p&gt;The Service Management API requires mutual authentication of certificates over SSL to ensure that a request made to the management service is secure.&lt;/p&gt;
&lt;p&gt;To make a request against the Service Management API, you must first associate a certificate with your subscription, then send the certificate's private key with the request.&lt;/p&gt;
&lt;h3&gt;Generating a management certificate&lt;/h3&gt;
&lt;p&gt;Any X.509 v3 certificate can be used for authentication against the Service Management API. You can use a self-signed certificate or one signed by a certificate authority. The length of the certificate's key must be at least 2048 bits. Windows Azure will
 reject any certificate that does not meet this requirement.&lt;/p&gt;
&lt;p&gt;A pair of PFX and CER (private and public) certificates should be generated. Also, a PEM certificate will be required for connecting to the management API from PHP. Generating the required certificates can be done as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Download OpenSSL from &lt;a title="http://www.openssl.org/related/binaries.html" href="http://www.openssl.org/related/binaries.html"&gt;
http://www.openssl.org/related/binaries.html&lt;/a&gt;. &lt;/li&gt;&lt;li&gt;Start a command prompt and navigate to the folder where OpenSSL.exe is installed
&lt;/li&gt;&lt;li&gt;Issue the following statement to generate a PEM certificate. This certificate will be the base certificate used by PHP to connect to the management service API.
&lt;br&gt;
{code} &lt;br&gt;
openssl req -x509 -nodes -days 9999 -newkey rsa:2048 -keyout mycert.pem -out mycert.pem
&lt;br&gt;
{code} &lt;/li&gt;&lt;li&gt;Issue the following command to convert the PEM certificate to a PFX certificate.
&lt;br&gt;
{code} &lt;br&gt;
openssl pkcs12 -export -out mycert.pfx -in mycert.pem -name &amp;quot;My Certificate&amp;quot;
&lt;br&gt;
{code} &lt;/li&gt;&lt;li&gt;Issue the following command to convert the PEM cetificate to a CER certificate.
&lt;br&gt;
{code} &lt;br&gt;
openssl x509 -in mycert.pem -inform PEM -out mycert.cer -outform DER &lt;br&gt;
{code} &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;The folder where OpenSSL.exe is installed will now contain 3 files: mycert.pem, mycert.pfx and mycert.cer. These files can be used for connecting to the management API from PHP.&lt;/p&gt;
&lt;h3&gt;Preparing your subscription to use the Management API&lt;/h3&gt;
TODO &lt;br&gt;
&lt;h2&gt;Example usage&lt;/h2&gt;
TODO &lt;br&gt;
&lt;h3&gt;Creating a hosted service programmatically&lt;/h3&gt;
TODO &lt;br&gt;
&lt;h3&gt;Creating a deployment programmatically&lt;/h3&gt;
TODO &lt;br&gt;
&lt;h3&gt;Other supported actions&lt;/h3&gt;
TODO &lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>maartenba</author><pubDate>Fri, 01 Apr 2011 08:34:48 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Management 20110401083448A</guid></item><item><title>Updated Wiki: Management</title><link>http://phpazure.codeplex.com/wikipage?title=Management&amp;version=3</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Management&lt;/h1&gt;Back to &lt;a href="http://phpazure.codeplex.com/wikipage?title=Getting%20Started&amp;referringTitle=Management"&gt;Getting Started&lt;/a&gt;.&lt;br /&gt;
&lt;h2&gt;Introduction&lt;/h2&gt;The Service Management API provides programmatic access to much of the functionality available through the Management Portal. Using the Service Management API, you can manage your storage accounts and hosted services, your service deployments, and your affinity groups.&lt;br /&gt;&lt;br /&gt;The Service Management API is a REST API. All API operations are performed over SSL and mutually authenticated using X.509 v3 certificates. The management service may be accessed from within a service running in Windows Azure, or directly over the Internet from any application that can send an HTTPS request and receive an HTTPS response. For more background and in-depth information about the management API&amp;#39;s, refer to the &lt;a href="http://msdn.microsoft.com/en-us/library/ee460807.aspx" class="externalLink"&gt;MSDN documentation&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The Windows Azure SDK for PHP provides a wrapper for the REST API calls, providing native PHP access to all the functionality exposed by this service.&lt;br /&gt;
&lt;h2&gt;Prerequisites&lt;/h2&gt;&lt;h3&gt;Generating a management certificate&lt;/h3&gt;TODO&lt;br /&gt;
&lt;h3&gt;Preparing your subscription to use the Management API&lt;/h3&gt;TODO&lt;br /&gt;
&lt;h2&gt;Example usage&lt;/h2&gt;TODO&lt;br /&gt;
&lt;h3&gt;Creating a hosted service programmatically&lt;/h3&gt;TODO&lt;br /&gt;
&lt;h3&gt;Creating a deployment programmatically&lt;/h3&gt;TODO&lt;br /&gt;
&lt;h3&gt;Other supported actions&lt;/h3&gt;TODO&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>maartenba</author><pubDate>Fri, 01 Apr 2011 07:27:09 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Management 20110401072709A</guid></item></channel></rss>