অ্যাপাচি 2.4 এ আপগ্রেড করার পরে 403 ত্রুটি


34

উবুন্টু ১৩.০৪ সার্ভার থেকে আপগ্রেড করার পরে, www পৃষ্ঠাগুলি তাদের প্রদর্শিত হবে না।

ত্রুটি 403 নিষিদ্ধ আপনার কাছে এই সার্ভারটিতে / অ্যাক্সেসের অনুমতি নেই।

আমি অ্যাক্সেস কন্ট্রোলকে অ্যাপাচি ২.২ থেকে অ্যাপাচি ২.৪ এ সংরক্ষণ করে পরিবর্তন করেছি, কিন্তু এটি কার্যকর হয়নি। আমি আর কি করতে পারি?

উত্তর:


59

যা ঘটেছিল তা হল অ্যাপাচি ২.৪-এ কনফিগারেশন ফাইলগুলির সিনট্যাক্সটি পরিবর্তিত হয়েছে।

উত্স: আমি 13.10 এ আপগ্রেড করার পরে আমার সাথে এটিও হয়েছিল

conf.d ফাইল

যে সমস্ত ফাইল ছিল /etc/apache2/conf.dসেগুলিতে সরানো উচিত /etc/apache2/conf-available

তারা এখন একইভাবে কাজ করে sitesএবং modsকাজ করে। আপনার কনফারেন্স ফাইলগুলি কেবল conf-availableফোল্ডারে রেখে দিন এবং আপনার পছন্দসই একটি সক্ষম করুন a2enconf <config-file-name>

উদাহরণ:

আমার কাছে একটি ফাইল conf.d/httpd.confছিল যাতে সার্ভারনামের নির্দেশিকা ছিল।
সেই কাজটি করার জন্য, আমাকে এটিকে conf-availableডিরেক্টরিতে স্থানান্তর করতে হয়েছিল এবং ম্যানুয়ালি এটি সক্ষম করতে হয়েছিল।

sudo mv /etc/apache2/conf.d/httpd.conf /etc/apache2/conf-available/httpd.conf
sudo a2enconf httpd

সাইট ফাইল

পূর্বে, ফাইলগুলির /etc/apache2/sites-availableকোনও এক্সটেনশন ছিল না। উদাহরণস্বরূপ /etc/apache2/sites-available/default। এখন একটি .confএক্সটেনশন প্রয়োজন।

উদাহরণ:

আপনার যদি থাকে তবে /etc/apache2/sites-available/some-site13.04 এ আপনি কেবল এটি ব্যবহার করে সক্ষম করতে পারেন sudo a2ensite some-site। এখন এটি আপনাকে একটি ত্রুটি বলবে

ত্রুটি: কোনও কোনও সাইটের উপস্থিতি নেই!

এটি ঠিক করতে, .confআপনার সমস্ত কনফিগারেশন ফাইলগুলিতে একটি যুক্ত করুন sites-available। আপনি একই sites-enabledকাজ করতে পারেন বা আপনি সমস্ত ফাইল মুছতে পারেন এবং এগুলি প্রতিটি নিজেই পুনরায় সক্ষম করতে পারেন।
আমি তাদের ম্যানুয়ালি করার পরামর্শ দিচ্ছি যেহেতু আপনাকে সম্ভবত প্রতিটি ভিহস্ট (পরবর্তী পদক্ষেপ) ঠিক করতে হবে।

sudo find /etc/apache2/sites-available/ ! -iname '*.conf' -type f -exec mv '{}' '{}'.conf \;

যদি আপনি সেগুলি ম্যানুয়ালি করার সিদ্ধান্ত নিয়েছেন:

