কম্পিউটার টিউটোরিয়াল

উবুন্টু সার্ভার আপগ্রেডের পর Nginx-এ 404 এরর সমাধান

আজকের সবচেয়ে কমন ওয়েব সার্ভার কোম্বিনেশনগুলোর মধ্যে একটি হচ্ছে Nginx ওয়েব সার্ভার সফ্টওয়্যার ইমপ্লিমেন্টেশন উবুন্টু সার্ভার এডিশনে রান করা। এই সিস্টেম অত্যন্ত ইফিশিয়েন্ট এবং আপডেট রাখা সহজ, যেহেতু উভয় প্যাকেজই রেগুলার আপডেট পায়। সিস্টেম অ্যাডমিনিস্ট্রেটররা সাধারণত apt প্যাকেজ ম্যানেজার দিয়ে আপডেট ইনস্টল করেন, কারণ উবুন্টু সার্ভারের ডিফল্টভাবে কোনো গ্রাফিক্যাল ইউজার ইন্টারফেস নেই।

উবুন্টু সার্ভার আপগ্রেড কখনও কখনও অস্বাভাবিক এরর জেনারেট করতে পারে, এবং এই গ্রাফিক্যাল ইউজার ইন্টারফেসের অভাব নовичকদের জন্য ট্রাবলশুটিং কঠিন করে দেয়। কয়েকটি সিম্পল কমান্ডই উবুন্টু আপগ্রেডের পর Nginx 404 এরর ফিক্স করতে পারে।

পদ্ধতি ১: অনুপস্থিত Nginx এরর পেজ ফিক্স করা

যদি একটি সাইট AWS, একটি প্রাইভেট সার্ভার বা যেকোনো অন্যান্য সার্ভার কনফিগারেশনে LEMP স্ট্যাকে হোস্ট করা থাকে, তবে এটি উবুন্টু সার্ভার আপগ্রেডের পর র‍্যান্ডমলি ডাউন যেতে পারে। একটি ওয়েব ব্রাউজার থেকে সাইটটি অ্যাক্সেস করার চেষ্টা করুন, হয় অন্য একটি মেশিন থেকে। ধরে নিচ্ছি এটি একটি 404 এরর রিটার্ন করে, উবুন্টু সার্ভার CLI-তে যান এবং tail -f /var/log/nginx/error.log কমান্ড রান করুন সব недав্য এরর देखने के लिए।

লগে যদি এমন একটি এরর থাকে:

open() "/usr/share/nginx/html/50x.html" failed (2: No such file or directory)

তবে আপনার সিস্টেম একটি মিসিং এরর পেজ থেকে গ্রস্ত। আপনি এই লাইনে 40x.html-ও দেখতে পারেন, যদিও আপনার সাইট ডাউন থাকলে এবং 404 এরর পেলে এটি আপেক্ষিকভাবে अनকমন। ls /usr/share/nginx/html/ কমান্ড ব্যবহার করুন দেখতে সেখানে কিছু আছে কিনা। যদি না থাকে, তবে আপনাকে 50X এরর জন্য HTML কোড তৈরি করতে হবে।

মনে রাখবেন যে ডিফল্ট ডিরেক্টরি স্ট্রাকচার ব্যবহার করা প্রায়শই প্যাকেজ ম্যানেজারদের সাথে একটি সমস্যা, যা সেখানে স্টোর করা যা যাওয়া সেটি ওভাররাইট করে দিতে পারে। আপনি Nginx কনফিগারেশনে docroot লাইন চেঞ্জ করতে পারেন এই ধরনের সমস্যা প্রতিরোধ করার জন্য আপনি যদি একটি কাস্টম ডিরেক্টরি স্ট্রাকচার তৈরি করার অনুমতি পান।

পদ্ধতি ২: PHP কে সঠিক সোকেট খুঁজে বের করতে সাহায্য করা

আপনি লগে এমন একটি এররও খুঁজে পেতে পারেন /var/log/nginx/error.log-এ:

connect() to unix:/var/run/php/php7.0-fpm.sock failed (2: No such file or directory)

এটি মানে আপনার কাছে PHP7.0 রানিং আছে, কিন্তু সেটি সেখানে রান করছে না যেখানে হওয়া উচিত। ভার্সন নম্বর ভিন্ন হতে পারে আপনি PHP কীভাবে কনফিগার করেছেন সেটির উপর নির্ভর করে। ডিফল্ট ইনস্টলেশন /var/run/php/php7.0-fpm.sock বা /var/run/php/php5-fpm.sock থেকে রান করবে, কিন্তু আপনার কাছে এই এরর থাকলে সেটি সবসম্ভবত কেস নয়।

