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.