413 रिक्वेस्ट एंटिटी बहुत बड़ी - फाइल अपलोड इश्यू


100

मैं अपने सर्वर पर 30MB फ़ाइल अपलोड करने की कोशिश कर रहा हूं और यह काम नहीं कर रहा है।

  1. जब मैं 30MB फ़ाइल अपलोड करता हूं, तो पृष्ठ " पृष्ठ नहीं मिला " लोड होता है

  2. जब मैं 3MB फ़ाइल अपलोड करता हूं, तो मुझे nginx / 0.6.32 के साथ " 413 रिक्वेस्ट एंटिटी टू लार्ज " प्राप्त होता है

मैं nginx को खोजने की कोशिश कर रहा हूं ताकि मैं " client_max_body_size " को बढ़ा सकूं लेकिन मैं अपने सर्वर पर स्थापित nginx को खोजने में असमर्थ हूं। मैंने भी दौड़ने की कोशिश की:

vi /etc/nginx/nginx.conf

या

vi /usr/local/nginx/conf/nginx.conf

यह देखने के लिए कि क्या विन्यास फाइल मौजूद है, लेकिन मैं इसे अपने सर्वर पर नहीं ढूंढ सका।

इस मुद्दे को हल करने के लिए वैसे भी क्या है? या क्या मुझे अपने सर्वर पर nginx स्थापित करना है।

संपादित करें:

मैंने अपनी php.ini फ़ाइलों में सभी आवश्यक परिवर्तन किए हैं,

post_max_size 128M
upload_max_filesize 100M
memory_limit 256M

धन्यवाद, राजू


कृपया इस लिंक को देखें, जिससे शायद आप cyberciti.biz/faq/… rtcamp.com/tutorials/php/increase-file-upload-size-limit
Ashuri

हाय मोहम्मद, मैंने नगनेक्स की तलाश की है लेकिन मैं इसे अपने सर्वर पर नहीं ढूंढ सका। मुझे यकीन है, मेरे सर्वर पर nginx isnt स्थापित है, इसलिए मैं उलझन में हूं कि मुझे एक त्रुटि संदेश क्यों मिल रहा है, जो Nginx का है
राजू विश्वास

पहले आपको यह सुनिश्चित करना होगा कि आपके सर्वर पर एनगिक्स स्थापित नहीं है, लेकिन यदि आप पूरी तरह से सुनिश्चित हैं, तो शायद सुरक्षा कारण से भ्रमित करने वाले हैकर्स के लिए कुछ सर्वर मैनेजर इस ट्रिक का उपयोग करते हैं
अशुरी

क्या आपने ps aux | grep nginxयह देखने की कोशिश की है कि क्या यह चल रहा है?
rpkamp

क्या आपने कोशिश की है which nginx? यह आपको निष्पादन योग्य फ़ाइल का स्थान देगा, कॉन्फ़िगरेशन फ़ाइल नहीं, लेकिन यह कम से कम यह पुष्टि करनी चाहिए कि क्या nginx स्थापित है या नहीं।
डग मैकलीन

जवाबों:


128

स्रोत: http://www.cyberciti.biz/faq/linux-unix-bsd-nginx-413-request-entity-too-large/

Nginx की फ़ाइल को संपादित करें:

nano /etc/nginx/nginx.conf

Http अनुभाग में एक पंक्ति जोड़ें:

http {
    client_max_body_size 100M;
}

एमबी का उपयोग न करें यह काम नहीं करेगा, केवल एम!

इसके अलावा nginx को पुनरारंभ करने के लिए मत भूलना

systemctl restart nginx

जब मैं ऐसा करता हूं तो मेरा 413 404 में बदल जाता है। मैं EC2 पर Amazon Linux का उपयोग कर रहा हूं। इसके अलावा nginx डॉक्टर एक लोअरकेस 'm' दिखाते हैं। nginx.org/en/docs/http/…
nu everest

यह फ़ाइल को बदलने के लिए एक पासवर्ड के लिए पूछ रहा है। लेकिन मुझे एक सेटिंग याद नहीं है। क्या मैं कुछ भूल रहा हूँ?
सोरज

