Сценарий запуска Windows Azure для PHP

Я использую сценарий запуска для установки PHP, обычно я использую сценарий по умолчанию из PHPAzure SDK, который устанавливает новейшую доступную версию, но мне нужен абсолютно PHP v5.3.8.

Поэтому я написал свой собственный скрипт установки (который я использую вместо install-php.cmd):

@ECHO ON

SET PHP_FULL_PATH=%~dp0PHP\v5.3\php-cgi.exe
SET NEW_PATH=%PATH%;%RoleRoot%\base\x86

%WINDIR%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='%PHP_FULL_PATH%',maxInstances='12',idleTimeout='60000',activityTimeout='3600',requestTimeout='60000',instanceMaxRequests='10000',protocol='NamedPipe',flushNamedPipe='False']" /commit:apphost
%WINDIR%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='%PHP_FULL_PATH%'].environmentVariables.[name='PATH',value='%NEW_PATH%']" /commit:apphost
%WINDIR%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='%PHP_FULL_PATH%'].environmentVariables.[name='PHP_FCGI_MAX_REQUESTS',value='10000']" /commit:apphost
%WINDIR%\system32\inetsrv\appcmd.exe set config -section:system.webServer/handlers /+"[name='PHP',path='*.php',verb='GET,HEAD,POST',modules='FastCgiModule',scriptProcessor='%PHP_FULL_PATH%',resourceType='Either',requireAccess='Script']" /commit:apphost
%WINDIR%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /"[fullPath='%PHP_FULL_PATH%'].queueLength:50000"

Проблема в том, что я не очень хорошо разбираюсь в написании сценариев запуска.

И теперь у меня есть проблема, что после развертывания пакета путь обработчика PHP совершенно неверен, он всегда указывает на временный путь сборки где-то на моей локальной машине разработки вместо того, чтобы выбрать путь относительно недавнего approot.

Может быть, вы можете помочь мне с настройкой этого скрипта с правильными параметрами?

Правильный путь к моей пользовательской установке PHP:

approot/bin/PHP/v5.3/php-cgi.exe


person ownking    schedule 15.03.2012    source источник


Ответы (3)


В этом руководстве показано, как настроить Среда Azure PHP вручную. Вы можете выбрать версию PHP, которую хотите загрузить и установить. Дополнительные руководства, которые могут вам помочь, можно найти здесь.

person NGhinazz    schedule 15.03.2012
comment
Спасибо за ссылку. Но в этом руководстве они только показывают, как настроить его локально, но мне нужен автоматизированный способ установки пользовательской версии PHP в экземпляре роли. - person ownking; 19.03.2012
comment
Вы можете упаковать свою пользовательскую конфигурацию PHP в пакет Azure. Затем Azure будет использовать вашу пользовательскую конфигурацию при установке на виртуальную машину. - person NGhinazz; 20.03.2012

Если вы хотите использовать собственную пользовательскую установку PHP в Windows Azure, вам следует ознакомиться с учебным пособием «Использование пользовательской установки PHP», доступным на веб-сайте AzurePHP по адресу:

http://azurephp.interoperabilitybridges.com/articles/using-a-custom-php-installation

В нем подробно перечислены шаги по выполнению пользовательской установки PHP.

person Ben Lobaugh    schedule 21.03.2012

Я обнаружил проблему: я экспериментировал с разными версиями PHP, используя IIS PHP Manager для их переключения.

Мой контроль версий теперь показал, что Web.config был изменен:

<handlers>
    <remove name="PHP" />
    <add name="PHP" path="*.php" verb="GET,HEAD,POST" modules="FastCgiModule" scriptProcessor="C:\myproject\WebRole\bin\PHP\v5.3\php-cgi.exe" resourceType="Either" requireAccess="Script" />
</handlers>

Менеджер PHP расширил эти строки. Однако полезно знать об этом варианте.

person ownking    schedule 15.03.2012