我正在尝试更改上传的大小限制。我知道我必须在Apache配置中更改这些指令(有些不能使用ini_set更改)
php_value session.gc_maxlifetime 3600
php_value max_input_time 3600
php_value max_execution_time 3600
php_value upload_max_filesize 10M
php_value post_max_size 110M
不幸的是,我不能直接在我的虚拟主机的<Directory>
中执行此操作,因为目录总是相同的(我使用前端控制器,因此所有请求都通过index.php&amp;派遣到适当的控制器 - 我使用Symfony)
那么,我的问题是如何避免这个问题呢?我不想为整个应用程序设置这些值,仅用于特定操作。
答案 0 :(得分:2)
这是可能的,具体取决于您映射到前端控制器的方式。如果您是通过重写规则执行此操作,则可以使用<Location>
而不是<Directory>
块来指定要更改其设置的路径块。 <LocationMatch>
允许你使用正则表达式来做同样的事情。
如果您的所有外部网址都以/index.php?
开头,那么请考虑为这些请求设置重定向规则:
RewriteEngine on
RewriteRule ^foo/$ ^/index.php [L]
<Location /foo/>
php_value ...
</Location>
如果情况并非如此,您需要告诉我们有关您的申请结构的更多信息。
答案 1 :(得分:1)
一种可能的解决方法是创建一个目录,其中包含一个实现您的操作的PHP文件,并且该脚本使用“自定义”URL提交POST目标文件。处理完输入后,您将通过index.php
重定向回正常页面。它不干净,但应该有效。
也值得考虑一下你从中获得了什么。
session.gc_maxlifetime
没有任何意义(特别是如果你正在增加它)max_input_time
也是一小时,max_execution_time
限制为一小时也没有意义max_execution_time
可以在运行时设置那么,这里的目标是什么?