无法使用 Laravel v11 在 Azure 应用服务 (Linux) 上上传大于 8 MB 的文件

问题描述 投票:0回答:1

我在 Laravel v11 应用程序上上传大于 8 MB 的文件时遇到问题,该应用程序托管在 Linux 上运行的 Azure 应用服务上。

这是我已经完成的上传限制配置:

  1. 在 Nginx 中设置

    client_max_body_size
    指令,并验证其是否按预期工作:

    client_max_body_size 50M;
    
  2. 通过

    php.ini
    更新了 PHP
    PHP_INI_SCAN_DIR
    设置。在服务器的 shell (SSH) 上运行
    php -i
    确认已加载正确的参数:

    upload_max_filesize = 30M
    post_max_size = 50M
    memory_limit = 256M
    

尽管有这些设置,我只能上传小于 8 MB 的文件。尝试上传大约 10 MB 的文件会导致以下错误:

The server returned a "413 Content Too Large".

有趣的是,当我将

post_max_size
upload_max_filesize
设置为
1M
时,我仍然能够成功上传7MB的文件。

这是

php -i | grep max
在服务器上的输出:

    max_execution_time => 0 => 0
    max_file_uploads => 20 => 20
    max_input_nesting_level => 64 => 64
    max_input_time => -1 => -1
    max_input_vars => 1000 => 1000
    max_multipart_body_parts => -1 => -1
    post_max_size => 1M => 1M
    upload_max_filesize => 1M => 1M
    zend.exception_string_param_max_len => 15 => 15
    session.gc_maxlifetime => 1440 => 1440
    unserialize_max_depth => 4096 => 4096

什么可能导致此问题?任何帮助将不胜感激。预先感谢!

php azure nginx
1个回答
0
投票

解决了!

虽然微软认为它没有记录(或者可能是 Azure 应用服务中的错误),但我在启动脚本中添加了以下语句:

cp /home/site/wwwroot/<path to your custom ini>/<custom ini>.ini /usr/local/etc/php/conf.d/extensions.ini

设置 PHP_INI_SCAN_DIR 环境变量不足以自定义 PHP 设置。因此,我必须手动将ini文件复制到PHP设置位置。

© www.soinside.com 2019 - 2024. All rights reserved.