413 সত্তার অনুরোধ খুব বড় - ফাইল আপলোড ইস্যু


97

আমি আমার সার্ভারে 30 এমবি ফাইল আপলোড করার চেষ্টা করছি এবং এটি কাজ করছে না।

  1. আমি যখন 30 এমবি ফাইল আপলোড, পৃষ্ঠা লোড " পৃষ্ঠা খুঁজে পাওয়া যায়নি "

  2. আমি যখন 3 এমবি ফাইল আপলোড করি তখন আমি এনজিএনএক্স / 0.6.32 সহ " 413 অনুরোধ সত্তা অনেক বড় " পাই

আমি এনগিনেক্সের সন্ধান করার চেষ্টা করছি যাতে আমি " ক্লায়েন্ট_ম্যাক্স_বডি_সাইজ " বাড়াতে পারি তবে আমি আমার সার্ভারে এনগিনেক্স ইনস্টল করতে অক্ষম। আমি এমনকি দৌড়ানোর চেষ্টা করেছি:

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
Ashouri

হাই মোহাম্মদ, আমি nginx সন্ধান করেছি কিন্তু আমি এটি আমার সার্ভারে খুঁজে পাইনি। আমি নিশ্চিত, এনগিনেক্স আমার সার্ভারে ইনস্টল করা নেই, তাই কেন আমি এনগিনেক্সের ত্রুটি বার্তা পাচ্ছি তা নিয়ে আমি বিভ্রান্ত
রাজু বিশ্বাস

প্রথমে আপনি অবশ্যই নিশ্চিত হন যে আপনার সার্ভারে এনজিিক্স ইনস্টল করা নেই, তবে আপনি যদি নিশ্চিত হন তবে এটি সম্ভবত সুরক্ষার কারণেই কিছু সার্ভার ম্যানেজার বিভ্রান্ত হ্যাকাররা এই কৌশলটি ব্যবহার করেন
আশুরি

আপনি এটি চেষ্টা করছে ps aux | grep nginxযে এটি চলছে কিনা?
আরপিকম্প

আপনি চেষ্টা করেছেন which nginx? এটি আপনাকে কনফিগার ফাইলের বদলে এক্সিকিউটেবলের অবস্থান দেবে, তবে এটি কমপক্ষে এনজিঞ্জ ইনস্টল রয়েছে কিনা তা নিশ্চিত হওয়া উচিত।
ডগ ম্যাকলিন

উত্তর:


119

সূত্র: http://www.cyberciti.biz/faq/linux-unix-bsd-nginx-413-quest-entity-too-large/

এনগিনেক্সের কনফ ফাইলটি সম্পাদনা করুন:

nano /etc/nginx/nginx.conf

HTTP বিভাগে একটি লাইন যুক্ত করুন:

http {
    client_max_body_size 100M;
}

এমবি ব্যবহার করবেন না এটি কাজ করবে না, কেবল এম!

এছাড়াও nginx পুনরায় চালু করতে ভুলবেন না

systemctl restart nginx

যখন আমি এটি করি তখন আমার 413 404 এ পরিণত হয় I'm আমি ইসি 2 তে আমাজন লিনাক্স ব্যবহার করছি। এছাড়াও nginx ডক একটি ছোট 'মি' দেখায়। nginx.org/en/docs/http/…
নিউ

ফাইল পরিবর্তন করার জন্য এটি একটি পাসওয়ার্ড চেয়েছে। কিন্তু আমি একটি সেট মনে নেই। আমি কিছু অনুপস্থিত করছি?
সুরজ

4
ন্যানোর জন্য পথটি ন্যানো /etc/nginx/nginx.conf হওয়া উচিত।
ম্যাকসি 32

আমার জন্য কাজ করেছেন তবে দ্রষ্টব্য: আপনার কনফিগারেশটিতে যদি ইতিমধ্যে একটি http { }বিভাগ থাকে তবে এর বাকী অংশটি যুক্ত করুন! একটি নতুন http {}বিভাগ যুক্ত করা ব্যর্থ হবে এবং "http" directive is duplicateNginx লগ এ ত্রুটি দেয়।
jerclarke

