Que faire si vous avez besoin de désactiver un site Web, mais que vous ne savez pas comment ? C'est plus facile que vous ne le pensez.Avant de commencer, gardez à l'esprit ce qui suit lors de la lecture de cet article :
-
Votre bloc de serveur d'hôte virtuel (vhost) peut avoir un titre autre que domain.com.conf . Par exemple, vous pouvez utiliser httpd.conf ou ssl.conf . Dans ce cas, remplacez domain.com.conf avec le nom de votre fichier de configuration.
-
Cet article utilise des vhosts ou des blocs de serveur dans certains des exemples qui utilisent le port 80 et ne sont pas Secure Sockets Layer (SSL). Notez que ces étapes ne diffèrent pas si votre bloc vhost ou serveur est un bloc vhost ou serveur compatible SSL qui utilise le port 443. Les étapes sont les mêmes.
Système d'exploitation Ubuntu et Apache
Commençons par le plus simple. Ubuntu® est livré avec deux commandes spécifiques pour gérer les vhosts dans Apache®. Pour activer un vhost, utilisez la commande suivante :
sudo a2ensite /etc/apache2/sites-available/domain.com.conf
Quand vous comprenez ce que signifie cette collection de lettres et un chiffre dans a2ensite
, il est alors plus facile de se rappeler comment activer ou désactiver un vhost Apache dans Ubuntu.
Voici la répartition de la commande :
- a2 :apache2 (ce qu'Ubuntu appelle Apache)
- fr :activer
- site :hébergeur virtuel du site
Pour désactiver votre site Web, utilisez le a2dissite
commande, comme illustré dans l'exemple suivant :
sudo a2dissite /etc/apache2/sites-enabled/domain.com.conf
Cette commande a les composants suivants :
- a2 :apache2 (ce qu'Ubuntu appelle Apache)
- dis :désactiver
- site :hébergeur virtuel du site
Notez également la différence dans les chemins de répertoire entre a2ensite
et a2dissite
. Lorsque vous souhaitez activer un hôte virtuel pour Apache dans Ubuntu, vous le faites à partir des sites-available annuaire. Lorsque vous souhaitez désactiver un hôte virtuel dans Ubuntu, vous le faites à partir des sites-enabled répertoire.
Après avoir désactivé l'hôte virtuel, utilisez la commande suivante pour vérifier la syntaxe de votre configuration Apache :
apache2ctl -t
Réponse attendue :
Syntax OK
Pour redémarrer ou recharger Apache, exécutez l'une des commandes suivantes :
service apache2 restart
ou
service apache2 reload
restart
arrête complètement Apache et reload
démarre de manière transparente un nouveau service Apache avant d'arrêter le service d'origine. En règle générale, vous souhaitez recharger plutôt que redémarrer lorsque vous en avez la possibilité.
Système d'exploitation Ubuntu et Nginx
La désactivation d'un bloc de serveur Nginx® (ce que Nginx appelle vhosts) est un peu différente. Nginx utilise des liens symboliques pour activer ou désactiver les blocs de serveur. Les vhosts Apache peuvent également utiliser des liens symboliques, mais a2ensite
et a2dissite
ne fonctionne pas pour Nginx.
Pour désactiver un bloc de serveur dans Nginx dans Ubuntu, vous devez supprimer le lien symbolique entre sites-enabled et sites disponibles , comme illustré dans l'exemple suivant :
sudo rm /etc/nginx/sites-enabled/domain.com.conf
La commande supprime le lien symbolique de votre site Web, domain.com . Utilisez la commande suivante pour vérifier la syntaxe Nginx :
nginx -t
Réponse attendue :
nginx: the configuration file <file-path> syntax is ok
nginx: configuration file <file-path> test is successful
Le chemin de votre fichier s'affiche dans l'espace réservé
service nginx reload
ou
service nginx restart
Comme auparavant, chaque fois que vous avez la possibilité de le faire, utilisez reload
plutôt que restart
afin de ne pas perturber vos autres sites Web.
Remarque :Si vous exécutez php-fpm
, vous devez également redémarrer ce service à l'aide de la commande suivante :
service php-fpm restart
CentOS et Apache
La désactivation d'un hôte virtuel dans Apache dans CentOS® est plus compliquée car CentOS n'a pas de commande facile à utiliser. Dans CentOS, vous devez commenter manuellement le vhost que vous souhaitez désactiver.
Voici un exemple de domaine.com vhost pour Apache dans CentOS :
<VirtualHost *:80>
ServerName domain.com
ServerAlias www.domain.com
DocumentRoot /var/www/vhosts/domain.com/public
</VirtualHost>
Trouvez cet hôte virtuel en utilisant la commande suivante :
httpd -S | grep domain.com
La sortie montre l'emplacement de l'hôte virtuel, qui est similaire à la sortie suivante :
/etc/httpd/vhost.d/domain.com.conf
Selon votre configuration particulière, la sortie précédente peut sembler différente. Cependant, le chemin que vous recherchez doit se terminer de la même manière que domain.com.conf .
Une fois que vous avez l'emplacement de l'hôte virtuel, ouvrez le fichier de configuration vhost avec votre éditeur de texte préféré. Voici deux exemples utilisant vim
et nano
:
sudo vim /etc/httpd/vhost.d/domain.com.conf
ou
sudo nano /etc/httpd/vhost.d/domain.com.conf
Modifiez le fichier de configuration et ajoutez un signe dièse (#) devant chaque ligne pour l'entrée vhost. Si vous utilisez vim
, saisissez Insérer premier mode. Votre configuration vhost devrait maintenant ressembler à ceci :
#<VirtualHost *:80>
# ServerName domain.com
# ServerAlias www.domain.com
# DocumentRoot /var/www/vhosts/domain.com/public
#</VirtualHost>
Enregistrez le fichier et quittez l'éditeur de texte.
Maintenant, vous devez vérifier la syntaxe Apache avec la commande suivante :
httpd -t
Réponse attendue :
Syntax OK
Enfin, rechargez ou redémarrez Apache. Si vous utilisez CentOS 7 ou une version ultérieure, vous pouvez utiliser systemctl
pour cette commande. Sinon, utilisez service
. Les exemples suivants montrent les deux commandes :
Utilisation du service
:
sudo service httpd reload
ou
sudo service httpd restart
Utilisation de systemctl
:
sudo systemctl reload httpd
ou
sudo systemctl restart httpd
Remarque :Tant que systemctl
ne fonctionne que dans CentOS 7 ou version ultérieure, ces versions prennent également en charge service
, si c'est plus facile. Le système est lié à systemctl
automatiquement.
Ce même processus fonctionne également pour SSL, le port 443, les vhosts.
Comme avant, si vous avez la possibilité, utilisez reload
plutôt que restart
.
CentOS et Nginx
Nginx fait référence aux vhosts en tant que blocs de serveur. Utilisez le même processus pour commenter les blocs de serveur pour Nginxin CentOS que vous avez utilisé pour Apache.
Cependant, nous devons d'abord trouver le bloc de serveur que nous voulons désactiver. Pour ce faire, utilisez la commande suivante :
nginx -T | grep domain.com
Encore une fois, recherchez un chemin se terminant par .conf pour votre domaine. Il ressemble à l'exemple suivant :
/etc/nginx/conf.d/domain.com.conf
Maintenant, ouvrez ce fichier avec votre éditeur de texte préféré en utilisant l'une des commandes suivantes :
sudo vim /etc/nginx/conf.d/domain.com.conf
ou
sudo nano /etc/nginx/conf.d/domain.com.conf
Le fichier ressemble à l'exemple suivant :
server {
listen 80;
server_name domain.com www.domain.com;
access_log /var/log/nginx/domain.com.access.log;
error_log /var/log/nginx/domain.com.error.log;
root /var/www/domain.com/httpdocs;
location / {
index index.html index.htm index.php;
try_files $uri =404;
}
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000; #this means php-fpm will run on a port
# fastcgi_pass unix:/run/php-fpm/domain.com.sock; or you could have php-fpm running on a socket
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/html/domain.com$fastcgi_script_name;
}
}
Vous devriez commenter tout ce bloc de serveur. Si vous utilisez vim
, assurez-vous que vous êtes dans Insérer premier mode. Votre bloc de serveur devrait ressembler à ceci :
#server {
# listen 80;
# server_name domain.com www.domain.com;
# access_log /var/log/nginx/domain.com.access.log;
# error_log /var/log/nginx/domain.com.error.log;
# root /var/www/domain.com/httpdocs;
#location / {
# index index.html index.htm index.php;
# try_files $uri =404;
# }
#location ~ \.php$ {
# include /etc/nginx/fastcgi_params;
# fastcgi_pass 127.0.0.1:9000; #this means php-fpm will run on a port
# # fastcgi_pass unix:/run/php-fpm/domain.com.sock; or you could have php-fpm running on a socket
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /var/www/html/domain.com$fastcgi_script_name;
# }
#}
Enregistrez le fichier et quittez l'éditeur de texte.
Maintenant, vérifiez la syntaxe Nginx avec la commande suivante :
nginx -t
Réponse attendue :
nginx: the configuration file <file-path> syntax is ok
nginx: configuration file <file-path> test is successful
Le chemin de votre fichier s'affiche dans l'espace réservé
sudo service nginx reload
ou
sudo service nginx restart
Si vous exécutez php-fpm
, redémarrez ce service à l'aide de la commande suivante :
sudo service php-fpm restart
Vous pouvez également redémarrer ou recharger Nginx en utilisant systemctl
au lieu de service
, comme indiqué dans les exemples suivants :
sudo systemctl reload nginx
ou
sudo systemctl restart nginx
Redémarrez php-fpm
avec systemctl
:
sudo systemctl restart php-fpm
Vous savez maintenant comment désactiver les vhosts ou les blocs de serveur dans CentOS et le système d'exploitation Ubuntu pour Apache et Nginx.