通过脚本修改Windows Azure Web角色上的php.ini

时间:2012-08-21 09:15:19

标签: php azure azure-web-roles

我在Web角色上使用了一个启动脚本来使用Windows Plattform Installer来安装PHP。一切正常,安装了PHP并且应用程序正常工作,但是当我卸载大文件时,应用程序会生成错误。我通过手动编辑php.ini文件并修改了upload_max_filesize来修复它。我的问题是,我如何通过添加som脚本自动修改php.ini文件(在安装php之后执行)。我写了“AFTER”,因为这个脚本必须等到我的启动脚本完全执行并安装了php。 感谢您的帮助,感谢所有建议。

更新: 以下是我的install-php.bat文件,它位于我的web角色的bin文件夹中。我不熟悉powershell。如何将其翻译为powershell脚本?

ECHO "Starting PHP Installation" >> log.txt

md "%~dp0appdata"
cd "%~dp0appdata"
cd..

reg add "hku\.default\software\microsoft\windows\currentversion\explorer\user shell folders" /v "Local AppData" /t REG_EXPAND_SZ /d "%~dp0appdata" /f

"..\MyWebpicmdline\WebPICmdLine" /Products:PHP53 /AcceptEula >>log.txt 2>>err.txt

reg add "hku\.default\software\microsoft\windows\currentversion\explorer\user shell folders" /v "Local AppData" /t REG_EXPAND_SZ /d %%USERPROFILE%%\AppData\Local /f

ECHO "Completed PHP Installation" >> log.txt

1 个答案:

答案 0 :(得分:1)

所以我假设您有一个启动任务,其中包含以下内容:

WebPICmdLine.exe /Products: PHP

您需要编写一些脚本来更新您的php.ini文件并在安装PHP后运行它。一个可能的解决方案是使用PowerShell执行此操作:

WebPICmdLine.exe /Products: PHP
powershell -command "Set-ExecutionPolicy Unrestricted"
powershell .\UpdatePhpIni.ps1

找到一个允许您更新ini文件的脚本(如Edit Ini File),将其添加到UpdatePhpIni.ps1文件中并添加所需的代码以修改执行时间。

请注意,我不是PHP专家,但如果我没记错,你应该在IIS的FastCGI settings中配置它(我认为这些优先于php.ini)。

更新:以下是使用FastCGI配置时脚本的外观。

ECHO "Starting PHP Installation" >> log.txt

md "%~dp0appdata"
cd "%~dp0appdata"
cd..

reg add "hku\.default\software\microsoft\windows\currentversion\explorer\user shell folders" /v "Local AppData" /t REG_EXPAND_SZ /d "%~dp0appdata" /f

"..\MyWebpicmdline\WebPICmdLine" /Products:PHP53 /AcceptEula >>log.txt 2>>err.txt

ECHO Updating activity timeout.
%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi "/[fullPath='%ProgramFiles(x86)%\PHP\v5.3\php-cgi.exe'].activityTimeout:800"

reg add "hku\.default\software\microsoft\windows\currentversion\explorer\user shell folders" /v "Local AppData" /t REG_EXPAND_SZ /d %%USERPROFILE%%\AppData\Local /f

ECHO "Completed PHP Installation" >> log.txt