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


modifying php.ini on Windows Azure Web role by a script

我在Web角色上使用了启动脚本,通过使用Windows平台安装程序安装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

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

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设置中配置它(我认为这些设置比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