sudo find / -name 'php*fpm.sock' কমান্ডগুলো রান করুন দেখতে আপনার সিস্টেমে কোথাও একটি সোকেট রানিং আছে কিনা।

ধরে নিচ্ছি আপনি পজিটিভ আউটপুট পেলেন, তবে আপনাকে আপনার Nginx কনফিগারেশন আপডেট করতে হবে সঠিক জায়গা দেখানোর জন্য যেখানে সোকেটটি রানিং হওয়া উচিত। স্বাভাবিকভাবেই, /directoryPath সঠিক পাথ দিয়ে রিপ্লেস করা হবে। php/php7.0-fpm.sock লাইনটি কনফিগারেশন আপডেট করবে আপনি যদি একটি সোকেট ফাইল ব্যবহার করেন।

পুরানো TCP সোকেটের ব্যবহারকারীরা যারা সোকেট ফাইল ব্যবহার করে না, তারা চেক করতে পারেন একটি PHP সোকেট বর্তমানে পোর্ট 9000-এ লিসেন করছে কিনা sudo netstat -tulpn | grep 9000 কমান্ড লাইন থেকে রান করে। যদি এই কেস হয়, তবে nano, vi বা অন্য কোনো টেক্সট এডিটরে আপনার fastcgi_pass খুলুন এবং unix:… লাইনটি পরিবর্তন করুন বরং 127.0.0.1:9000 ব্যবহার করে সোকেট আপডেট করতে।

যদি এই কোনোটিই কাজ না করে, তবে নিশ্চিত করুন যে php7.0-fpm বা আপনি যে ভার্সন নম্বর ব্যবহার করছেন সেটি রান করছে sudo systemctl restart php7.0-fpm কমান্ড দিয়ে, এবং তারপর উপরের প্রসেসটি রিপিট করুন।

মনে রাখবেন যে অধিকাংশ পরিস্থিতিতে /etc/php/7.0/fpm/pool.d/www.conf-এ listen এন্ট্র এবং /etc/nginx/sites-available/default-এ মান একই হতে হবে। আপনি নতুন কনফিগারেশনের জন্য unix:/run/php/php7.0-fpm.sock চেষ্টা করতে পারেন, বা পুরানো স্টাইলের জন্য 127.0.0.1:9000।

লেখক সম্পর্কে

উবুন্টু সার্ভার আপগ্রেডের পর Nginx-এ 404 এরর সমাধান

কেভিন অ্যারোজ

কেভিন অ্যারোজ একজন অত্যন্ত অভিজ্ঞ এবং জ্ঞানী প্রযুক্তি বিশেষজ্ঞ যিনি এক দশকের বেশি ইন্ডাস্ট্রি অভিজ্ঞতা রাখেন। তিনি মাইক্রোসফ্ট সার্টিফাইড টেকনোলজি স্পেশালিস্ট (MCTS) সার্টিফিকেশন ধারণ করেন এবং সর্বশেষ প্রযুক্তি উন্নতির সাথে আপ-টু-ডেট থাকতে গভীর আগ্রহ রাখেন। কেভিন প্রযুক্তি-সম্পর্কিত وسیম শ্রেণির বিষয়ে ব্যাপকভাবে লিখেছেন, যা সফ্টওয়্যার ডেভেলপমেন্ট, সাইবার সিকিউরিটি এবং ক্লাউড কম্পিউটিং এর মতো ক্ষেত্রে তার দক্ষতা এবং জ্ঞানের প্রদর্শন করে। প্রযুক্তি ক্ষেত্রে তার অবদানকে তার সমকক্ষরা ব্যাপকভাবে স্বীকৃতি ও সম্মান দিয়েছে, এবং জটিল প্রযুক্তিগত ধারণাগুলো স্পষ্ট ও সংক্ষিপ্তভাবে ব্যাখ্যা করার ক্ষমতার জন্য তিনি অত্যন্ত সম্মানিত।

  1. উইন্ডোজ ১০-এ CHKDSK-এর ৭টি কাজের ফিচার

  2. Windows Installer Error 1620 সমাধান: ধাপে ধাপে ফিক্স গাইড

  3. সমাধান: File Record Segment is Unreadable

  4. অ্যান্ড্রয়েডের ব্লু লাইট ফিল্টার চালু করুন: ধাপে ধাপে গাইড