【问题标题】:modifying php.ini on Windows Azure Web role by a script通过脚本修改 Windows Azure Web 角色上的 php.ini
【发布时间】:2012-08-21 09:15:19
【问题描述】:

我在 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

【问题讨论】:

  • 你可以尝试使用ini_set('max_execution_time', 600);以及upload_max_filesize。

标签: php azure azure-web-roles


【解决方案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

【讨论】:

  • 感谢您快速而有用的回答。我对powershell不熟悉。以下是我的 install-php.bat 文件,它位于我的 web 角色的 bin 文件夹下。如何将其转换为 powershell?我需要使用powershell来安装php吗?
  • 无需将脚本转换为 PowerShell 或使用 Powershell。我会更新我的答案。
  • 您好,我通过将 php 文件夹添加到 webrole 的 bin 文件夹并将 php.ini 文件添加到包含我要更改的变量的文件夹来解决此问题。感谢 Sandrino 花时间给出答案。你的答案是正确的,它帮助我找到了另一个帖子,这反过来解决了我的问题,所以我将你标记为答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-11
  • 1970-01-01
相关资源
最近更新 更多