42

-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

-in nginx.conf (ভিতরে / অপ্ট / এনগিনেক্স / কনফার্ট)

client_max_body_size 24000M

এটা আমার ক্ষেত্রে কাজ করছে


হাই অরুণ, আমাদের সার্ভারের সমস্যাটি হ'ল, আমি এনজিঙ্ক্স ইনস্টল করা সন্ধান করতে পারছি না তবে এটি এখনও এনজিন্স ত্রুটি দেয়
রাজু বিশ্বাস

/ অপ্ট বা / ইত্যাদির ভিতরে এনজিনেক্স খুঁজুন। এনগিনেক্সের ভিতরে কনফিড ফোল্ডারটি খুঁজে বের করুন তারপর nginx.conf।
অরুণ

উপরের ধারণাটি যদি কাজ না করে, তবে কোনও অনুসন্ধান সরঞ্জাম দিয়ে পুরো লিনাক্সের মধ্যে nginx.conf অনুসন্ধান করুন।
অরুণ

`সর্বোচ্চ_পিন্ড_টাইম = 24000`, 24000 মিলিসেকেন্ডে?
Agষভ অগ্রহরি

4
@ Habষভআগ্রহরি সেকেন্ডস! এটি সেকেন্ডে সর্বাধিক সময় নির্ধারণ করে। Default সীমাহীন সময়ের অনুমতি দিতে 0 তে সেট করুন
শান করুন

18

প্রথমে Nginx কনফিগারেশন ফাইল সম্পাদনা করুন ( nginx.conf)

অবস্থান: sudo nano /etc/nginx/nginx.conf

নিম্নলিখিত কোড যুক্ত করুন:

http {
        client_max_body_size 100M;
}

তারপরে পিএইচপি কনফিগারেশন ফাইলে নিম্নলিখিত লাইনগুলি যুক্ত করুন ( php.ini)

অবস্থান: sudo gedit /etc/php5/fpm/php.ini

নিম্নলিখিত কোড যুক্ত করুন:

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

4
আমি nginx.confনির্দেশ মতো আমার ফাইলটি খুললাম , তবে এটি খালি ছিল! আমি এটি প্রত্যাশা করছিলাম না, তবে আমি যখন আপনার কোডটি যুক্ত করেছি তখনও এটি কার্যকর হয়েছিল ... যেমনটি অনুমান করি যে একজন আশা করবে তবে কোনও কারণে আমি ছিলাম না এবং এটি যখন হয়েছিল তখন আমি খুব খুশি হয়েছিলাম!
অ্যান্ড্রু ফক্স

8

দয়া করে ডোমেন এনগিনেক্স ফাইল প্রবেশ করুন:

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

এই কোড ফাইল করতে যোগ করুন

client_max_body_size 24000M;

যদি ত্রুটি পান তবে এই কমান্ডটি ব্যবহার করুন

nginx -t

8

আমি পরিবর্তনগুলি সরাসরি আমার ভার্চুয়ালহস্টের পরিবর্তে এনগিনেক্সের বৈশ্বিক কনফিগারেশনের পরিবর্তে যুক্ত করি:

   server {
     client_max_body_size 100M;
     ...
   }

এবং তারপরে আমি উপরের মতামতগুলির মতো, php.ini এ প্যারামগুলি পরিবর্তন করেছি:

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

এবং যা আপনি ভুলে যেতে পারবেন না তা হ'ল এনজিনেক্স এবং পিএইচপি-এফপিএম পুনরায় চালু করা, সেন্টোস 7 এ এরকম:

  systemctl restart nginx
  systemctl restart php-fpm

6
sudo nano /etc/nginx/nginx.conf

তারপরে http বিভাগে একটি লাইন যুক্ত করুন

