Domanda

Sto scrivendo uno script di shell per eseguire alcune configurazioni del web server. Devo disabilitare tutti gli host virtuali attualmente attivi. a2dissite non accetta più argomenti, quindi non posso farlo

a2dissite `ls /etc/apache2/sites-enabled`

Dovrei usare find ? È sicuro eliminare manualmente i collegamenti simbolici in / etc / apache2 / sites-enabled ?

È stato utile?

Soluzione

Il tuo script è solo Debian? In tal caso, puoi eliminare in modo sicuro tutti i collegamenti simbolici nei siti abilitati, che funzioneranno fino a quando tutti i siti sono stati scritti correttamente, nella directory dei siti disponibili.

Ad esempio:

 find /etc/apache2/sites-enabled/ -type l -exec rm -i "{}" \;

ti proteggerà da qualcuno che ha effettivamente scritto un file invece di un link simbolico in quella directory.

(rimuovi -i da rm per uno script automatico, ovviamente)

Altri suggerimenti

Dopo un po 'più di ricerca, ho scoperto che a2dissite è solo uno script di shell e fondamentalmente chiama rm . Quindi, come altre risposte, sono d'accordo che sia sicuro

rm /etc/apache2/sites-enabled/*

ubuntu 12.04lts / ubuntu 16.04lts

Puoi semplicemente fare quanto segue [NB: potresti aver bisogno del permesso di root sudo a2dissite]

a2dissite *

o

a2dissite

E ti chiederà quelli che vuoi fare

quando hai disattivato completamente i siti, riavvia il server apache2

sudo systemctl restart apache2

o ricaricare semplicemente la configurazione di apache senza un riavvio completo:

sudo service apache2 reload

Per rimuovere il file host basta cancellarlo. Se desideri semplicemente dissecare il sito, utilizza

sudo a2dissite sitename

Riavvia apache2

sudo /etc/init.d/apache2 reload

Ancora per rimuoverlo (eliminarlo) completamente dal sistema,

sudo rm /etc/apache2/sites-available/sitename

Lo disabiliterei anche prima di eliminare il file

Puoi semplicemente eliminare i collegamenti simbolici o spostare l'intera directory. Non esistono database speciali o altri metadati oltre a questi link.

Non uso mai 'a2dissite' e elimino e creo sempre i collegamenti in / etc / apache2 / siti abilitati manualmente, quindi sì, direi che è abbastanza sicuro.

Ecco la mia soluzione alternativa, primo tipo:

# a2dissite (digita questo comando senza alcun argomento, ti chiederà di scegliere la riga successiva)

  

Le tue scelte sono: siteA siteB siteC siteD

     

Quali siti vuoi disabilitare (caratteri jolly ok)

Ora copi tutto l'elenco di siti sopra riportato ( sitoA sitoB sitoC sitoD ) e incollalo come risposta, quindi Invio.

Il risultato dell'output sarebbe:

removing dangling symlink /etc/apache2/sites-enabled/siteA.conf
removing dangling symlink /etc/apache2/sites-enabled/siteB.conf
removing dangling symlink /etc/apache2/sites-enabled/siteC.conf
removing dangling symlink /etc/apache2/sites-enabled/siteD.conf

Questo approccio ci aiuterà a scegliere facoltativamente un lungo elenco di nomi di siti che devono essere rimossi o intatti.

puoi modificare httpd.conf ed eliminare la linea include per gli host virtuali (nella parte inferiore del file)

Apparentemente, puoi semplicemente installare l'ultima Ubuntu;)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top