1
नैनो के लिए रास्ता नैनो /etc/nginx/nginx.conf होना चाहिए।
MaXi32

मेरे लिए काम किया है, लेकिन ध्यान दें: यदि आपके कॉन्फिगर में पहले से ही एक http { }सेक्शन है, तो बाकी को उसके अंदर जोड़ें एक नया http {}खंड जोड़ना विफल हो जाएगा और "http" directive is duplicateNginx लॉग में एक त्रुटि देगा ।
जर्कलार्क

43

-in php.ini (/etc/php.ini के अंदर)

 max_input_time = 24000
 max_execution_time = 24000
 upload_max_filesize = 12000M
 post_max_size = 24000M
 memory_limit = 12000M

-इन nginx.conf (अंदर / ऑप्ट / nginx / conf)

client_max_body_size 24000M

यह मेरे मामले के लिए काम कर रहा है


हाय अरुण, हमारे सर्वर के साथ मुद्दा यह है, मैं स्थापित nginx को खोजने में असमर्थ हूँ, लेकिन इसके अभी भी nginx त्रुटि देता है
राजू विश्वास

अंदर nginx / ऑप्ट या / आदि खोजें। अंदर nginx conf फ़ोल्डर तो nginx.conf लगता है।
अरुण

यदि उपरोक्त विचार काम नहीं करते हैं, तो किसी भी खोज उपकरण द्वारा पूरे लिनक्स के अंदर nginx.conf को खोजें।
अरुण

`max_input_time = 24000`, 24000 मिलीसेकंड में है?
ऋषभ अग्रहरी

1
@ ऋषभअग्रही सेकण्ड! यह सेकंड में अधिकतम समय सेट करता है। डिफ़ॉल्ट सेटिंग -1 है, जिसका अर्थ है कि इसके बजाय max_execution_time का उपयोग किया जाता है। असीमित समय की अनुमति देने के लिए 0 पर सेट करें
शॉन

18

सबसे पहले Nginx कॉन्फ़िगरेशन फ़ाइल को संपादित करें ( nginx.conf)

स्थान: sudo nano /etc/nginx/nginx.conf

निम्नलिखित कोड जोड़ें:

http {
        client_max_body_size 100M;
}

फिर PHP कॉन्फ़िगरेशन फ़ाइल में निम्न पंक्तियाँ जोड़ें ( php.ini)

स्थान: sudo gedit /etc/php5/fpm/php.ini

निम्नलिखित कोड जोड़ें:

memory_limit = 128M 
post_max_size = 20M  
upload_max_filesize = 10M

1
मैंने nginx.confनिर्देश के रूप में अपनी फ़ाइल खोली , लेकिन यह खाली था! मैं इसकी उम्मीद नहीं कर रहा था, लेकिन जब मैंने आपका कोड जोड़ा तो यह अभी भी काम कर रहा था ... जैसा कि मुझे लगता है कि एक की उम्मीद होगी, लेकिन किसी कारण से मैं नहीं था और जब मैं ऐसा किया तो मैं बहुत खुश था!
एंड्रयू फॉक्स

9

मैं अपनी वर्चुअलहोस्ट में बदलावों को सीधे nginx के वैश्विक विन्यास के बजाय इस तरह जोड़ता हूं:

   server {
     client_max_body_size 100M;
     ...
   }

और फिर मैं php.ini में params को बदल देता हूं, ऊपर की टिप्पणियों की तरह:

   max_input_time = 24000
   max_execution_time = 24000
   upload_max_filesize = 12000M
   post_max_size = 24000M
   memory_limit = 12000M

और जो आप भूल नहीं सकते हैं वह nginx और php-fpm को फिर से शुरू करना है, सेंटो 7 इस तरह है:

  systemctl restart nginx
  systemctl restart php-fpm

8

कृपया डोमेन nginx फ़ाइल दर्ज करें:

nano /etc/nginx/sites-available/domain.set

इस कोड को दर्ज करने के लिए जोड़ें

client_max_body_size 24000M;

यदि आपको त्रुटि मिलती है तो इस कमांड का उपयोग करें

nginx -t

6
sudo nano /etc/nginx/nginx.conf

फिर http सेक्शन में एक लाइन जोड़ें

