CentOS 8 এ ভার্চুয়াল হোস্টের সাথে অ্যাপাচি কীভাবে ইনস্টল করবেন


অ্যাপাচি ওয়েবসার্ভার একটি ওপেনসোর্স এবং জনপ্রিয় এইচটিটিপি ওয়েব সার্ভার যা হোস্টিং ইন্ডাস্ট্রিতে প্রচুর বাজার ভাগ উপভোগ করে চলেছে। এটি মডিউল বর্ধন, মাল্টি-প্রোটোকল সমর্থন, সরলীকৃত কনফিগারেশন এবং মাল্টি-ল্যাঙ্গুয়েজ সমর্থন সহ কয়েকটি সংখ্যার উল্লেখ সহ অনেকগুলি বৈশিষ্ট্য সহ জাহাজ সরবরাহ করে।

এই গাইড ইন, আমরা আপনাকে ভার্চুয়াল হোস্ট পরিবেশের সাথে CentOS 8 এবং RHEL 8 এ অ্যাপাচি ওয়েবসার্ভার স্থাপনের মাধ্যমে চলব। এই টিউটোরিয়ালটি লেখার সময়, অ্যাপাচি এর সর্বশেষ সংস্করণটি অ্যাপাচি ২.২.৪৩।

অ্যাপাচি ওয়েব সার্ভার ইনস্টল করা হচ্ছে

শুরু করতে, প্রথমে নীচের ডিএনএফ কমান্ডটি ব্যবহার করে আপনার CentOS 8 বা RHEL 8 সিস্টেম প্যাকেজ তালিকা আপডেট করুন।

$ sudo dnf update

আপডেটটি সম্পূর্ণ হয়ে গেলে, নিম্নলিখিত কমান্ডটি প্রয়োগ করে অ্যাপাচি ওয়েবসারভারটি ইনস্টল করুন।

$ sudo dnf install httpd

একবার ইনস্টল হয়ে গেলে, আপনি আরপিএম কমান্ডটি চালিয়ে অ্যাপাচি সংস্করণটি যাচাই করতে পারেন।

$ rpm -qi httpd

কমান্ডটি প্যাকেজের সংস্করণ, প্রকাশের তারিখ, বিল্ড এবং আর্কিটেকচারের মতো তথ্যের অ্যারে প্রিন্ট করে।

অ্যাপাচি এইচটিটিপি ওয়েব সার্ভিস শুরু করতে, systemctl কমান্ডটি চালান।

$ sudo systemctl start httpd

পরিষেবাটি চলছে কিনা তা নিশ্চিত করার জন্য, কার্যকর করুন।

$ sudo systemctl status httpd

আউটপুট থেকে, সবুজগুলিতে "সক্রিয়" স্থিতি ইঙ্গিত দেয় যে অ্যাপাচি ওয়েবসার্ভার আপ এবং চলমান।

ওয়েবসভারটি চলছে যে কোনও সন্দেহ দূর করতে আপনার সার্ভারের আইপি ঠিকানা বা ডোমেনের নামটি প্রদর্শিত হিসাবে ব্রাউজ করে অ্যাপাচি থেকে একটি পরীক্ষা পৃষ্ঠা অনুরোধ করুন।

http://server-ip  

আপনি কার্ল কমান্ড চালিয়ে আপনার সার্ভার আইপি পেতে পারেন।

$ curl ifconfig.me 
OR
$ curl -4 icanhazip.com

আপনি যখন সার্ভারের আইপি ঠিকানা ব্রাউজ করেন, আপনার নিম্নলিখিত ওয়েব পৃষ্ঠাটি প্রদর্শিত হওয়া উচিত।

এটি একটি নিশ্চিত নিশ্চিতকরণ যা ওয়েবসারভারটি চলছে।

অ্যাপাচি ওয়েবসার্ভার পরিচালনা করা

অ্যাপাচি ইনস্টল ও চলমান থাকায় আপনি অ্যাপাচি পরিচালনা করতে সিস্টেমটেক্ট পরিদর্শন সরঞ্জামটি ব্যবহার করতে পারেন।

