अपाचे कॉन्फ़िगरेशन फ़ाइलों को किसकी अनुमति नहीं देनी चाहिए. अपाचे सर्वर को स्थापित और कॉन्फ़िगर करना। HTTP अनुरोधों को HTTPS पर पुनर्निर्देशित करना

💖क्या आपको यह पसंद है?लिंक को अपने दोस्तों के साथ साझा करें

वेबसाइट होस्टिंग

इसे चार तरीकों से लागू किया जा सकता है:

    डिफ़ॉल्ट रूप से /var/www/html फ़ोल्डर में। पहुंच http://localhost/ है

    मुख्य होस्टिंग सेटिंग्स. उदाहरण के लिए, http://localhost/phpmyadmin

    वर्चुअल होस्ट मॉड्यूल का उपयोग करके किसी भी फ़ोल्डर में। उदाहरण के लिए, http://mysite/

    उपयोगकर्ता के public_html फ़ोल्डर (userdir मॉड्यूल) में। उदाहरण के लिए, http://localhost/~username

इंस्टालेशन

अपाचे स्थापित करने के लिए, टर्मिनल में चलाएँ:

sudo apt-apache2 इंस्टॉल करें

समायोजन

सेटिंग्स में परिवर्तन लागू करने के लिए, आपको अपाचे डेमॉन को पुनरारंभ करना होगा: sudo service apache2 restart

उबंटू में, अंतिम कॉन्फ़िगरेशन फ़ाइल (apache2.conf) को विभिन्न उपनिर्देशिकाओं में स्थित कई फ़ाइलों में विभाजित किया गया है। अधिक विवरण फ़ाइल टिप्पणियों में लिखे गए हैं। Apache2.conf.

