无法将upload_max_filesize更改为Azure

时间:2016-01-04 15:35:10

标签: php laravel azure

我有一个Laravel Azure网站。

我有一个.user.ini文件,我有一些设置,比如

upload_max_filesize=120M
post_max_size=121M
output_buffering=Off
max_execution_time=3000
max_input_time=3000
memory_limit=140M

但奇怪的是,只有max_execution_timememory_limit changed。我也试过ini_set(),但结果相同。

有解决方法吗?

3 个答案:

答案 0 :(得分:1)

基本上我在PHP_INI_SCAN_DIR设置中添加了.user.ini文件夹路径的值

答案 1 :(得分:0)

由于Azure上的PHP应用程序实际上是在IIS上托管的,因此限制上载文件大小不仅受PHP设置控制,还受IIS配置控制。

默认情况下,请求中内容的最大长度在IIS中设置为30000000,大约为28.6MB。您可以参考https://www.iis.net/configreference/system.webserver/security/requestfiltering/requestlimits#005了解更多详情。

除了PHP的自定义配置之外,您还需要在根目录中创建web.config,其内容可以是以下示例:

<configuration>

    <appSettings/>
    <connectionStrings/>
    <system.web>
        <httpRuntime maxRequestLength="1073741824" />
    </system.web>
    <system.webServer>
    <security>
      <requestFiltering>
        <!-- maxAllowedContentLength is in bytes (B)  -->
        <requestLimits maxAllowedContentLength="1073741824"/>
      </requestFiltering>
    </security>
  </system.webServer>
</configuration>

答案 2 :(得分:0)

  1. 转到 Azure 设置->配置

  2. 在“应用程序设置”下,点击“新建应用程序设置”添加以下内容:

    名称:PHP_INI_SCAN_DIR

    值:(任何路径,例如 d:\home\site\ini)

  3. 打开powershell,进入Development Tools->Advanced Tools,点击'Go ->'

  4. 打开您在 #2 上指定的路径上的文件夹(例如“d:\home\site\ini”)。然后创建.user.ini文件

  5. 添加以下内容:

    upload_max_filesize = 64M

    post_max_size = 64M

  6. 重启你的服务器

您可以使用以下方法检查服务器上的值:

php -r "echo ini_get('upload_max_filesize');"

php -r "echo ini_get('post_max_size');"