উদাহরণস্বরূপ, অ্যাপাচি বন্ধ করতে, কমান্ডটি চালান:

$ sudo systemctl stop httpd

আবার পরিষেবাটি শুরু করতে, চালনা করুন:

$ sudo systemctl start httpd

আপনি যদি এর যেকোন কনফিগারেশন ফাইলগুলিতে পরিবর্তন করে থাকেন এবং পরিবর্তনগুলি প্রয়োগ করতে আপনাকে পুনরায় চালু করতে হবে, কমান্ডটি কার্যকর করুন:

$ sudo systemctl restart httpd

পরিষেবাটি পুনঃসূচনা করার ফলে সাধারণত পরিষেবা বিঘ্ন ঘটে। আরও ভাল বিকল্প হ'ল সংযোগের সাথে কোনও বাধা ছাড়াই কেবল পুনরায় লোড করা।

$ sudo systemctl reload httpd

বুপাটিং বা রিবুট করার পরে অ্যাপাচি ওয়েব সার্ভারটি স্বয়ংক্রিয়ভাবে শুরু করতে নীচের কমান্ডটি চালান। এটি আপনার হস্তক্ষেপ ছাড়াই অ্যাপাচি স্বয়ংক্রিয়ভাবে শুরু হওয়া নিশ্চিত করবে।

$ sudo systemctl enable httpd

আপনি যদি বুটে স্বয়ংক্রিয়ভাবে পরিষেবাটি চালু না করা চয়ন করেন তবে চালান:

$ sudo systemctl disable httpd

অ্যাপাচি ভার্চুয়াল হোস্ট সেট আপ করা হচ্ছে

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

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

ডিফল্ট ভার্চুয়াল হোস্টটি /var/www/html ডিরেক্টরিতে অবস্থিত। এটি কেবল একটি একক সাইটের জন্য কাজ করে। আমাদের ডোমেনের জন্য একটি পৃথক ভার্চুয়াল হোস্ট তৈরি করতে, আমরা /var/www ডিরেক্টরিতে প্রদর্শিত হিসাবে অন্য ডিরেক্টরি কাঠামো তৈরি করব।

$ sudo mkdir -p /var/www/crazytechgeek.info/html

অতিরিক্তভাবে, আপনি লগ ফাইলগুলি সংরক্ষণ করার জন্য একটি ডিরেক্টরিও তৈরি করতে পারেন।

$ sudo mkdir -p /var/www/crazytechgeek.info/log

এরপরে, ফাইলের অনুমতিগুলি সম্পাদনা করুন হিসাবে দেখানো হয়েছে এনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করুন।

$ sudo chown -R $USER:$USER /var/www/crazytechgeek.info/html

এছাড়াও, ওয়েবরুট ডিরেক্টরি হিসাবে প্রদর্শিত হিসাবে অনুমতিগুলি সামঞ্জস্য করুন।

$ sudo chmod -R 755 /var/www

এরপরে, দেখানো হয়েছে বলে একটি নমুনা সূচক html তৈরি করুন।

$ sudo vim /var/www/crazytechgeek.info/html/index.html

কীবোর্ডে i চিঠিটি হিট করুন এবং প্রদর্শিত কিছু নমুনা সামগ্রী পেস্ট করুন যা ভার্চুয়াল হোস্টের পরীক্ষা করার সময় ওয়েব ব্রাউজারে প্রদর্শিত হবে।

<html>
  <head>
    <title>Welcome to crazytechgeek.info!</title>
  </head>
  <body>
    <h1>Success! The crazytechgeek.info virtual host is up and perfectly working!</h1>
  </body>
</html>

কনফিগারেশন ফাইলটি সংরক্ষণ করুন এবং প্রস্থান করুন।

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

ভার্চুয়াল হোস্ট ফাইলটিতে আপনার ডোমেনের সাইট কনফিগারেশন থাকবে এবং এটি ক্লায়েন্টদের অনুরোধগুলিতে কীভাবে প্রতিক্রিয়া জানাবে তা অ্যাপাচি নির্দেশ করবে। তবে এগিয়ে চলতে আপনার 2 টি ডিরেক্টরি তৈরি করতে হবে: সাইটগুলি উপলভ্য এবং সাইটগুলি সক্ষম ডিরেক্টরি।

