我有一个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_time
和memory_limit changed
。我也试过ini_set()
,但结果相同。
有解决方法吗?
答案 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)
转到 Azure 设置->配置
在“应用程序设置”下,点击“新建应用程序设置”添加以下内容:
名称:PHP_INI_SCAN_DIR
值:(任何路径,例如 d:\home\site\ini)
打开powershell,进入Development Tools->Advanced Tools,点击'Go ->'
打开您在 #2 上指定的路径上的文件夹(例如“d:\home\site\ini”)。然后创建.user.ini
文件
添加以下内容:
upload_max_filesize = 64M
post_max_size = 64M
重启你的服务器
您可以使用以下方法检查服务器上的值:
php -r "echo ini_get('upload_max_filesize');"
php -r "echo ini_get('post_max_size');"