উত্তর:
অন্যান্য উত্তরের জন্য ধন্যবাদ। আমি কোনও অনুমতি ছাড়াই একটি ডিফল্ট ভার্চুয়াল হোস্ট যুক্ত করে এটি সমাধান করেছি। গ্লোবাল DocumentRoot
এবং ServerName
অপশনগুলি অবশ্যই ভার্চুয়াল হোস্টে উল্লিখিতগুলির সাথে মেলে।
/etc/httpd/conf/httpd.conf
...
ServerName <server-ip>:80
DocumentRoot "/var/www/html"
<Directory />
Order Deny,Allow
Deny from all
Options None
AllowOverride None
</Directory>
...
/etc/httpd/conf.d/default.conf
<VirtualHost *:80>
ServerName <server-ip>
DocumentRoot /var/www/html
</VirtualHost>
এইভাবে, সার্ভারটি আইপি দ্বারা সরাসরি অ্যাক্সেস করা হলে আমি একটি 403 নিষিদ্ধ বার্তা পাই যা আমি যা চেয়েছিলাম ঠিক তেমনটাই। এটির জন্য আমার যদি /var/www/html
কোনও বিদ্যমান ডিরেক্টরি প্রয়োজন না হয় তবে এটি আরও ভাল হবে তবে আমি তার /dev/null
পরিবর্তে এর মতো কিছু নির্দিষ্ট করে দিলে অ্যাপাচি অভিযোগ করে।
আমি নিশ্চিত না যে আপনি এটি করতে চান। যদি অ্যাপাচি কনফিগারেশনে কোনও ডিফল্ট ভোস্ট না থাকে তবে প্রথম সংজ্ঞায়িত vhost ডিফল্ট হয় ।
আপনার সত্যিই যা করতে হবে তা হল ডিফল্ট একটি খালি পৃষ্ঠা পরিবেশন করা।
হ্যা এবং না.
আপনি মন্তব্য করতে বা DocumentRoot
নির্দেশকে সরাতে পারেন , কোনও সমস্যা নেই। তবে এটি খুব বেশি অর্জন করে না, কারণ তখন এটি পূর্বনির্ধারিত ডিরেক্টরিতে ডিফল্ট হয়ে যায় PREFIX/htdocs/
যেখানে আপনি অ্যাপাচি তৈরি করার সময় PREFIX সেট করা থাকে।
যখন আপনার ভার্চুয়ালহোস্টগুলি সমস্ত অনুরোধ সেট আপ করে থাকে যা স্পষ্টভাবে কনফিগার করা ভার্চুয়াল হোস্ট দ্বারা পরিচালিত হয় না ডিফল্ট ভার্চুয়ালহোস্ট (যা সাধারণত প্রথমটি হয় তবে httpd -S
আপনাকে জানাবে) দ্বারা পরিচালিত হয় ।
এর .conf
মধ্যে অবস্থিত এক্সটেনশন সহ যে কোনও অ্যাপাচি কনফিগারেশন ফাইল অ্যাপাচি কনফিগারেশনের /etc/httpd/conf.d/
অংশ হিসাবে অন্তর্ভুক্ত করা হবে। সুতরাং ডিফল্ট "স্বাগত" পৃষ্ঠা কনফিগারেশন অক্ষম করতে আমাদের এটির কনফিগারেশনটির নতুন নামকরণ করতে হবে/etc/httpd/conf.d/welcome.conf:
একটি পদক্ষেপ ডিফল্ট ওয়েলকাম ফাইল:
sudo mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.backup
দ্বিতীয় পুনরায় বুট করা অ্যাপচি 2 পরিষেবা
sudo systemctl restart httpd
আপনার /etc/httpd/conf/httpd.conf- এ, যদি আপনার শোনার নির্দেশনা থাকে
Listen 80
তার মানে
*:80
আপনি আপনার /etc/httpd/conf/httpd.conf এবং /etc/httpd/conf.d/default.conf এ একটি দম্পতি <listener>
+ সংজ্ঞায়িত <servename>
করেছেন যা একই: *:80
+ <server-ip>
। সুতরাং, অ্যাপাচি কেবল একটিকে অ্যাকাউন্টে নেয়।
সুতরাং, আপনার vhost কনফিগারেশনের কোনও ব্যবহার নেই।
আপনার /etc/httpd/conf/httpd.conf আপনার / var / www / html ডিরেক্টরিতে অ্যাক্সেস আটকাতে যথেষ্ট।
কেবল যুক্ত করুন:
<Directory /var/www/html>
Order Deny,Allow
Deny from all
Options None
AllowOverride None
</Directory>
দয়া করে https://httpd.apache.org/docs/2.4/en/vhosts/name-based.html#alg এ পড়ুন :
সার্ভারটি সঠিক নাম ভিত্তিক ভার্চুয়াল হোস্টটি কীভাবে নির্বাচন করে
নাম-ভিত্তিক ভার্চুয়াল হোস্ট রেজোলিউশনের প্রথম ধাপটি আইপি-ভিত্তিক রেজোলিউশন recognize নাম-ভিত্তিক ভার্চুয়াল হোস্ট রেজোলিউশন প্রার্থীদের সেরা আইপি-ভিত্তিক ম্যাচে সংকুচিত করার পরে কেবলমাত্র উপযুক্ত নাম ভিত্তিক ভার্চুয়াল হোস্টটি বেছে নেয়। ভার্চুয়ালহস্টের সমস্ত নির্দেশিকায় আইপি ঠিকানার জন্য ওয়াইল্ডকার্ড (*) ব্যবহার করা এই আইপি-ভিত্তিক ম্যাপিংটিকে অপ্রাসঙ্গিক করে তোলে।
কোনও অনুরোধ এলে সার্ভারটি অনুরোধের দ্বারা ব্যবহৃত আইপি ঠিকানা এবং পোর্টের ভিত্তিতে সেরা (সর্বাধিক সুনির্দিষ্ট) মিলের যুক্তি খুঁজে পাবে। যদি এই সেরা-ম্যাচের ঠিকানা এবং পোর্ট সংমিশ্রণ সহ একাধিক ভার্চুয়াল হোস্ট থাকে তবে অ্যাপাচি অনুরোধে উপস্থিত সার্ভার নামের সাথে সার্ভারনাম এবং সার্ভারএলিয়াস নির্দেশকে আরও তুলনা করবে।
আপনি যদি কোনও নাম-ভিত্তিক ভার্চুয়াল হোস্টের থেকে সার্ভারনাম নির্দেশিকা বাদ দেন, সার্ভারটি সিস্টেম হোস্টের নাম থেকে প্রাপ্ত সম্পূর্ণরূপে যোগ্যতাসম্পন্ন ডোমেন নাম (এফকিউডিএন) এ ডিফল্ট হবে। এই সুস্পষ্টভাবে সেট করা সার্ভারের নামটি পাল্টা স্বজ্ঞাত ভার্চুয়াল হোস্টের মিলের দিকে নিয়ে যেতে পারে এবং নিরুৎসাহিত করা হয়।
কোনও আইপি এবং পোর্ট সংমিশ্রণের জন্য ডিফল্ট নাম-ভিত্তিক ভোস্ট যদি কোনও সর্বাধিক নির্দিষ্ট মিলে যাওয়া আইপি ঠিকানা এবং পোর্ট সংমিশ্রণ সহ ভার্চুয়াল হোস্টের সেটে কোনও সার্ভারনাম বা সার্ভারএলিয়াসের সন্ধান না পাওয়া যায়, তবে প্রথম তালিকাভুক্ত ভার্চুয়াল হোস্ট যা মিলবে তার সাথে মিলবে।
কেবলমাত্র এতে ডিফল্ট পোর্ট পরিবর্তন করুন:
Listen 80
Listen 8080 # any fake port
এবং ভার্চুয়াল হোস্টে * .80 ছেড়ে যান
অ্যাপাচি 2 এবং সেন্টোস 7 নিয়ে আমার জন্য কাজ করে
ডকুমেন্টেশনে আপনি আরও উদাহরণ পেতে পারেন । _ডিফল্ট_ ভেরিয়েবলটি একবার দেখুন।
এই পৃষ্ঠাটি অক্ষম করতে, আমাদের /etc/httpd/conf.d/welcome.conf ফাইলটির অন্য কোনও নামকরণ করতে হবে বা আপনার প্রয়োজন না হলে আপনি কেবল এটি মুছতে পারেন।
এমভি /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf_backup
কমান্ডটি দিয়ে অ্যাপাচি পুনরায় চালু হয়েছে (রুট হিসাবে):
systemctl পুনরায় আরম্ভ করুন httpd