2012-01-17 54 views
11

tôi nhận được thông báo này,Request Entity Too Large

Request Entity Too Large 
The requested resource 
/index.php 
does not allow request data with POST requests, or the amount of data provided in the request exceeds the capacity limit. 

tôi đặt

php_value post_max_size 50M 
php_value upload_max_filesize 50M 

trong .htaccess nhưng không giúp

Làm thế nào để khắc phục điều này?

Cảm ơn

+0

fwiw, tôi đã gặp lỗi tương tự. đó là vì tôi đã sử dụng một yêu cầu POST, nhưng không đi qua bất kỳ trường nào. độ dài nội dung có thể là 0, có thể biểu thị vô hạn. – changokun

Trả lời

11

Sau khi bạn đã qua nâng cao của PHP memory_limit, post_max_sizeupload_max_filesize, tôi muốn khuyên bạn một số điều liên quan đến chủ đề này, có thể một trong số họ giải quyết vấn đề.

tôi thấy bài này trên Server Fault:
https://serverfault.com/questions/79741/php-apache-post-limit/79745#79745

  • sybreon gợi ý để kiểm tra lại các Content-Length, và - với lý do - "đảm bảo rằng bạn đang kết nối trực tiếp đến Apache và không thông qua proxy hoặc proxy ngược Một số proxy ngược lại đặt giới hạn kích thước tối đa của yêu cầu dưới dạng một loại biện pháp bảo mật. Vì vậy, bạn có thể kiểm tra xem cũng như nhật ký Apache của mình để đảm bảo rằng không có gì khác đang xảy ra."

  • sybreon cũng đã đăng liên kết này: Apache 413 error problems.
    Sau đây chỉ áp dụng nếu bạn có mod_ssl mô-đun được bật trong Apache. (Nếu không, cài đặt này có thể gây ra sự cố máy chủ.)
    Trích dẫn bài viết:
    "Tôi đang sử dụng chứng chỉ ứng dụng khách Apache SSL, giới hạn 128K và nếu thương lượng lại xảy ra, POST lớn hơn sẽ không thành công .
    This Bugzilla posting có manh mối - bạn phải đặt sau khi giá trị mặc định cho máy chủ SSL của bạn, không chỉ là thư mục

    SSLVerifyClient require 
    

    Nếu không nó buộc đàm phán lại của một số loại, và thất bại với một lỗi 413. . "

  • Bài viết trước cũng đề cập đến chỉ thị LimitRequestBody.
    A guy says here that the appropriate setting of this directive solved his problem..

Tôi hy vọng một trong các cài đặt này sẽ giải quyết được vấn đề này!

7

Điều duy nhất có hiệu quả đối với tôi là điều chỉnh Kích thước bộ đệm SSL. Bạn có thể đặt điều này bằng ...

<Directory /my/blah/blah> 
... 
    # Set this to something big... 
    SSLRenegBufferSize 10486000 
... 
</Directory> 

... và sau đó chỉ cần khởi động lại Apache để thay đổi có hiệu lực. (Tìm thấy điều này tại: http://forum.joomla.org/viewtopic.php?p=2085574)

3

Máy chủ của tôi là Apache. Đó là mô-đun mod_security đã ngăn chặn đăng dữ liệu lớn khoảng 171 KB. Tôi đã thực hiện các cấu hình dưới đây trong mod_security.conf

SecRequestBodyNoFilesLimit 10486000 
SecRequestBodyInMemoryLimit 10486000 
0

Nếu max_post_upload và max_file_upload trong PHP đã được thiết lập, và có một thiết lập trong apache2.conf hoặc ModSec tập tin cấu hình của LimitRequestBody thiết đủ

cao, sau đó có thể là một tập tin .htaccess sẽ làm việc.

  1. Tới thư mục với tập tin tải lên php trong nó (các tập tin hoặc trang ném lỗi.)

2. Tạo hoặc chỉnh sửa .htaccess

3. Chỉnh sửa hoặc tạo một dòng với LimitRequestBody 20971520 trong đó.

  1. Lưu tệp .htaccess. Đặt quyền. (644 và chủ sở hữu apache)

  2. Có thể khởi động lại apache.

Tada. Hy vọng rằng cố định.

Cài đặt này đặt giới hạn cho thư mục này - đó là một cách để tránh cài đặt toàn cầu trong php và apache khiến bạn mở các cuộc tấn công DOS gói/tải lớn.

LimitRequestBody 0 cho phép bạn tải lên không giới hạn.

Các vấn đề liên quan