大家好!我在这个配置问题上苦苦挣扎,因为我试图增加 Apache 配置中的文件上传大小容量,但不知道如何准确地做到这一点。我发现这篇文章讨论了这一点,但想知道更改 .htaccess 的正确方法。
https://brightwhiz.com/increase-file-upload-size-apache/
我正在尝试解决 php (laravel) 中无法上传大于 5MB 的文件的问题,所以我在本文中找到了这个解决方案。配置我的 .htaccess 来执行此操作的正确方法是什么?
我已经尝试过这些配置
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Send Requests To Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
<Directory "/var/www/html/assets">
LimitRequestBody 67108864
</Directory>
</IfModule>
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Send Requests To Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
<Directory "/var/www/html/assets">
LimitRequestBody 67108864
</Directory>
需要更改 php.ini 中的 upload_max_filesize 和 post_max_size 设置以支持大于 php 默认允许大小的文件。
将upload_max_filesize设置为需要上传的文件的最大大小。
将 memory_limit 设置为 php 脚本运行所需的内存量,并将 max_execution_time 设置为运行脚本所需的时间(以秒为单位)。
注意:从现在开始,ini 存储在类似这样的文件夹中 /etc/php/8.1/apache2/php.ini
upload_max_filesize=30M
post_max_size=31M
memory_limit = 100M
max_execution_time = 120
注意:不要忘记重新启动 apache 服务器 如果您无法保存 php.ini 文件,则必须授予该特定文件的权限。 (不要授予整个文件夹的权限)
为了调整每个 Apache 虚拟主机的文件上传大小(与
php.ini
中的全局文件上传大小相反),您需要将以下行添加到主机的配置或 .htaccess
文件中(例如,将限制提高到 50Mb) ):
php_value upload_max_filesize 50M
php_value post_max_size 52M
请注意,
post_max_size
必须大于upload_max_filesize
。