http {
    client_max_body_size 100M;
}

केवल एम। का उपयोग न करें।

systemctl restart nginx

उसके बाद php लोकेशन के लिए

sudo gedit /etc/php5/fpm/php.ini

अब के लिए अधिकतम उपयोग php 7.0 या उच्चतर

sudo nano /etc/php/7.2/fpm/php.ini     //7.3,7.2 or 7.1 which php you use

अपनी इच्छा से उन लोगों की जाँच करें।

memory_limit = 128M 
post_max_size = 20M  
upload_max_filesize = 10M

php-fpm को पुनः आरंभ करें

service php-fpm restart 

4

यह मानते हुए कि आपने अपनी php.ini फ़ाइलों में आवश्यक परिवर्तन किए हैं:

आप निम्न मार्ग में मिली अपनी nginx.conf फ़ाइल में निम्न पंक्ति जोड़कर समस्या को हल कर सकते हैं:

/etc/nginx/nginx.conf

फिर विम टेक्स्ट एडिटर का उपयोग करके फाइल को इस प्रकार संपादित करें:

vi /etc/nginx/nginx.conf

और उदाहरण के लिए, एक बड़े पर्याप्त मूल्य के साथ client_max_body_size जोड़ें:

client_max_body_size 20MB;

उसके बाद सुनिश्चित करें कि आप का उपयोग कर बचाना :xi या:wq

और फिर अपना नग्नेक्स पुनः आरंभ करें।

बस।

मेरे लिए काम किया, आशा है कि यह मदद करता है।


2

मुझे उपरोक्त परिवर्तनों के साथ अपलोड करने का काम मिला। लेकिन जब मैंने बदलाव किए तो मुझे फ़ाइल अपलोड में 404 प्रतिक्रिया मिलनी शुरू हो गई जिसने मुझे और डिबगिंग करने के लिए प्रेरित किया और नग्नेक्स त्रुटि की जांच करके इसकी अनुमति जारी की।

उपाय:

वर्तमान उपयोगकर्ता और समूह के स्वामित्व की जाँच करें / var / lib / nginx पर।

$ ls -ld /var/lib/nginx

drwx ------। 3 nginx nginx 17 अक्टूबर 5 19:31 / var / lib / nginx

यह बताता है कि nginx नाम का संभवतः एक गैर-मौजूद उपयोगकर्ता और समूह इस फ़ोल्डर का मालिक है। यह फ़ाइल अपलोडिंग को रोक रहा है।

मेरे मामले में, "/etc/nginx/nginx.conf" में उल्लिखित उपयोगकर्ता नाम था

user vagrant; 

इस स्थिति में nginx.conf में परिभाषित उपयोगकर्ता को फ़ोल्डर स्वामित्व बदलें।

$ sudo chown -Rf vagrant:vagrant /var/lib/nginx

सत्यापित करें कि यह वास्तव में बदल गया है।

$ ls -ld /var/lib/nginx
drwx------. 3 vagrant vagrant 17 Oct  5 19:31 /var/lib/nginx

सुरक्षित sade के लिए रगड nginx और php-fpm।

$ sudo service nginx reload
$ sudo service php-fpm reload

अनुमति से वंचित त्रुटि अब दूर जाना चाहिए। Error.log (nginx.conf error_log स्थान पर आधारित) की जाँच करें।

$ sudo nano /path/to/nginx/error.log


0

उपयोग:

php -i

कमांड या जोड़ें:

phpinfo();

कॉन्फ़िगरेशन फ़ाइल का स्थान प्राप्त करने के लिए।

अपनी जरूरत और सर्वर के अनुसार इन चरों को अपडेट करें

max_input_time = 24000
max_execution_time = 24000
upload_max_filesize = 12000M
post_max_size = 24000M
memory_limit = 12000M

लिनक्स पर आपको nginx / apache और phpfpm सेवा को पुनः आरंभ करने की आवश्यकता होगी ताकि नई ini सेटिंग्स लोड हों। Xampp पर, ammps आप नियंत्रण कक्ष से पुनः आरंभ कर सकते हैं जो ऐसे अनुप्रयोगों के साथ आता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.