A2ensite ve a2dissite nasıl?


10

Bir Linux sunucusunda oturum açtım. Bence bu bir Red Hat dağılımı.

Komutlar a2ensiteve a2dissitekullanılamaz. In /etc/httpddizinde, ben herhangi bir söz görmüyorum sites-enabledya sites-available.

Eminim site şu anda direktifleri yürütüyor /etc/httpd/conf.d/ssl.conf. Yapmak a2dissite sslve ardından Web Sunucusunu yeniden yüklemek istiyorum . Bunu nasıl başarabilirim?

Yanıtlar:


24

a2ensite vs. Debian tabanlı sistemlerde bulunan ve RH tabanlı dağıtımlarda bulunmayan komutlardır.

Ne yapmaları yapılandırma dosyası yerlerinden sembolik bağlantıları yönetmek için /etc/apache2/sites-availableve mods-availablekarşı /etc/apache2/sites-enabledvb. Eğer bir yapılandırma dosyasında tanımlanan bir sankonu varsa Örneğin /etc/apache2/sites-avaible/example.com, a2ensite example.combu dosyaya bir sembolik yaratacak /etc/apache2/sites-enabledve apache yapılandırmayı yeniden. Ana Apache yapılandırma dosyası, içindeki her dosyayı içeren satırları içerir /etc/apache2/sites-enabledve böylece çalışma zamanı yapılandırmasına dahil edilirler.

RHEL'de bu yapıyı taklit etmek oldukça kolaydır. İki dizin ekleme /etc/httpd/adlı sites-enabledve sites-availableve dosyalar halinde vhosts ekleyin sites-available. Bundan sonra bir satır ekleyin

include ../sites-enabled 

için /etc/httpd/conf/httpd.conf. Artık sembolik bağlantılar oluşturabilir sites-enabledve yapılandırmayı service httpd reloadveya ile yeniden yükleyebilirsiniz apachectl.


1
Ahh anlıyorum. Temel olarak /etc/httpd/conf.d, etkin sitelerin eşdeğeri gibi davranır. Bu nedenle, ssl.conf dosyasını bu dizinden kaldırmak ve httpd'yi yeniden başlatmak / yeniden yüklemek, değişikliklerimi aldı. Bu harika
John

2

Sven'in mükemmel cevabına bir ek olarak, a2ensite ve a2dissite davranışını taklit eden iki komut dosyası. Orijinal ensite.sh bulunabilir 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

"sitenin adı" ne olmalı?
ewizard
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.