ভার্চুয়াল হোস্ট ফাইলটি সাইটগুলি উপলভ্য ডিরেক্টরিতে সঞ্চিত থাকবে যখন সাইটগুলি সক্ষম ডিরেক্টরিতে ভার্চুয়াল হোস্টের প্রতীকী লিঙ্ক থাকবে।

প্রদর্শিত হিসাবে উভয় ডিরেক্টরি তৈরি করুন।

$ sudo mkdir /etc/httpd/sites-available
$ sudo mkdir /etc/httpd/sites-enabled

এরপরে, অ্যাপাচি ওয়েব সার্ভারের প্রধান কনফিগারেশন ফাইলটি সংশোধন করুন এবং অ্যাপাচিকে নির্দেশ দিন যেখানে সাইট-সক্ষম ডিরেক্টরিতে ভার্চুয়াল হোস্টটি সনাক্ত করা যায়।

$ sudo vim /etc/httpd/conf/httpd.conf

কনফিগারেশন ফাইলের একেবারে শেষে বর্ণিত লাইনটি যুক্ত করুন।

IncludeOptional sites-enabled/*.conf

সংরক্ষণ এবং ত্যাগ.

এখন প্রদর্শিত হিসাবে একটি ভার্চুয়াল হোস্ট ফাইল তৈরি করুন:

$ sudo vim /etc/httpd/sites-available/crazytechgeek.info

নীচের সামগ্রীটি আটকান এবং আপনার নিজের ডোমেন নামের সাথে ক্রেটিটেকজেকইন.ফো প্রতিস্থাপন করুন।

<VirtualHost *:80>
    ServerName www.crazytechgeek.info
    ServerAlias crazytechgeek.info
    DocumentRoot /var/www/crazytechgeek.info/html
    ErrorLog /var/www/crazytechgeek.info/log/error.log
    CustomLog /var/www/crazytechgeek.info/log/requests.log combined
</VirtualHost>

ফাইলটি সংরক্ষণ করুন এবং প্রস্থান করুন।

সাইটগুলি সক্ষম ডিরেক্টরিতে প্রতীকী লিঙ্ক তৈরি করে এখন ভার্চুয়াল হোস্ট ফাইলটি সক্ষম করুন।

$ sudo ln -s /etc/httpd/sites-available/crazytechgeek.info.conf /etc/httpd/sites-enabled/crazytechgeek.info.conf

ভার্চুয়াল হোস্টগুলির জন্য সেলইনাক্স অনুমতিগুলি সমন্বয় করা

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

সেলইনাক্স অ্যাপাচি নীতিগুলি সমন্বয় করার জন্য দুটি পন্থা রয়েছে: সার্বজনীনভাবে অ্যাডজাস্টিং পলিসি এবং কোনও ডিরেক্টরিতে নীতিগুলি সমন্বয় করা। পরেরটি বেশি পছন্দ করা হয় কারণ এটি বেশি পছন্দ করা হয়।

লগ ডিরেক্টরিতে সেলিনাক্স অনুমতিগুলি সম্পাদনা করা আপনাকে অ্যাপাচি-র ওয়েবসারভারের নীতিগুলির উপরে নিখুঁত নিয়ন্ত্রণ দেয়। এই পদ্ধতিটি বেশ দীর্ঘ এবং আপনার ভার্চুয়াল হোস্ট কনফিগারেশন ফাইলে নির্দিষ্ট অতিরিক্ত ডিরেক্টরিগুলির জন্য প্রসঙ্গের ধরণটি ম্যানুয়ালি কনফিগার করতে হবে requires

শুরু করার আগে প্রথমে SELinux দ্বারা লগ ডিরেক্টরিতে নির্ধারিত প্রসঙ্গের প্রকারটি নিশ্চিত করুন:

$ sudo ls -dlZ /var/www/crazytechgeek.info/log/

আউটপুটটি আমাদের নীচের মতো হওয়া উচিত।

আউটপুট থেকে, সেট প্রসঙ্গটি হল httpd_sys_content_t। এটি নির্দেশ করে যে ওয়েবসার্ভার কেবল লগ ডিরেক্টরিতে ফাইলগুলি পড়তে পারে। ডিরেক্টরিতে লগ এন্ট্রি তৈরি করতে এবং অ্যাপাচি সক্ষম করতে আপনাকে এই প্রসঙ্গটি httpd_log_t এ পরিবর্তন করতে হবে।

সুতরাং, কমান্ডটি কার্যকর করুন:

$ sudo semanage fcontext -a -t httpd_log_t "/var/www/crazytechgeek.info/log(/.*)?"

আপনি যদি নীচে ত্রুটিটি পেতে থাকেন তবে "বর্জ্য: কমান্ডটি পাওয়া যায় নি"।

এটি বোঝায় যে semanage কমান্ডের জন্য উপলব্ধ প্যাকেজগুলি ইনস্টল করা নেই। এই ত্রুটিটি ঠিক করতে আপনার এই প্যাকেজগুলি ইনস্টল করতে হবে। তবে প্রথমে পরীক্ষা করে দেখুন যে কোন প্যাকেজগুলি চালনা করে সেমেনেজ কমান্ডের জন্য সরবরাহ করে:

$ sudo dnf whatprovides /usr/sbin/semanage

আউটপুট আমাদের প্যাকেজ সরবরাহ করে যা বর্জ্য সরবরাহের জন্য সরবরাহ করে যা পলিসি কোয়ার্টিলস-পাইথন-ইউটিস।

এখন ডিএনএফ প্যাকেজ ম্যানেজার ব্যবহার করে প্যাকেজটি ইনস্টল করুন।

$ sudo dnf install policycoreutils-python-utils

প্রসঙ্গ পরিবর্তনের কমান্ডটি এখন কাজ করা উচিত।

$ sudo semanage fcontext -a -t httpd_log_t "/var/www/crazytechgeek.info/log(/.*)?"

পরিবর্তনগুলি সংরক্ষণ করতে এবং এগুলি অবিরাম করতে, পুনর্নির্মাণ কমান্ডটি প্রদর্শিত হিসাবে প্রকাশ করুন:

$ sudo restorecon -R -v /var/www/crazytechgeek.info/log

আপনি আবার কমান্ডটি চালিয়ে পরিবর্তনগুলি নিশ্চিত করতে পারেন:

$ sudo ls -dlZ /var/www/crazytechgeek.info/log/

নিশ্চিত হয়ে নিন যে আউটপুটে প্রদর্শিত প্রসঙ্গে প্রসঙ্গটি httpd_log_t এ পরিবর্তিত হয়েছে।

পরিবর্তনগুলি প্রয়োগ করার জন্য অ্যাপাচি পুনরায় চালু করুন।

$ sudo systemctl restart httpd

আপনি এখন নিশ্চিত করতে পারেন যে অ্যাপাচি লগ ডিরেক্টরিতে লগ ফাইলগুলিকে দেখানো হয়েছে তার লিখিত সামগ্রীগুলি তালিকাভুক্ত করে সংরক্ষণ করছে:

$ ls -l /var/www/crazytechgeek.info/log/

প্রদর্শিত হিসাবে আপনার দুটি লগ ফাইল দেখতে সক্ষম হওয়া উচিত: ত্রুটি লগ এবং অনুরোধ লগ ফাইলগুলি।

অ্যাপাচি ভার্চুয়াল হোস্টের পরীক্ষা করা

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

http://domain-name

পারফেক্ট! এটি ইঙ্গিত দেয় যে সবকিছু ঠিকঠাক হয়েছে এবং আমাদের ভার্চুয়াল হোস্টটি প্রত্যাশার মতো পরিবেশন করা হচ্ছে।

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

আপনি যদি একটি সম্পূর্ণ হোস্টিং স্ট্যাক সেট আপ করতে চান তবে আমি আপনাকে সেন্টোস 8 এ একটি এলএএমপি স্ট্যাক ইনস্টল করার পরামর্শ দিয়েছি।