1

我在 Web 角色上使用了启动脚本,通过 Windows 平台安装程序安装 PHP。一切正常,PHP 已安装并且应用程序可以运行,但是当我上传大文件时,应用程序会生成错误。我通过手动编辑 php.ini 文件并更改 upload_max_filesize 来修复它。我的问题是,如何通过添加要在安装 php 后执行的 som 脚本来自动(而不是手动)修改 php.ini 文件。我写了“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
4

1 回答 1

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 设置中进行配置(我认为这些设置优先于 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
于 2012-08-21T09:41:08.923 回答