Come disabilitare tutti gli host virtuali di Apache?
-
06-07-2019 - |
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
?
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;)