A2ensite और a2dissite कैसे करें?


10

मैं एक लिनक्स सर्वर में लॉग इन हूं। मुझे लगता है कि यह एक Red Hat वितरण है।

आदेश a2ensiteऔर a2dissiteउपलब्ध नहीं हैं। में /etc/httpdनिर्देशिका, मैं का कोई उल्लेख नहीं दिख रहा है sites-enabledया sites-available।

मुझे पूरा यकीन है कि साइट वर्तमान में के निर्देशों को क्रियान्वित कर रही है /etc/httpd/conf.d/ssl.conf। मैं ऐसा करना चाहूंगा a2dissite ssl, फिर वेब सर्वर को पुनः लोड करूंगा । इसे कैसे प्राप्त करें?

जवाबों:


24

a2ensite आदि डेबियन-आधारित सिस्टम में उपलब्ध कमांड हैं और आरएच-आधारित वितरण में उपलब्ध नहीं हैं।

वे क्या में विन्यास फाइल भागों से सांकेतिक लिंक का प्रबंधन करने के लिए है /etc/apache2/sites-availableऔर mods-availableकरने के लिए /etc/apache2/sites-enabledऔर इतने पर। उदाहरण के लिए, यदि आपके पास एक config फाइल में परिभाषित एक vhost है /etc/apache2/sites-avaible/example.com, a2ensite example.comतो इस फाइल में एक सिम्लिंक पैदा करेगा /etc/apache2/sites-enabledऔर अपाचे कॉन्फिगरेशन को पुनः लोड करेगा। मुख्य अपाचे कॉन्फिगर फ़ाइल में वे पंक्तियाँ होती हैं जिनमें हर फ़ाइल शामिल होती है /etc/apache2/sites-enabledऔर इस प्रकार, वे रनटाइम कॉन्फ़िगर में शामिल हो जाती हैं।

आरएचईएल में इस संरचना की नकल करना काफी आसान है। में दो निर्देशिका जोड़ें /etc/httpd/नामित sites-enabledऔर sites-availableऔर में फ़ाइलों में अपने vhosts जोड़ने sites-available। उसके बाद, एक पंक्ति जोड़ें

include ../sites-enabled 

को /etc/httpd/conf/httpd.conf। अब आप के लिए सिमलिंक बना सकते हैं sites-enabledऔर फिर से config को फिर से लोड service httpd reloadया apachectl।


1
हाँ! मैंने देखा। इसलिए मूल रूप से /etc/httpd/conf.d साइट-सक्षम के बराबर कार्य कर रहा है। तो बस ssl.conf को उस डायरेक्टरी से हटाकर और httpd को पुनः लोड / रीलोड करके मेरे बदलावों को उठाया। वह शांत है
— जॉन

2

स्वेन के उत्कृष्ट जवाब में एक ऐड-ऑन के रूप में, दो स्क्रिप्ट जो a2ensite और a2dissite के व्यवहार की नकल करते हैं। मूल ensite.sh पर पाया जा सकता Github

a2ensite.sh

#!bin/bash
# Enable a site, just like the a2ensite command.

SITES_AVAILABLE_CONFIG_DIR="/etc/httpd/sites-available";
SITES_ENABLED_CONFIG_DIR="/etc/httpd/sites-enabled";

if [ $1 ]; then
  if [ -f "${SITES_ENABLED_CONFIG_DIR}/${1}" ]; then
    echo "Site ${1} was already enabled!";
  elif [ ! -w $SITES_ENABLED_CONFIG_DIR ]; then
    echo "You don't have permission to do this. Try to run the command as root."
  elif [ -f "${SITES_AVAILABLE_CONFIG_DIR}/${1}" ]; then
    echo "Enabling site ${1}...";
    ln -s $SITES_AVAILABLE_CONFIG_DIR/$1 $SITES_ENABLED_CONFIG_DIR/$1
    echo "done!"
 else
   echo "Site not found!"
fi
else
  echo "Please, inform the name of the site to be enabled."
fi


a2dissite.sh

#!bin/bash
# Disable a site, just like a2dissite command, from Apache2.

SITES_AVAILABLE_CONFIG_DIR="/etc/httpd/sites-available";
SITES_ENABLED_CONFIG_DIR="/etc/httpd/sites-enabled";

if [ $1 ]; then
  if [ ! -f "${SITES_ENABLED_CONFIG_DIR}/${1}" ]; then
    echo "Site ${1} was already disabled!";
  elif [ ! -w $SITES_ENABLED_CONFIG_DIR ]; then
    echo "You don't have permission to do this. Try to run the command as root."
  elif [ -f "${SITES_AVAILABLE_CONFIG_DIR}/${1}" ]; then
    echo "Disabling site ${1}...";
    unlink $SITES_ENABLED_CONFIG_DIR/$1
    echo "done!"
  else
    echo "Site not found!"
  fi
else
  echo "Please, inform the name of the site to be enabled."
fi

"साइट का नाम" क्या होना चाहिए?
— छिपकली
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.