http {
    client_max_body_size 100M;
}

শুধু এমবি ব্যবহার করবেন না

systemctl restart nginx

তারপরে পিএইচপি অবস্থানের জন্য

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

আজকাল সর্বাধিক পিএইচপি 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

পিএইচপি-এফপিএম পুনরায় চালু করুন

service php-fpm restart 

4

ধরে নিচ্ছি যে আপনি আপনার php.ini ফাইলগুলিতে প্রয়োজনীয় পরিবর্তন করেছেন:

নিম্নলিখিত পন্থায় পাওয়া আপনার nginx.conf ফাইলটিতে নিম্নলিখিত লাইনটি যুক্ত করে আপনি সমস্যার সমাধান করতে পারেন:

/etc/nginx/nginx.conf

তারপরে নীচে vim টেক্সট সম্পাদক ব্যবহার করে ফাইলটি সম্পাদনা করুন:

vi /etc/nginx/nginx.conf

এবং ক্লায়েন্ট_ম্যাক্স_দেহী_ আকারকে একটি বৃহত পরিমাণে মান যুক্ত করুন, উদাহরণস্বরূপ:

client_max_body_size 20MB;

এর পরে নিশ্চিত হয়ে নিন যে আপনি :xiবা ব্যবহার করে সংরক্ষণ করেছেন:wq

এবং তারপরে আপনার এনগিনেক্স পুনরায় চালু করুন।

এটাই.

আমার জন্য কাজ, আশা করি এটি সাহায্য করবে।


2

উপরের পরিবর্তনগুলি সহ আমি আপলোড পেয়েছি। তবে আমি যখন পরিবর্তনগুলি করেছি তখন ফাইল আপলোডে 404 টি প্রতিক্রিয়া পাওয়া শুরু হয়েছিল যা আমাকে আরও ডিবাগিং করতে পরিচালিত করে এবং এনজিএনএক্স ত্রুটি পরীক্ষা করে এর অনুমতি সংক্রান্ত সমস্যাটি বের করে ফেলল log

সমাধান:

/ Var / lib / nginx এ বর্তমান ব্যবহারকারী এবং গোষ্ঠীর মালিকানা পরীক্ষা করুন।

$ ls -ld /var/lib/nginx

drwx ------। 3 এনগিনেক্স এনজিনেক্স 17 অক্টোবর 5 19:31 / ভেরি / লিবিব / এনগিনেক্স

এটি জানায় যে সম্ভবত একটি অস্তিত্বহীন ব্যবহারকারী এবং এনজিনেক্স নামের গোষ্ঠী এই ফোল্ডারটির মালিক। এটি ফাইল আপলোড প্রতিরোধ করছে।

আমার ক্ষেত্রে, "/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

অনুমতি অস্বীকার ত্রুটি এখন চলে যাওয়া উচিত। ত্রুটি.লগটি পরীক্ষা করুন (nginx.conf ত্রুটি_লগ অবস্থানের উপর ভিত্তি করে)।

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

0

ফাইল খুলুন /etc/nginx/nginx.conf যোগ করুন বা পরিবর্তন করুনclient_max_body_size 0;


0

ব্যবহার:

php -i

আদেশ বা যোগ করুন:

phpinfo();

কনফিগারেশন ফাইলের অবস্থান পেতে।

আপনার প্রয়োজন এবং সার্ভার অনুসারে এই পরিবর্তনগুলি আপডেট করুন

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

লিনাক্সে আপনাকে এনজিনেক্স / অ্যাপাচি এবং পিএইচপিএফএম সার্ভিস পুনরায় চালু করতে হবে যাতে নতুন ইনআই সেটিংস লোড হয়। এক্সএএমপ্পে, অ্যাম্প্পগুলিতে আপনি এগুলি অ্যাপ্লিকেশনগুলির সাথে আসা নিয়ন্ত্রণ প্যানেল থেকে পুনরায় চালু করতে পারেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.