Come a2ensite e a2dissite?


10

Ho effettuato l'accesso a un server Linux. Penso che sia una distribuzione Red Hat.

I comandi a2ensitee a2dissitenon sono disponibili. Nella /etc/httpddirectory non vedo alcuna menzione di sites-enabledo sites-available.

Sono abbastanza sicuro che il sito stia attualmente eseguendo le direttive di /etc/httpd/conf.d/ssl.conf. Vorrei fare un a2dissite ssl, quindi ricaricare il Web Server. Come farlo?

Risposte:


24

a2ensite ecc. sono comandi disponibili nei sistemi basati su Debian e che non sono disponibili nelle distribuzioni basate su RH.

Quello che fanno è gestire i collegamenti simbolici dalle parti del file di configurazione in /etc/apache2/sites-availablee mods-availableverso /etc/apache2/sites-enablede così via. Ad esempio, se hai un vhost definito in un file di configurazione /etc/apache2/sites-avaible/example.com, a2ensite example.comcreerebbe un collegamento simbolico a questo file /etc/apache2/sites-enablede ricaricherà la configurazione di Apache. Il file di configurazione principale di Apache contiene righe che includono tutti i file /etc/apache2/sites-enablede quindi vengono incorporati nella configurazione di runtime.

È abbastanza facile imitare questa struttura in RHEL. Aggiungere due directory in /etc/httpd/nome sites-enablede sites-availablee aggiungi le vhost in file in sites-available. Successivamente, aggiungi una riga

include ../sites-enabled 

a /etc/httpd/conf/httpd.conf. È ora possibile creare collegamenti simbolici sites-enablede ricaricare la configurazione con service httpd reloado apachectl.


1
Ah! Capisco. Quindi sostanzialmente /etc/httpd/conf.d agisce come l'equivalente di siti abilitati. Quindi, semplicemente rimuovendo ssl.conf da quella directory e riavviando / ricaricando httpd ho raccolto le mie modifiche. È fantastico
John,

2

Come aggiunta all'ottima risposta di Sven, due script che imitano il comportamento di a2ensite e a2dissite. Il ensite.sh originale può essere trovato su 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

quale dovrebbe essere il "nome del sito"?
Lucertola,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.