/etc/apache2/ |--apache2.conf | `- ports.conf |-- मॉड-सक्षम | |-- *.लोड | `-- *.conf |--conf-सक्षम | `-- *.conf `- साइट्स-सक्षम`-- *.conf

मॉड्यूल सेटिंग्स निर्देशिका में स्थित हैं /etc/apache2/mods-उपलब्ध. मॉड्यूल (मॉड्यूल सेटिंग्स) को सक्षम या अक्षम करने के लिए, उपयुक्त a2enmod या a2dismod कमांड का उपयोग करें। मॉड्यूल कनेक्शन का उदाहरण:

सुडो a2enmod< mod-name>

आपकी सेटिंग्स निर्देशिका में स्थित फ़ाइलों में सहेजी जानी चाहिए /etc/apache2/conf-उपलब्ध. अपनी सेटिंग्स को सक्षम या अक्षम करने के लिए, उपयुक्त a2enconf या a2disconf कमांड का उपयोग करें। किसी फ़ाइल को अपनी सेटिंग्स से कनेक्ट करने का एक उदाहरण:

सुडो a2enconf< config-name>

वर्चुअल होस्ट सेटिंग्स को निर्देशिका में स्थित फ़ाइलों में सहेजा जाना चाहिए /etc/apache2/साइट्स-उपलब्ध. वर्चुअल होस्ट को कनेक्ट करने के लिए, उपयुक्त a2ensite या a2dissite कमांड का उपयोग करें। वर्चुअल होस्ट को जोड़ने का उदाहरण:

sudo a2ensite< site-name>

डिफ़ॉल्ट एन्कोडिंग

डिफ़ॉल्ट एन्कोडिंग निर्दिष्ट करने के लिए, फ़ाइल में AddDefaultCharset निर्देश का उपयोग करें /etc/apache2/conf-available/charset.conf(या संबंधित पंक्ति को अनटिप्पणी करें):

AddDefaultCharset UTF-8

वर्चुअल होस्ट

वर्चुअल होस्ट कॉन्फ़िगरेशन फ़ाइलें संग्रहीत की जाती हैं /etc/apache2/sites-available/*.conf. डिफ़ॉल्ट रूप से, अपाचे में पहले से ही एक वर्चुअल होस्ट कॉन्फ़िगर किया गया है। इसकी सेटिंग्स फ़ाइल में हैं 000-default.conf. आप इस वर्चुअल होस्ट को एक उदाहरण के रूप में उपयोग कर सकते हैं।

वर्चुअल होस्ट स्थापित करने का उदाहरण:

#होस्ट नाम सर्वरनाम होस्ट1.सर्वर1 #होस्ट रूट फ़ोल्डर DocumentRoot /var/www/host1.server1 #.htaccessAllowOverride All का उपयोग करके सभी निर्देशों को अधिलेखित करने की अनुमति

कॉन्फ़िगरेशन फ़ाइल को अपने होस्ट नामhost1.server1.conf के साथ नाम दें और सहेजें।

सेटिंग फ़ाइल बनाने के बाद, अपना होस्ट नाम /etc/hosts में जोड़ें:

127.0.0.1 होस्ट1.सर्वर1

निर्मित वर्चुअल होस्ट को सक्षम करने के लिए, a2ensite उपयोगिता का उपयोग करें:

sudo a2ensitehost1.server1

होस्ट को a2dissite उपयोगिता की तरह ही डिस्कनेक्ट किया गया है:

sudo a2dissitehost1.server1

मॉड्यूल

mod_userdir

Mod_userdir मॉड्यूल आपको वेब पेजों को संग्रहीत करने के लिए उपयोगकर्ताओं की होम निर्देशिकाओं में स्थित निर्देशिकाओं का उपयोग करने की अनुमति देता है। डिफ़ॉल्ट रूप से, अपाचे निर्देशिका में अनुरोधित पृष्ठों की तलाश करता है ~/public_html

mkdir ~/ public_html

Mod_userdir चलाने को सक्षम करने के लिए:

sudo a2enmod userdir

और आवश्यक उपयोगकर्ता को www-डेटा समूह में जोड़ें:

sudo adduser $USER www-data

फिर अपाचे को पुनरारंभ करें:

पेज http://localhost/~username पर पहुंच योग्य होंगे, जहां उपयोक्तानाम ही उपयोक्तानाम है।

सीजीआई

यदि आप सर्वर पर सीजीआई स्क्रिप्ट चलाना चाहते हैं, तो सीजीआई मॉड्यूल को कमांड से कनेक्ट करें

sudo a2enmod cgi

डिफ़ॉल्ट रूप से, सीजीआई स्क्रिप्ट को निर्देशिका में रखा जाता है /usr/lib/cgi-bin, लेकिन आप इसे अपनी वर्चुअल होस्ट सेटिंग में निर्दिष्ट करके या फ़ाइल में सभी होस्ट के लिए विश्व स्तर पर कहीं भी रख सकते हैं /etc/apache2/conf-enabled/serve-cgi-bin.conf.

यदि आपका सर्वर किसी बाहरी नेटवर्क पर काम करता है, तो सुरक्षा कारणों से सीजीआई स्क्रिप्ट को वर्चुअल होस्ट की रूट डायरेक्टरी के बाहर रखने की दृढ़ता से अनुशंसा की जाती है।

Apache में HTTPS सेट करना

अपाचे वेब सर्वर पूरी तरह से HTTPS का समर्थन करता है। पहले से स्थापित अपाचे पर HTTPS समर्थन सक्षम करने के लिए, आपको निम्नलिखित कार्य करना होगा।

एक कुंजी और एसएसएल प्रमाणपत्र बनाना

स्व-हस्ताक्षरित प्रमाणपत्रों का उपयोग, हालांकि यह निष्क्रिय जासूसी से बचाता है, लेकिन ग्राहकों को यह गारंटी नहीं देता है कि सर्वर बिल्कुल वही सर्वर है जिसकी उन्हें आवश्यकता है। स्व-हस्ताक्षरित प्रमाणपत्रों का लाभ यह है कि वे मुफ़्त हैं। प्रमाणपत्र प्राधिकारी द्वारा हस्ताक्षरित प्रमाणपत्र में पैसे खर्च होते हैं।

कुंजी और प्रमाणपत्र बनाने के लिए, कमांड दर्ज करें:

ओपनएसएल अनुरोध -नया -x509 -दिन 30 -कीआउट सर्वर.की -आउट सर्वर.पीईएम

प्रश्न "पीईएम पास वाक्यांश दर्ज करें:" का हम पासवर्ड के साथ उत्तर देते हैं, पुष्टि करते हैं और याद रखते हैं।

हम बाद के सभी प्रश्नों का उत्तर बेतरतीब ढंग से देते हैं, आप प्रस्तावित विकल्पों से सहमत होकर एंटर पर क्लिक कर सकते हैं, केवल उस साइट के नाम के साथ प्रश्न का उत्तर दें "सामान्य नाम (उदाहरण के लिए, आपका नाम):" जिसके लिए हम प्रमाणपत्र बना रहे हैं। उदाहरण www.example.com.

सभी प्रश्नों के उत्तर देने के बाद, निर्देशिका में दो नई फ़ाइलें दिखाई देनी चाहिए - सर्वर.पेम (कुंजी) और सर्वर.सीआरटी (प्रमाणपत्र)।

जेनरेट की गई कुंजी का उपयोग करने के लिए, हमें अपने द्वारा दर्ज किया गया पासवर्ड जानना होगा, और लोड करते समय अपाचे हमसे इसके लिए पूछेगा, लेकिन हमें डेमॉन से अनावश्यक प्रश्नों की आवश्यकता क्यों है? :) इसलिए, हम कुंजी से पासवर्ड हटा देते हैं:

सीपी सर्वर.की( ,.ओरिग) ओपनएसएल आरएसए -इन सर्वर.की.ओरिग -आउट सर्वर.की आरएम सर्वर.की.ओरिग

आइए उन्हें /etc/ssl पर कॉपी करें और कुंजी फ़ाइल को पढ़ने का अधिकार केवल व्यवस्थापक को सौंपें:

सुडो सीपी सर्वर.पीईएम / आदि/ एसएसएल/ सीईआरटी/ सुडो सीपी सर्वर.की / आदि/ एसएसएल/ निजी/ सुडो चामोद 0600 / आदि/ एसएसएल/ निजी/ सर्वर.कुंजी

अपाचे सेटअप

सबसे पहले आपको mod_ssl सक्रिय करना होगा:

sudo a2enmod ssl

और फिर साइट की डिफ़ॉल्ट HTTPS सेटिंग्स सक्षम करें:

sudo a2ensite default-ssl

अब आपको फ़ाइल को डिफ़ॉल्ट HTTPS साइट सेटिंग्स के साथ संपादित करने की आवश्यकता है, जिसमें आपके प्रमाणपत्रों के पथ का संकेत दिया गया है। फ़ाइल को स्वयं /etc/apache2/sites-enabled/default-ssl (या /etc/apache2/sites-enabled/default-ssl.conf) कहा जाता है।

एसएसएलइंजन चालू

पंक्ति जोड़ें

SSLप्रोटोकॉल सभी -SSLv2

लीगेसी SSLv2 प्रोटोकॉल के उपयोग को अक्षम करने के लिए।

# सर्वर सार्वजनिक प्रमाणपत्र SSLCertificateFile /etc/ssl/certs/server.pem # सर्वर निजी कुंजी SSLCertificateKeyFile /etc/ssl/private/server.key

अब बस अपाचे को पुनरारंभ करें:

sudo सेवा apache2 पुनरारंभ करें

और यदि सभी पैरामीटर सही ढंग से निर्दिष्ट हैं, तो आपकी साइटें HTTPS के माध्यम से पहुंच योग्य हो जाएंगी।

HTTPS प्रोटोकॉल पोर्ट 443 पर काम करता है, इसलिए यदि सर्वर गेटवे के पीछे स्थित है, तो आपको इस पोर्ट को उस पर अग्रेषित करने की आवश्यकता है।

HTTP अनुरोधों को HTTPS पर पुनर्निर्देशित करना

यदि आप HTTP के उपयोग को अक्षम करना चाहते हैं, तो सबसे समझदारी वाली बात यह है कि सभी HTTP अनुरोधों को पृष्ठों पर उनके HTTPS पते पर रीडायरेक्ट कर दिया जाए। आइए इसे mod_alias का उपयोग करके करें। यदि यह सक्षम नहीं है, तो इसे सक्षम करें:

sudo a2enmod उपनाम sudo service apache2 restart

फिर हम /etc/apache2/sites-enabled/000-default फ़ाइल को बदलते हैं, जो HTTP अनुरोधों के लिए डिफ़ॉल्ट वर्चुअल होस्ट के लिए ज़िम्मेदार है। इस फ़ाइल में एक निर्देश जोड़ें

रीडायरेक्ट / https://example.com/

इस स्थिति में, सभी निर्देशिका सेटिंग्स हटाई जा सकती हैं, क्योंकि आपकी साइटें अभी भी HTTP के माध्यम से पहुंच योग्य नहीं होंगी।

बस, अब अपाचे को फिर से पुनरारंभ करें और सुनिश्चित करें कि जब आप HTTP के माध्यम से एक्सेस करते हैं तो आप स्वचालित रूप से HTTPS पेज पर रीडायरेक्ट हो जाते हैं।

अपाचे सबसे लोकप्रिय मुफ़्त वेब सर्वर है। 2016 तक, इसका उपयोग सभी इंटरनेट साइटों में से 33% पर किया जाता है, जो लगभग 304 बिलियन साइटें हैं। इस वेब सर्वर को 1995 में लोकप्रिय एनसीएसए सर्वर के प्रतिस्थापन के रूप में विकसित किया गया था और इसकी कई समस्याओं को ठीक किया गया था। अफवाह यह है कि उनका नाम एक गड़बड़ी से आया है, क्योंकि वह एनसीएसए त्रुटियों को ठीक कर रहे थे। अब, यह एक क्रॉस-प्लेटफ़ॉर्म प्रोग्राम है जो विंडोज़, लिनक्स और मैकओएस का समर्थन करता है और पर्याप्त लचीलापन, अनुकूलन और कार्यक्षमता प्रदान करता है। प्रोग्राम में एक मॉड्यूलर संरचना है, जो आपको मॉड्यूल का उपयोग करके इसकी कार्यक्षमता को लगभग अनिश्चित काल तक विस्तारित करने की अनुमति देती है।

आप कुछ कमांड का उपयोग करके लिनक्स पर अपाचे इंस्टॉल कर सकते हैं, लेकिन प्रोग्राम बहुत बड़ी संख्या में सेटिंग्स प्रदान करता है जिन्हें बदला जा सकता है, साथ ही मॉड्यूल भी, जो सक्षम होने पर बेहतर काम करेंगे। यह आलेख अपाचे को स्थापित करने और कॉन्फ़िगर करने पर चर्चा करेगा, हम उबंटू को मुख्य प्रणाली के रूप में उपयोग करेंगे, लेकिन आप इन चरणों को किसी अन्य वितरण में दोहरा सकते हैं। हम न केवल प्रोग्राम को स्थापित करने पर विचार करेंगे, बल्कि इसे कैसे कॉन्फ़िगर करें, अपाचे वर्चुअल होस्ट की स्थापना, साथ ही सबसे उपयोगी मॉड्यूल पर भी गौर करेंगे।

पर इस पल, सबसे एक नया संस्करणप्रोग्राम 2.4; इसलिए, अपाचे 2.4 की स्थापना पर विचार किया जाएगा। जैसा कि मैंने पहले ही कहा, में लिनक्स प्रोग्रामवस्तुतः कुछ आदेशों में स्थापित होता है। उबंटू पर इंस्टॉल करने के लिए, पहले सिस्टम को नवीनतम संस्करण में अपडेट करें:

सुडो उपयुक्त अद्यतन
$ सुडो उपयुक्त उन्नयन

फिर Apache2 इंस्टॉल करें:

sudo apt install apache2

अन्य वितरणों में, प्रोग्राम पैकेज को या तो यह या httpd कहा जाता है और इसे स्थापित करने से आपको कोई कठिनाई नहीं होगी।

इंस्टॉलेशन पूरा होने के बाद, आपको वेब सर्वर को स्टार्टअप में जोड़ना होगा ताकि कंप्यूटर चालू करने के बाद इसे मैन्युअल रूप से शुरू न करना पड़े:

sudo systemctl apache2 सक्षम करें

अपाचे सेटअप

वे दिन गए जब अपाचे कॉन्फ़िगरेशन को एक फ़ाइल में संग्रहीत किया गया था। लेकिन यह सही है: जब सब कुछ अपनी निर्देशिकाओं में वितरित किया जाता है, तो कॉन्फ़िगरेशन फ़ाइलों को नेविगेट करना आसान हो जाता है।

सभी सेटिंग्स /etc/apache/ फ़ोल्डर में समाहित हैं:

  • फ़ाइल /etc/apache2/apache2.confबुनियादी सेटिंग्स के लिए जिम्मेदार
  • /etc/apache2/conf-उपलब्ध/* - अतिरिक्त सेटिंग्सवेब सर्वर
  • /etc/apache2/mods-उपलब्ध/*- मॉड्यूल सेटिंग्स
  • /etc/apache2/साइट्स-उपलब्ध/*- वर्चुअल होस्ट सेटिंग्स
  • /etc/apache2/ports.conf- पोर्ट जिन पर अपाचे चलता है
  • /etc/apache2/envvars

जैसा कि आपने देखा, conf, mods और site के लिए दो फ़ोल्डर हैं। ये उपलब्ध और सक्षम हैं. जब आप किसी मॉड्यूल या होस्ट को सक्षम करते हैं, तो उपलब्ध फ़ोल्डर से सक्षम फ़ोल्डर में एक प्रतीकात्मक लिंक बनाया जाता है। इसलिए, उपलब्ध फ़ोल्डरों में सेटिंग्स करना बेहतर है। आम तौर पर कहें तो, आप इन फ़ोल्डरों के बिना काम कर सकते हैं, सब कुछ ले सकते हैं और सब कुछ पुराने तरीके से एक फ़ाइल में डंप कर सकते हैं, और सब कुछ काम करेगा, लेकिन अब कोई भी ऐसा नहीं करता है।

सबसे पहले आइए मुख्य कॉन्फ़िगरेशन फ़ाइल देखें:

vi /eta/apache2/apache2.conf

समय समाप्त- इंगित करता है कि सर्वर कितनी देर तक डेटा के बाधित ट्रांसमिशन या रिसेप्शन को जारी रखने का प्रयास करेगा। 160 सेकंड काफी होंगे.

जीवित रहो- बहुत उपयोगी पैरामीटर, आपको एक कनेक्शन में कई फ़ाइलें स्थानांतरित करने की अनुमति देता है, उदाहरण के लिए, न केवल एचटीएमएल पेज, लेकिन छवियाँ और सीएसएस फ़ाइलें भी।

MaxKeepAliveRequests 100- प्रति कनेक्शन अनुरोधों की अधिकतम संख्या, जितनी अधिक, उतना बेहतर।

KeepAliveTimeout 5- कनेक्शन टाइमआउट, आमतौर पर 5-10 सेकंड एक पृष्ठ को लोड करने के लिए पर्याप्त होते हैं, इसलिए आपको और अधिक सेट करने की आवश्यकता नहीं है, लेकिन सभी डेटा लोड होने से पहले आपको कनेक्शन तोड़ने की भी आवश्यकता नहीं है।

यूजर ग्रुप- उपयोगकर्ता और समूह जिसकी ओर से प्रोग्राम चलेगा।

होस्टनामलुकअप- आईपी पते के बजाय लॉग में लिखें कार्यक्षेत्र नाम, काम में तेजी लाने के लिए इसे निष्क्रिय करना बेहतर है।

छांटने का स्तर- त्रुटि लॉगिंग का स्तर. डिफ़ॉल्ट रूप से, चेतावनी का उपयोग किया जाता है, लेकिन लॉग को अधिक धीरे-धीरे भरने के लिए, बस त्रुटि सक्षम करें

शामिल करना- ऊपर चर्चा की गई कॉन्फ़िगरेशन फ़ाइलों को जोड़ने के लिए सभी शामिल निर्देश जिम्मेदार हैं।

निर्देशिका निर्देश किसी विशेष निर्देशिका तक पहुंच अधिकार स्थापित करने के लिए जिम्मेदार हैं फाइल सिस्टम. यहाँ वाक्यविन्यास है:


पैरामीटर मान

निम्नलिखित बुनियादी विकल्प यहां उपलब्ध हैं:

अवहेलना की अनुमति दें- इंगित करता है कि क्या .htaccess फ़ाइलें इस निर्देशिका से पढ़ी जानी चाहिए; ये समान सेटिंग्स फ़ाइलें हैं और समान सिंटैक्स हैं। सभी - हर चीज़ की अनुमति दें, कोई नहीं - इन फ़ाइलों को न पढ़ें।

दस्तावेज़रूट- सेट करता है कि उपयोगकर्ता को प्रदर्शित करने के लिए किस फ़ोल्डर से दस्तावेज़ लिए जाने चाहिए

विकल्प- इंगित करता है कि इस फ़ोल्डर में कौन सी वेब सर्वर सुविधाओं की अनुमति दी जानी चाहिए। उदाहरण के लिए, ऑल - सब कुछ की अनुमति दें, फॉलोसिमलिंक्स - प्रतीकात्मक लिंक का पालन करें, इंडेक्स - यदि कोई इंडेक्स फ़ाइल नहीं है तो निर्देशिका की सामग्री प्रदर्शित करें।

ज़रूरत होना- सेट करता है कि किन उपयोगकर्ताओं के पास इस निर्देशिका तक पहुंच है। सभी को अस्वीकार करने की आवश्यकता है - सभी को अस्वीकार करने की आवश्यकता है, सभी को अनुमति देने की आवश्यकता है - सभी को अनुमति देने की। आप उपयोगकर्ता को स्पष्ट रूप से निर्दिष्ट करने के लिए सभी के बजाय उपयोगकर्ता या समूह निर्देश का उपयोग कर सकते हैं।

आदेश- आपको निर्देशिका तक पहुंच को नियंत्रित करने की अनुमति देता है। दो मान स्वीकार करता है: अनुमति दें, अस्वीकार करें - निर्दिष्ट लोगों को छोड़कर सभी के लिए अनुमति दें या अस्वीकार करें, अनुमति दें - निर्दिष्ट लोगों को छोड़कर सभी के लिए अस्वीकार करें..ru।

इन सभी निर्देशों का उपयोग यहां नहीं किया गया है, क्योंकि हम डिफ़ॉल्ट मानों से खुश हैं, लेकिन .htaccess फ़ाइलों में वे बहुत उपयोगी हो सकते हैं।

हमारे पास /etc/apache2/ports.conf फ़ाइल बची है:

इसमें केवल एक निर्देश है, सुनो, जो प्रोग्राम को बताता है कि उसे किस पोर्ट पर काम करना चाहिए।

अंतिम फ़ाइल /etc/apache2/envvars है, आप इसका उपयोग करने की संभावना नहीं रखते हैं, इसमें वेरिएबल शामिल हैं जिनका उपयोग अन्य कॉन्फ़िगरेशन फ़ाइलों में किया जा सकता है।

htaccess के माध्यम से अपाचे सर्वर स्थापित करना

.htaccess फ़ाइलें आपको अपने उबंटू वेब सर्वर को एक विशिष्ट निर्देशिका में व्यवहार करने के लिए कॉन्फ़िगर करने की अनुमति देती हैं। इस फ़ाइल में निर्दिष्ट सभी निर्देश ऐसे निष्पादित किए जाते हैं जैसे कि वे किसी टैग में लपेटे गए हों यदि वे मुख्य फ़ाइल में थे.

यह ध्यान रखना महत्वपूर्ण है कि सर्वर को .htaccess से निर्देश पढ़ने के लिए, मुख्य या वर्चुअल होस्ट फ़ाइल में इस फ़ोल्डर की सेटिंग्स शामिल नहीं होनी चाहिए अनुमति देंओवरराइड कोई नहींआपके लिए आवश्यक सभी सेटिंग्स को कार्यान्वित करने के लिए सभी को अनुमति देंओवरराइड करें.

अन्यथा, अपाचे सर्वर का कोई भी कॉन्फ़िगरेशन यहां किया जा सकता है, मॉड्यूल को सक्षम करने से लेकर केवल फ़ोल्डर एक्सेस को बदलने तक। चूँकि हमने पहले ही सभी मापदंडों पर विचार कर लिया है, आइए बस कुछ उदाहरण दें:

आदेश अस्वीकार करें, अनुमति दें
सब से इनकार

कॉन्फ़िगरेशन फ़ोल्डरों के लिए आवेदन करना महत्वपूर्ण है, इस फ़ोल्डर तक सभी को पहुंच से वंचित करता है। अक्सर, .htaccess का उपयोग mod_rewrite मॉड्यूल के साथ काम करने के लिए किया जाता है, जो आपको तुरंत अनुरोधों को बदलने की अनुमति देता है:

रीराइटइंजन चालू
पुनर्लेखन नियम ^उत्पाद/([^/\.]+)/?$ product.php?id=$1 [एल]

लेकिन यह एक बहुत व्यापक विषय है और इस लेख के दायरे से बाहर है।

अपाचे मॉड्यूल को कॉन्फ़िगर करना

जैसा कि मैंने पहले ही कहा, अपाचे एक मॉड्यूलर प्रोग्राम है, इसकी कार्यक्षमता को मॉड्यूल का उपयोग करके बढ़ाया जा सकता है। सभी उपलब्ध लोडर मॉड्यूल और कॉन्फ़िगरेशन फ़ाइलेंमॉड्यूल /etc/apache/mods-उपलब्ध फ़ोल्डर में स्थित हैं। और /etc/apache/mods-enable में सक्रिय किया गया।

लेकिन आपको इन फ़ोल्डरों की सामग्री का विश्लेषण करने की ज़रूरत नहीं है। अपाचे 2.4 को मॉड्यूल जोड़कर कॉन्फ़िगर करना विशेष कमांड का उपयोग करके किया जाता है। आप कमांड के साथ सभी चल रहे मॉड्यूल देख सकते हैं:

आप कमांड के साथ मॉड्यूल को सक्षम कर सकते हैं:

sudo a2enmod मॉड्यूल_नाम

और अक्षम करें:

sudo a2dismod मॉड्यूल_नाम

मॉड्यूल को सक्षम या अक्षम करने के बाद, आपको अपाचे को पुनरारंभ करना होगा:

sudo systemctl पुनरारंभ apache2

जब इनमें से किसी एक कमांड को निष्पादित किया जाता है, तो मॉड-उपलब्ध निर्देशिका में एक्सटेंशन लोड के साथ मॉड्यूल फ़ाइल का एक प्रतीकात्मक लिंक बनाया या हटा दिया जाता है। आप इस फ़ाइल की सामग्री को देख सकते हैं, केवल एक पंक्ति है। उदाहरण के लिए:

vi /etc/apache2/mods-available/deflate.load

इसका मतलब यह है कि इस लाइन को apache2.conf फ़ाइल में जोड़कर मॉड्यूल को सक्रिय किया जा सकता है। लेकिन भ्रम से बचने के लिए बस यही करने की प्रथा है।

मॉड्यूल सेटिंग्स एक ही फ़ोल्डर में स्थित हैं, केवल लोड के बजाय .conf एक्सटेंशन वाली फ़ाइल में। उदाहरण के लिए, आइए डिफ्लेट संपीड़न के लिए समान मॉड्यूल की सेटिंग्स देखें:

vi /etc/apache2/mods-available/deflate.conf

कॉन्फ-उपलब्ध फ़ोल्डर में फ़ाइलें समान मॉड्यूल हैं, केवल वे अपाचे से अलग से स्थापित हैं, ये PHP मॉड्यूल या किसी अन्य प्रोग्रामिंग भाषा को सक्षम करने के लिए कॉन्फ़िगरेशन फ़ाइलें हो सकती हैं। यहां सब कुछ बिल्कुल वैसा ही काम करता है, केवल इन मॉड्यूल को सक्षम और अक्षम करने के आदेश थोड़े अलग हैं:

a2enconf मॉड्यूल_नाम

a2disconf मॉड्यूल नाम

जैसा कि आपने देखा, मॉड्यूल सक्षम करना बहुत सरल है। आइए कुछ आवश्यक लेकिन डिफ़ॉल्ट रूप से सक्षम नहीं किए गए मॉड्यूल को सक्षम करें:

sudo a2enmod समाप्त हो रहा है
$ sudo a2enmod हेडर
$ sudo a2enmod पुनः लिखना
$ sudo a2enmod ssl

एक्सपायर और हेडर मॉड्यूल सर्वर पर लोड को कम करते हैं। यदि अंतिम अनुरोध के बाद से दस्तावेज़ में कोई बदलाव नहीं हुआ है तो वे एक संशोधित हेडर नहीं लौटाते हैं। एक्सपायरीज़ मॉड्यूल आपको वह समय निर्धारित करने की अनुमति देता है जिसके लिए ब्राउज़र को प्राप्त दस्तावेज़ को कैश करना चाहिए। रीराइट आपको तुरंत अनुरोधित पतों को बदलने की अनुमति देता है, सीएनसी लिंक आदि बनाते समय बहुत उपयोगी है। और आखिरी एसएसएल एन्क्रिप्शन के लिए समर्थन सक्षम करने के लिए है। सेटिंग्स पूरी करने के बाद Apache2 को पुनरारंभ करना न भूलें।

अपाचे वर्चुअल होस्ट को कॉन्फ़िगर करना

यह पूरी तरह सुविधाजनक नहीं होगा यदि एक भौतिक मशीन पर केवल एक ही वेबसाइट होस्ट की जा सके। अपाचे एक ही कंप्यूटर पर सैकड़ों साइटों का समर्थन कर सकता है और प्रत्येक के लिए सही सामग्री प्रदान कर सकता है। इसके लिए वर्चुअल होस्ट का उपयोग किया जाता है। सर्वर यह निर्धारित करता है कि अनुरोध किस डोमेन पर आ रहा है और इस डोमेन के फ़ोल्डर से आवश्यक सामग्री परोसता है।

अपाचे होस्ट सेटिंग्स /etc/apache2/hosts-available/ फ़ोल्डर में स्थित हैं। एक नया होस्ट बनाने के लिए, बस किसी भी नाम से एक फ़ाइल बनाएं (होस्ट नाम के साथ समाप्त करना बेहतर है) और इसे आवश्यक डेटा से भरें। आपको इन सभी मापदंडों को एक निर्देश में लपेटना होगा वर्चुअलहोस्ट।यहां चर्चा किए गए मापदंडों के अलावा, निम्नलिखित का उपयोग किया जाएगा:

  • सर्वर का नाम- प्राथमिक डोमेन नाम
  • सर्वर उपनाम- अतिरिक्त नाम जिसके द्वारा साइट तक पहुंचा जा सकेगा
  • सर्वर एडमिन- व्यवस्थापक ईमेल
  • दस्तावेज़रूट- इस डोमेन के लिए दस्तावेज़ों वाला फ़ोल्डर

उदाहरण के लिए:

vi /etc/apache2/sites-available/test.site.conf

एक वेब सर्वर बहुत जटिल होता है सॉफ़्टवेयर, जो पर काम करता है विभिन्न प्लेटफार्मऔर विभिन्न ऑपरेटिंग सिस्टम पर। के लिए सही संचालनवी स्थापित प्रणालीइसे कॉन्फ़िगर करने की आवश्यकता है.

डिफ़ॉल्ट रूप से, अपाचे सेटिंग्स फ़ाइल में स्थित हैं " httpd.conf"कैटलॉग में" सम्मेलन".

आपको अपाचे और PHP कॉन्फ़िगरेशन फ़ाइलों में फ़ाइलों के पथ पर विशेष ध्यान देना चाहिए। आपको अक्सर विभिन्न निर्देशिकाओं और फ़ाइलों के लिए पथ निर्दिष्ट करना होगा। UNIX और Windows ऑपरेटिंग सिस्टम विभिन्न निर्देशिका विभाजकों का उपयोग करते हैं। UNIX फॉरवर्ड स्लैश (/) का उपयोग करता है और विंडोज़ बैकस्लैश (\) का उपयोग करता है। कुछ अपाचे और PHP निर्देश दोनों प्रकार के निर्देशिका विभाजकों के साथ काम करते हैं। लेकिन चूँकि Apache और PHP मूल रूप से UNIX के लिए विकसित किए गए थे, आप उनके "मूल" प्रारूप का उपयोग करके कई समस्याओं से बच सकते हैं। इसलिए, कॉन्फ़िगरेशन फ़ाइलों में पथ " httpd.conf" और " php.ini" UNIX प्रारूप में एक स्लैश के माध्यम से लिखने की अनुशंसा की जाती है - "/"।

जैसे:
ScriptAlias ​​​​"/php_dir/" "c:/php/" फ़ाइल निर्देश httpd.conf:

पत्तन- सेट टीसीपी पोर्ट, जिसका उपयोग अपाचे द्वारा कनेक्शन स्थापित करने के लिए किया जाता है। डिफ़ॉल्ट रूप से, पोर्ट 80 निर्दिष्ट है। पोर्ट को निर्देश में भी निर्दिष्ट किया जा सकता है सर्वर का नाम.
पोर्ट 80 गैर-मानक पोर्ट सेट करने का एकमात्र कारण यह है कि आपके पास मानक पोर्ट का उपयोग करने की अनुमति नहीं है। 8080 जैसे गैर-मानक पोर्ट का उपयोग करते समय, पोर्ट नंबर पते में निर्दिष्ट किया जाना चाहिए " http://localhost:8080/".

सर्वर एडमिन- निर्दिष्ट पता शामिल है ईमेलवेब सर्वर प्रशासक. यह वह पता है जो सर्वर त्रुटियों के मामले में प्रदर्शित किया जाएगा।
सर्वर एडमिन [ईमेल सुरक्षित] सर्वर का नाम- सर्वर के लिए निर्दिष्ट कंप्यूटर नाम शामिल है।
सर्वरनाम लोकलहोस्ट:80 सर्वररूट- अपाचे वेब सर्वर फ़ाइलों वाली निर्देशिका को इंगित करता है।
सर्वररूट "सी:/वेब_सर्वर/अपाचे" दस्तावेज़रूट- उस निर्देशिका को परिभाषित करता है जिसमें वेब साइट फ़ाइलें स्थित हैं।
डॉक्यूमेंटरूट "सी:/वेब_सर्वर/अपाचे/एचटीडॉक्स" पात्र

इस कंटेनर के भीतर निर्देशों का दायरा निर्देश में निर्दिष्ट निर्देशिका के भीतर सभी फ़ाइलों और उपनिर्देशिकाओं तक फैला हुआ है दस्तावेज़रूट.

विकल्प फ़ॉलोसिमलिंक्स में इंडेक्स शामिल हैं
सभी को अनुमति देंओवरराइड करें
आदेश अवहेलना की अनुमति देंमान पर सेट करें सभी, आपको मुख्य कॉन्फ़िगरेशन फ़ाइल के मान को ओवरराइड करने की अनुमति देता है " httpd.conf"फ़ाइलों में" .htaccess".

आदेश विकल्प फ़ॉलोसिमलिंक्सअपाचे को प्रतीकात्मक लिंक का अनुसरण करने की अनुमति देता है।

आदेश विकल्प शामिल हैंवेब साइट पृष्ठों के कोड में एसएसआई (सर्वर साइड शामिल) निर्देशों के निष्पादन की अनुमति देता है।

आदेश विकल्प अनुक्रमणिकानिर्दिष्ट करता है कि यदि इंडेक्स फ़ाइल गुम है तो निर्देशिका की सामग्री वापस कर दी जानी चाहिए।

निर्देशिका सूचकांक- इसमें इंडेक्स फ़ाइलों की एक निर्दिष्ट सूची होती है जिसे फ़ाइल नाम निर्दिष्ट किए बिना निर्देशिका तक पहुंचने पर प्रदर्शित किया जाना चाहिए।
डायरेक्ट्रीइंडेक्स इंडेक्स.एचटीएमएल इंडेक्स.एचटीएम इंडेक्स.पीएचपी निर्देश स्क्रिप्ट उपनाम​निर्देशिका के लिए उपनाम बनाने के लिए उपयोग किया जाता है " /सीजीआई-बिन/", जिसमें सीजीआई प्रोग्राम और स्क्रिप्ट हैं।
ScriptAlias ​​​​/cgi-bin/ "C:/web_server/apache/cgi-bin/" इसके बाद आपको निर्देशिका पर अधिकारों और प्रतिबंधों को कॉन्फ़िगर करने की आवश्यकता है सीजीआई-बिन.

अनुमति देंओवरराइड कोई नहीं
विकल्पExecCGI
आज्ञा दें, अस्वीकार करें
सभी से अनुमति लें
यह कार्रवाई यह सुनिश्चित करने के लिए आवश्यक है कि निर्देशिका विकल्प बदले न जाएं, क्योंकि इससे सुरक्षा समस्याएं पैदा हो सकती हैं।

आदेश अनुमति देंओवरराइड कोई नहींकहता है कि इस निर्देशिका के विकल्पों को फ़ाइलों द्वारा ओवरराइड नहीं किया जा सकता है " .htaccess".

आदेश विकल्पExecCGIसीजीआई स्क्रिप्ट के निष्पादन की अनुमति देता है।

निर्देशों आदेश की अनुमति, अस्वीकार करनाऔर सभी से अनुमति लेंनिर्देशिका तक पहुंच की अनुमति दें.

हैंडलर जोड़ें- अपाचे को एक्सटेंशन वाली फ़ाइलों पर विचार करने के लिए बाध्य करता है " प्रोग्राम फ़ाइल" और " बल्ला", सीजीआई स्क्रिप्ट की तरह।
AddHandler सीजीआई-स्क्रिप्ट .bat .exe डिफ़ॉल्ट प्रकारउन फ़ाइलों का हेडर सेट करता है जिनका प्रकार एक्सटेंशन द्वारा निर्धारित नहीं किया जा सकता है। इस मामले में, सभी अज्ञात फ़ाइलों को नियमित टेक्स्ट फ़ाइलों के रूप में माना जाता है। सभी अज्ञात फ़ाइल एक्सटेंशन को HTML के रूप में संसाधित करने के लिए, निर्देश को निम्नानुसार बदलें:
डिफ़ॉल्ट प्रकार टेक्स्ट/एचटीएमएल AddDefaultCharset- यदि HTML दस्तावेज़ के शीर्ष में एन्कोडिंग निर्दिष्ट नहीं है तो डिफ़ॉल्ट एन्कोडिंग सेट करता है।
AddDefaultCharset विंडोज़-1251

अपाचे HTTP सर्वर एक जटिल सॉफ्टवेयर उत्पाद है जो दुनिया भर के विभिन्न प्लेटफार्मों और ऑपरेटिंग सिस्टम पर चलता है। इसलिए, स्थापित सिस्टम पर सही ढंग से काम करने के लिए, इसे कॉन्फ़िगर किया जाना चाहिए।
डिफ़ॉल्ट रूप से, Apache सेटिंग्स conf निर्देशिका में httpd.conf फ़ाइल में स्थित होती हैं। निम्नलिखित httpd.conf फ़ाइल के मुख्य निर्देशों और उनके आमतौर पर उपयोग किए जाने वाले अर्थों का वर्णन करेगा।

httpd.conf फ़ाइल का संपादन

1. mod_rewrite मॉड्यूल को लोड करने के लिए, इस पंक्ति को ढूंढें और टिप्पणी हटाएं (पंक्ति की शुरुआत में "#" प्रतीक हटाएं):
LoadModule rewrite_module मॉड्यूल/mod_rewrite.so
2. PHP दुभाषिया को लोड करने के लिए, आपको मॉड्यूल लोडिंग ब्लॉक के अंत में निम्नलिखित पंक्ति जोड़नी होगी:
लोडमॉड्यूल php5_module "C:/php/php5apache2_2.dll"
3. कॉन्फ़िगरेशन वाली निर्देशिका को परिभाषित करें पीएचपी फ़ाइलनीचे निम्नलिखित पंक्ति जोड़कर:
PHPIniDir "C:/php"
4. पंक्ति ढूंढें और टिप्पणी हटाएँ:
सर्वरनाम लोकलहोस्ट:80
5. पंक्ति खोजें:
डॉक्यूमेंटरूट "सी:/प्रोग्राम फाइल्स/अपाचे सॉफ्टवेयर फाउंडेशन/अपाचे2.2/htdocs"
साइट प्रबंधन के लिए रूट निर्देशिका निर्दिष्ट करें (आपने इसे कुछ समय पहले ही बनाया है):
दस्तावेज़रूट "सी:/अपाचे"
6. यह ब्लॉक ढूंढें:

विकल्प फ़ॉलोसिमलिंक्स
अनुमति देंओवरराइड कोई नहीं
आदेश अस्वीकार करें, अनुमति दें
सब से इनकार

और इसे निम्नलिखित से बदलें:

विकल्पों में इंडेक्स फॉलोसिमलिंक्स शामिल हैं
सभी को अनुमति देंओवरराइड करें
सभी से अनुमति लें

7. मूल निर्देशिका नियंत्रण ब्लॉक को हटाएं या टिप्पणी करें (हमें इसकी आवश्यकता नहीं होगी), जो टिप्पणियों के बिना कुछ इस तरह दिखता है:

विकल्प अनुक्रमणिका फ़ॉलोसिमलिंक्स
अनुमति देंओवरराइड कोई नहीं
आदेश अनुमति दें, अस्वीकार करें
सभी से अनुमति लें

8. ब्लॉक ढूंढें:

डायरेक्ट्रीइंडेक्स Index.html

इसे इसके साथ बदलें:

डायरेक्ट्रीइंडेक्स इंडेक्स.एचटीएमएल इंडेक्स.एचटीएम इंडेक्स.एसएचटीएमएल इंडेक्स.php

9. पंक्ति खोजें:
त्रुटिलॉग "लॉग/त्रुटि.लॉग"
निम्नलिखित से बदलें (इस मामले में वैश्विक सर्वर त्रुटि फ़ाइल देखना अधिक सुविधाजनक होगा):
त्रुटिलॉग "C:/apache/error.log"
10. पंक्ति खोजें:
कस्टमलॉग "लॉग/एक्सेस.लॉग" सामान्य
में बदलो:
कस्टमलॉग "C:/apache/access.log" सामान्य
11. एसएसआई ऑपरेशन के लिए (सर्वर साइड सक्षमता) निम्नलिखित पंक्तियाँ, ब्लॉक में स्थित है , आपको ढूंढने और टिप्पणी हटाने की आवश्यकता है:
ऐडटाइप टेक्स्ट/एचटीएमएल .shtml
AddOutputFilter में .shtml शामिल है
12. नीचे जोड़ें, उसी ब्लॉक में , दो पंक्तियाँ:
AddType एप्लिकेशन/x-httpd-php .php
AddType एप्लिकेशन/x-httpd-php-source .phps
13. अंत में, पंक्तियाँ ढूंढें और उन पर टिप्पणी हटाएँ:
conf/extra/httpd-autoindex.conf शामिल करें
conf/extra/httpd-vhosts.conf शामिल करें
conf/extra/httpd-manual.conf शामिल करें
conf/extra/httpd-default.conf शामिल करें
परिवर्तन सहेजें और "httpd.conf" फ़ाइल बंद करें

अब "conf\extra" निर्देशिका में स्थित फ़ाइल "httpd-vhosts.conf" खोलें और इसमें निम्नलिखित परिवर्तन करें:

मौजूदा वर्चुअल होस्ट उदाहरण ब्लॉक पर टिप्पणी की जानी चाहिए या हटा दी जानी चाहिए और निम्नलिखित सम्मिलित किया जाना चाहिए:

डॉक्यूमेंटरूट "सी:/अपाचे/लोकलहोस्ट/www"
सर्वरनाम लोकलहोस्ट
ErrorLog "C:/apache/localhost/error.log"
कस्टमलॉग "C:/apache/localhost/access.log" सामान्य

वर्चुअल होस्ट बनाने का उदाहरण

यदि आपको अपना स्वयं का वर्चुअल होस्ट स्थापित करने की आवश्यकता है, तो निम्न कार्य करें:

फ़ाइल "httpd-vhosts.conf" खोलें और इसमें लगभग निम्नलिखित सामग्री के साथ एक ब्लॉक बनाएं:

# वह फ़ोल्डर जहां आपके होस्ट का रूट होगा.
डॉक्यूमेंटरूट "C:/apache/test.ru/www"
# वह डोमेन जिसके द्वारा आप वर्चुअल होस्ट तक पहुंच सकते हैं।
सर्वरनाम test.ru
# डोमेन का उपनाम (अतिरिक्त नाम)।
सर्वरअलियास www.test.ru
# वह फ़ाइल जहां त्रुटियां लिखी जाएंगी.
त्रुटिलॉग "C:/apache/test.ru/error.log"
# होस्ट एक्सेस लॉग फ़ाइल.
कस्टमलॉग "C:/apache/test.ru/access.log" सामान्य

फिर "अपाचे" निर्देशिका में, एक फ़ोल्डर "test.ru" बनाएं (ठीक उसी तरह, एक बिंदु के साथ), जिसमें, बदले में, एक फ़ोल्डर "www" बनाएं।

वर्चुअल होस्ट बनाने में अगला चरण फ़ाइल C:\WINDOWS\system32\drivers\etc\hosts को बदलना है ऑपरेटिंग सिस्टम. खुला यह फ़ाइलऔर इसमें दो पंक्तियाँ जोड़ें:
127.0.0.1 test.ru
127.0.0.1 www.test.ru

अब अपाचे सर्वर को "स्टार्ट" मेनू में स्थित "रीस्टार्ट" शॉर्टकट के साथ पुनः आरंभ करें, ब्राउज़र खोलें, एड्रेस बार में test.ru या www.test.ru दर्ज करें और आप खुद को अपने वर्चुअल होस्ट में पाएंगे। बस सावधान रहें, अब आप वर्चुअल होस्ट के नाम के साथ मूल साइट पर पहुंच सकते हैं (www.test.ru यदि यह मौजूद है) केवल ऊपर टिप्पणी करके या पंक्ति को हटाकर: 127.0.0.1 www.test.ru, -उल्लेखित "होस्ट" फ़ाइल।

अपाचे दस्तावेज़, सर्वर चालू होने के साथ, http://localhost/manual/ पर उपलब्ध है

अपाचे वेब सर्वर की स्थापना और कॉन्फ़िगरेशन पूरा हो गया है।

सेवाओं को प्रारंभ और बंद करने के लिए बैच फ़ाइलें बनाना

सहमत हूं कि हर बार जब आप सेवाएं शुरू करते हैं तो "होस्ट" फ़ाइल को मैन्युअल रूप से संपादित करना सुविधाजनक नहीं है, इसलिए अधिक सुविधाजनक, अपाचे, MySQL सेवाओं के एक साथ लॉन्च और "होस्ट" फ़ाइल को बदलने के लिए, हम दो बनाएंगे बैच फ़ाइल: शुरू करना और रोकना, जो सब कुछ पूरा करेगा दैनिक कार्यखुद ब खुद।

वर्चुअल होस्ट का उपयोग करते समय, आपको C:\apache निर्देशिका में दो फ़ाइलें बनाने की आवश्यकता होती है: vhosts-off.txt - जिसमें "होस्ट" फ़ाइल की प्रारंभिक सामग्री होती है और vhosts-on.txt - जिसमें सभी वर्चुअल होस्ट होते हैं। कृपया ध्यान दें कि नए वर्चुअल होस्ट बनाते समय आपको उन्हें vhosts-on.txt फ़ाइल में जोड़ना होगा, न कि C:\WINDOWS\system32\drivers\etc\hosts में। नीचे दिए गए उदाहरण देखें.

फ़ाइल vhosts-off.txt (एक एकल पंक्ति हो सकती है):
127.0.0.1 लोकलहोस्ट

वर्चुअल होस्ट www.test.ru और test.ru के साथ vhosts-on.txt फ़ाइल का उदाहरण:

127.0.0.1 लोकलहोस्ट
127.0.0.1 www.test.ru
127.0.0.1 test.ru

उसी निर्देशिका C:\apache में, दो बैच फ़ाइलें बनाएं: स्टार्ट-वेबसर्वर.बैट - सेवाओं को शुरू करने और "होस्ट" फ़ाइल को बदलने के लिए, और स्टॉप-वेबसर्वर.बैट - सेवाओं को रोकने और "होस्ट" फ़ाइल को साफ़ करने के लिए।

फ़ाइल प्रारंभ-webserver.bat लॉन्च करें:

@गूंज बंद
प्रतिध्वनि.
यदि मौजूद नहीं है तो C:\apache\vhosts-on.txt पर no_vhosts प्राप्त करें
इको वर्चुअल होस्ट बनाएं:
कॉपी /v /y C:\apache\vhosts-on.txt C:\WINDOWS\system32\drivers\etc\hosts
प्रतिध्वनि.
:no_vhosts
NET Apache2.2 प्रारंभ करें
NET MySQL प्रारंभ करें

फ़ाइल रोकें stop-webserver.bat:

@गूंज बंद
प्रतिध्वनि.
यदि मौजूद नहीं है तो C:\apache\vhosts-off.txt पर no_vhosts प्राप्त करें
इको पुनर्स्थापना होस्ट फ़ाइल:
कॉपी /v /y C:\apache\vhosts-off.txt C:\WINDOWS\system32\drivers\etc\hosts
प्रतिध्वनि.
:no_vhosts
NET अपाचे 2.2 को रोकें
NET MySQL बंद करो

यदि आप वर्चुअल होस्ट का उपयोग नहीं करते हैं या "होस्ट" फ़ाइल को प्रतिस्थापित किए बिना सेवाएं शुरू करना चाहते हैं, तो बस C:\apache निर्देशिका से vhosts-on.txt और vhosts-off.txt फ़ाइलों को हटा दें।

पहले हमारी श्रृंखला में लिनक्स मूल बातेंहमने अपाचे वेब सर्वर के साथ काम करने की मूल बातें देखीं। यह इंटरनेट पर दुनिया का सबसे व्यापक रूप से उपयोग किया जाने वाला वेब सर्वर है (जुलाई 2015 तक, Apache की हिस्सेदारी 38%, IIS की 26% और Nginx की 15% थी)। इसलिए, जितना अधिक आप इसके बारे में जानेंगे और समझेंगे कि यह कैसे काम करता है, उतनी ही अधिक आप इसे हैक करने में सफलता प्राप्त करेंगे।

आज हम अपाचे सर्वर स्थापित करने की मूल बातें देखेंगे। जैसा कि हमने पहले लिखा था, लिनक्स या यूनिक्स में लगभग सभी अनुप्रयोगों का कॉन्फ़िगरेशन और कॉन्फ़िगरेशन कॉन्फ़िगरेशन फ़ाइलों के माध्यम से किया जाता है, जो सादे पाठ हैं। अपाचे यहां कोई अपवाद नहीं है। इसलिए, इस लेख में हम apache2.conf कॉन्फ़िगरेशन फ़ाइल पर ध्यान केंद्रित करेंगे, जो /etc/apache2 निर्देशिका में स्थित है।

चरण 1: Apache2 प्रारंभ करें

चलिए Apache2 शुरू करके शुरुआत करते हैं। आइए एप्लिकेशन -> पर जाकर काली ग्राफ़िकल शेल के माध्यम से ऐसा करें काली लिनक्स-> सिस्टम सेवाएँ -> HTTP -> apache2 प्रारंभ करें जैसा कि नीचे स्क्रीनशॉट में दिखाया गया है।

या इसके माध्यम से चलाएँ कमांड लाइनटर्मिनल में निम्नलिखित कमांड टाइप करके

काली >सेवा अपाचे2 प्रारंभ

यह Apache2 डेमॉन प्रारंभ करता है और अब से वेब सर्वर को इंटरनेट पर हमारी सामग्री प्रदान करनी चाहिए।

चरण 2: सर्वर स्वास्थ्य की जाँच करें

यह जांचने के लिए कि हमारा अपाचे सर्वर चल रहा है या नहीं, आइए ब्राउज़र में लोकलहोस्ट या 127.0.0.1 पर जाएँ। यदि आपको नीचे स्क्रीनशॉट में जैसा पेज दिखाई देता है, तो इसका मतलब है कि सर्वर ठीक काम कर रहा है!

चरण 3: कॉन्फ़िगरेशन फ़ाइल खोलें

अपाचे को कॉन्फ़िगर करने के लिए, हमें /etc/apache2 निर्देशिका पर जाना होगा।

काली > सीडी /etc/apache2

आइए इस निर्देशिका में सभी फ़ाइलों की एक सूची प्रदर्शित करें:

काली > ls -l

जैसा कि आप देख सकते हैं, इस निर्देशिका में कई फ़ाइलें और उपनिर्देशिकाएँ हैं। हम अभी केवल apache2.conf फ़ाइल में रुचि रखते हैं, लेकिन ध्यान दें कि हमारे पास एक ports.conf फ़ाइल और एक साइट्स_उपलब्ध फ़ोल्डर है जिसकी हमें थोड़ी देर बाद आवश्यकता होगी, और यहां कई अन्य कॉन्फ़िगरेशन फ़ाइलें और फ़ोल्डर्स भी हैं .

हम apache2.conf को किसी में भी खोल सकते हैं पाठ संपादक, लेकिन यहां हम लीफपैड का उपयोग करेंगे। फ़ाइल को केवल कंसोल में टाइप करके खोला जा सकता है:

काली > लीफपैड /etc/apache2/apache2.conf

जैसा कि आप देख सकते हैं, यह कमांड खुलता है पाठ फ़ाइलहमारे अपाचे वेब सर्वर के बारे में सभी कॉन्फ़िगरेशन जानकारी के साथ। सर्वर सेट अप करने के लिए अब हम आपको इस फ़ाइल के सभी मुख्य बिंदुओं से परिचित कराने का प्रयास करेंगे।

चरण 4: सर्वररूट

आइए सभी टिप्पणियों को छोड़कर नीचे स्क्रॉल करें, और पंक्ति #70 ढूंढें, जहां वैश्विक सेटिंग्स अनुभाग शुरू होता है। यहां हम सर्वररूट सेटिंग्स देखते हैं। यह डायरेक्टरी ट्री का शीर्ष है जिसमें अपाचे सर्वर सर्वर से संबंधित सभी फाइलों को संग्रहीत करता है। पंक्ति #84 सर्वररूट को परिभाषित करती है। यदि हम /etc/apache2 को ServerRoot के रूप में सेट करना चाहते हैं तो हम इस लाइन को आसानी से अनकम्मेंट कर सकते हैं। हमारा सुझाव है कि आप ऐसा करें.

चरण 5. समयबाह्य

अगले भाग में हमारे पास वेरिएबल हैं जो पैरामीटर के मान निर्धारित करते हैं: टाइमआउट, कीपअलाइव, मैक्सकीपअलाइव रिक्वेस्ट और कीपअलाइवटाइमआउट।

  • समय समाप्त: यह वह समय है जिसके भीतर सर्वर को उपयोगकर्ता के अनुरोध को पूरा करना होगा। इसका डिफ़ॉल्ट मान 300 है, जिसका अर्थ है कि सर्वर को प्रत्येक अनुरोध को 300 सेकंड या 5 मिनट के भीतर संसाधित करना होगा। यह निश्चित रूप से बहुत लंबा है और इसे 30 सेकंड पर सेट किया जा सकता है।
  • जिंदा रहो: इसका मतलब है कि सर्वर एक ही क्लाइंट से कई अनुरोधों के लिए सक्रिय रहता है (कनेक्शन रखता है)। डिफ़ॉल्ट चालू है. इसका मतलब यह है कि ग्राहकों को हमारे सर्वर से प्रत्येक अनुरोध के लिए एक नया कनेक्शन बनाने की आवश्यकता नहीं है। यह दृष्टिकोण आपको सर्वर संसाधनों को बचाने की अनुमति देता है।
  • MaxKeepAliveRequests: यह मान एक ही क्लाइंट से स्थापित कनेक्शन से प्राप्त अनुरोधों के बीच अनुमत सेकंड की अधिकतम संख्या निर्दिष्ट करता है। यदि हम इस मान को 0 पर सेट करते हैं, तो समय की मात्रा असीमित है।
  • समय समाप्ति को जीवित रखें: यह यह निर्धारित करने के लिए अनुरोधों के बीच का समय है कि कनेक्शन अभी भी जीवित (स्थापित) है।

हमारा सुझाव है कि आप टाइमआउट पैरामीटर को छोड़कर सभी मानों को उनके डिफ़ॉल्ट पर छोड़ दें। प्रत्येक स्थिति अलग होती है, और आपको अपने विशिष्ट वातावरण के अनुरूप सर्वर प्रदर्शन को अनुकूलित करने के लिए इन डिफ़ॉल्ट को बदलने की आवश्यकता हो सकती है।

चरण 6: Apache2 उपयोगकर्ता और समूह

आइए apache2.conf फ़ाइल में कुछ पंक्तियों को फिर से नीचे स्क्रॉल करें जब तक कि हम पंक्ति #177 तक नहीं पहुँच जाते। यहां हम Apache2 उपयोगकर्ता और समूह सेट कर सकते हैं। कृपया पंक्ति #177 पर टिप्पणी नोट करें। इसमें कहा गया है कि हम इन वेरिएबल्स को envvars फ़ाइल में सेट कर सकते हैं ( पर्यावरण चर). हम इस प्रश्न को भविष्य के लेख के लिए छोड़ देंगे, लेकिन अभी केवल यह ध्यान रखें कि उपयोगकर्ता और समूह दोनों वेरिएबल हैं जिनके मान /etc/apache2/envvars फ़ाइल से लिए गए हैं।

अंत में, अंतिम खंड, जो अपाचे सुरक्षा के लिए बहुत महत्वपूर्ण है, लाइन #193 से शुरू होता है। यह अनुभाग सुनिश्चित करता है कि वेब क्लाइंट .htaccess और .htpasswd फ़ाइलों तक नहीं पहुँच सकते।

चरण 7. लॉगिंग

अगला भाग बताता है कि अपाचे लॉग कैसे प्रबंधित करता है।

पहले उपधारा में हम HostNameLookups पैरामीटर को संबोधित करते हैं। यह निर्देश Apache2 को बताता है कि क्या उसे लॉग लिखते समय DNS लुकअप करना चाहिए। स्थापित कनेक्शन. डिफ़ॉल्ट मान "ऑफ़" के साथ Apache2 बहुत बेहतर प्रदर्शन करता है।

चरण 8: उपलब्ध साइटें

आइए अब साइट_उपलब्ध निर्देशिका (उपलब्ध साइटें) और, सबसे महत्वपूर्ण बात, उस फ़ाइल को देखें जो डिफ़ॉल्ट रूप से इसमें स्थित है। इसे अक्सर डिफ़ॉल्ट वर्चुअल होस्ट फ़ाइल कहा जाता है। कंसोल में टाइप करके इस फ़ाइल को खोलें:

काली > लीफपैड /etc/apache2/site_available/default

जैसा कि आप देख सकते हैं, इस फ़ाइल में तीन महत्वपूर्ण क्षेत्र हैं। पहली पंक्ति निर्दिष्ट करती है कि वेब सर्वर किस पोर्ट पर सुन रहा है। यहां इसे पोर्ट 80 (*:80) पर किसी भी इंटरफ़ेस को सुनने के लिए परिभाषित किया गया है। दूसरी पंक्ति उस ईमेल पते को निर्दिष्ट करती है जिस पर सर्वर के साथ समस्याओं के मामले में सूचनाएं भेजी जानी चाहिए। यदि आप हैं तो डिफ़ॉल्ट रूप से एक पता है कार्यकारी प्रबंधक, फिर यहां आप अपना ईमेल पता दर्ज कर सकते हैं। तीसरा तत्व सबसे महत्वपूर्ण हो सकता है - डॉक्यूमेंटरूट। यह निर्धारित करता है कि इस वर्चुअल होस्ट की सामग्री कहाँ स्थित होगी, डिफ़ॉल्ट /var/www निर्देशिका है। हमारा सुझाव है कि आप सब कुछ वैसे ही छोड़ दें जैसा कि डेवलपर्स द्वारा परिभाषित किया गया था।

चरण 9. बंदरगाह

अंत में, हम apache2.conf फ़ाइल में लाइन #248 तक और भी नीचे जा सकते हैं - "पोर्ट.कॉन्फ़ शामिल करें"। यह निर्देश केवल अपाचे को उन पोर्ट को खोजने के लिए port.conf फ़ाइल में जाने के लिए कहता है जिन पर उसे ध्यान देना चाहिए।



मित्रों को बताओ