sudo rm /etc/apache2/sites-enabled/*
sudo a2ensite your-site-name

ভার্চুয়াল হোস্টের নির্দেশনা:

বনাম প্রয়োজনীয়তা অনুমতি / অস্বীকার করুন

আপনার যদি নিম্নলিখিতগুলি থাকে:

<Directory /path/to/your/site/>
    order allow,deny
    allow from all
</Directory>

এটি হওয়া উচিত:

<Directory /path/to/your/site/>
    Require all granted
</Directory>

আরো তথ্যের জন্য, চেক মন্তব্য দ্বারা DaveRandom একটি অন উত্তর স্ট্যাক ওভারফ্লো উপর।

সোজা কথায়, যদি আপনি অ্যাপাচি ২.৪ এ আপগ্রেড হয়ে থাকেন এবং অ্যাপাচি ২.২ এর পুরানো রাখেন httpd.conf, নির্দেশকে সঠিকভাবে কাজ করা উচিত। আপনি যদি আপনার httpd.conf(যেটি আমি প্রস্তাব দিই) আপগ্রেড করেছি, আপনি 403 ত্রুটি পাবেন যতক্ষণ না আপনি Order/ Allow/ Denyদিকনির্দেশকে তাদের সমতুল্য হিসাবে পরিবর্তন করেন Require

ডিরেক্টরি বিকল্প

যদি আপনার কাছে ডিরেক্টরি বিকল্প থাকে তবে মনে রাখবেন যে সেগুলি মোটামুটি একটি +বা -তাদের কোনওটির সাথেই চাপানো উচিত। উভয়ের মিশ্রণ অনুমোদিত নয়:

উদাহরণ:

এটি অনুমোদিত:

<Directory /path/to/your/site/>
    Options +Indexes +FollowSymLinks -MultiViews
</Directory>

সুতরাং এটি (নোট করুন যে এই উদাহরণগুলি উভয়ই একই কাজ করে না, পূর্ববর্তীটি MultiViewsবিকল্পটি অক্ষম করে , পরেরটি তা করে না):

<Directory /path/to/your/site/>
    Options Indexes FollowSymLinks MultiViews
</Directory>

এটি আর অনুমোদিত নয়:

<Directory /path/to/your/site/>
    Options Indexes FollowSymLinks -MultiViews
</Directory>

সর্বশেষ কনফিগারেশন বিকল্পটি সিনট্যাক্স ত্রুটিটি ছুঁড়ে দেবে:

হয় সমস্ত বিকল্প অবশ্যই + বা - দিয়ে শুরু করতে হবে, বা কোনও বিকল্প হতে পারে না।

অ্যাপাচি পুনরায় চালু করুন

সবকিছু শেষ হয়ে গেলে, পরিবর্তনগুলি কার্যকর হওয়ার জন্য আপনাকে আপনার অ্যাপাচি সার্ভারটি পুনরায় চালু করতে হবে:

 sudo apache2ctl restart

অফিসিয়াল ডকুমেন্টেশনে আপনি ২.২ থেকে ২.৪ পর্যন্ত একটি বিশদ আপগ্রেড গাইড পেতে পারেন ।


1
আমার সিস্টেমে কোনও httpd.confফাইল বা conf.dডিরেক্টরি নেই। তবে একটি apache2.confফাইল আছে। আমি এটিকে conf-availableডিরেক্টরিতে স্থানান্তরিত করার চেষ্টা করেছি , এবং আমি অ্যাপাচি 2: এপাচি 2: কনফিগারেশন ফাইলটি খুলতে পারি নি / ফাইল / ডিরেক্টরিটি নেই: কারণ কী হতে পারে?
অমল মুরালি

@ অমলমুরালি httpd.confএটি একটি উদাহরণ ছিল। এটি সম্ভবত আপনার conf.dডিরেক্টরিতে কোনও কনফিগার ফাইল থাকবে না , সেক্ষেত্রে কেবল সেই পদক্ষেপটি এড়িয়ে যান। হিসাবে apache2.conf, এটি conf-availableডিরেক্টরিতে সরানো উচিত নয় । এটি অ্যাপাচি-র মূল কনফিগারেশন ফাইল এবং এর পথটি /etc/apache2/apache2.conf হওয়া উচিত এবং এটি পরিবর্তন করা উচিত নয়।
ড্যান

1
কি দারুন. এটি কার্যত কেবল একমাত্র লুসিড ওভারভিউ যা কোথাও পাওয়া যায়। ধন্যবাদ।
রাশ ব্যাটম্যান

কোন config.dবা sites availableফোল্ডার নেই। সমস্ত কনফিগার ফাইল এখানে দেখুন: imgur.com/WczXp3v
diEcho

1
@ অ্যাডওয়ার্ড ব্ল্যাক আরও একটি কারণ থাকতে পারে যদি আপনি এখনও ডিফল্ট ভার্চুয়াল হোস্টটি নিম্নলিখিত প্রশ্নের উত্তরে
ড্যান

0

আমি ধরে নিলাম যে ওয়েবসাইটগুলি আপনার উবুন্টু সার্ভারে চলছে।

আপনার ডকুমেন্টরুট সেটিংসটি সঠিক জায়গায় নির্দেশ করছে কিনা তা নিশ্চিত করার জন্য আপনার httpd.conf দেখুন।

ডকুমেন্টরুট দ্বারা রেফারেন্সযুক্ত ফোল্ডারে ফাইলের অনুমতিগুলি যাচাই করুন যে ব্যবহারকারীটি ওয়েবসার্ভার হিসাবে চালিত তা পড়তে পারে।

আপনার যথাযথ সূচক। Html / index.htm ইত্যাদি রয়েছে এবং ওয়েবসার্ভার ডিরেক্টরি তালিকা করার চেষ্টা করছে না তা পরীক্ষা করুন।


0

আমি একই সমস্যা মধ্যে দৌড়ে।

আমি 'সকলের কাছ থেকে অনুমতি দিন' ব্যবহার না করা পর্যন্ত চালানোর জন্য আমি অ্যাপাচি ২.৪ পেতে পারি না, এটি বিরক্তিকর ছিল কারণ আমি সংস্করণ <2.4 থেকে একটি পরিষ্কার ব্রেক দিতে চেয়েছিলাম। অনেকগুলি পরীক্ষা এবং ত্রুটি এবং অনেক অনুসন্ধানের পরে আমি অ্যাক্সেস_কম্প্যাটটির একটি রেফারেন্স স্পষ্ট করে বুঝতে পেরেছিলাম যে এটি কেবল সামঞ্জস্যের জন্য রয়েছে। যদিও অ্যাপাচি ডকুমেন্টেশনগুলি বলে যে উভয়ই ব্যবহার করা যেতে পারে, এটি আপনাকে পরামর্শ দেয় না।

আমি এই মডিউলটি / etc / sysconfig / apache2 লোড ফাইল থেকে সরিয়েছি, এটি আমার সমস্যার সাথে সাথে সমাধান করে।

শ্রদ্ধা লিয়াম


-1

আমি একটি অ-মানক ডিরেক্টরি থেকে ফাইলগুলি পরিবেশন করছি তাই আপগ্রেডের কাজটি করতে আমাকে /etc/apache2/apache2.conf সম্পাদনা করতে হয়েছিল এবং যুক্ত করতে হয়েছিল: বিকল্প সূচকগুলি অনুসরণ করুন সিমলিংকগুলি অনুমোদন করুন ওভাররাইড কিছুই নয় সমস্ত মঞ্জুর করা দরকার

এটির পরে এবং উপরে প্রস্তাবিত পরিবর্তনগুলি, 403 ত্রুটি চলে গেছে।

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