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.