¿Qué sucede si necesita deshabilitar un sitio web, pero no está seguro de cómo? Es más fácil de lo que piensas. Antes de comenzar, ten en cuenta lo siguiente mientras lees este artículo:
-
Su bloque de servidor de host virtual (vhost) puede tener un título diferente a domain.com.conf . Por ejemplo, puede usar httpd.conf o ssl.conf . En ese caso, reemplace dominio.com.conf con su nombre de archivo de configuración.
-
Este artículo usa vhosts o bloques de servidor en algunos de los ejemplos que usan el puerto 80 y no son Capa de sockets seguros (SSL). Tenga en cuenta que estos pasos no difieren si su host virtual o bloque de servidor es un host virtual o bloque de servidor habilitado para SSL que usa el puerto 443. Los pasos son los mismos.
Sistema operativo Ubuntu y Apache
Empecemos por lo más fácil. Ubuntu® viene con dos comandos específicamente para administrar vhosts en Apache®. Para habilitar un vhost, use el siguiente comando:
sudo a2ensite /etc/apache2/sites-available/domain.com.conf
Cuando entiendes lo que significa esa colección de letras y un número en a2ensite
, entonces es más fácil recordar cómo habilitar o deshabilitar un vhost de Apache en Ubuntu.
Aquí está el desglose del comando:
- a2 :apache2 (lo que Ubuntu llama Apache)
- es :habilitar
- sitio :alojamiento virtual del sitio web
Para deshabilitar su sitio web, use el a2dissite
comando, como se muestra en el siguiente ejemplo:
sudo a2dissite /etc/apache2/sites-enabled/domain.com.conf
Este comando tiene los siguientes componentes:
- a2 :apache2 (lo que Ubuntu llama Apache)
- dis :deshabilitar
- sitio :alojamiento virtual del sitio web
Además, tome nota de la diferencia en las rutas de directorio entre a2ensite
y a2dissite
. Cuando desee habilitar un host virtual para Apache en Ubuntu, hágalo desde los sitios disponibles directorio. Cuando desee deshabilitar un host virtual en Ubuntu, hágalo desde la página habilitada para sitios. directorio.
Después de deshabilitar el host virtual, use el siguiente comando para verificar la sintaxis de su configuración de Apache:
apache2ctl -t
Respuesta esperada:
Syntax OK
Para reiniciar o recargar Apache, ejecute uno de los siguientes comandos:
service apache2 restart
o
service apache2 reload
restart
derriba Apache por completo y reload
inicia sin problemas un nuevo servicio de Apache antes de detener el servicio original. Por lo general, desea volver a cargar en lugar de reiniciar cuando tiene la opción.
Sistema operativo Ubuntu y Nginx
Deshabilitar un bloque de servidor Nginx® (lo que Nginx llama vhosts) es un poco diferente. Nginx usa enlaces simbólicos para habilitar o deshabilitar los bloques del servidor. Apache vhosts también puede usar enlaces simbólicos, pero a2ensite
y a2dissite
no funcionan para Nginx.
Para deshabilitar un bloqueo de servidor en Nginx en Ubuntu, debe eliminar el enlace simbólico entre sitios habilitados y sitios disponibles , como se muestra en el siguiente ejemplo:
sudo rm /etc/nginx/sites-enabled/domain.com.conf
El comando elimina el enlace simbólico de su sitio web, domain.com . Use el siguiente comando para verificar la sintaxis de Nginx:
nginx -t
Respuesta esperada:
nginx: the configuration file <file-path> syntax is ok
nginx: configuration file <file-path> test is successful
La ruta de su archivo se muestra en el marcador de posición
service nginx reload
o
service nginx restart
Como antes, siempre que tenga la opción de hacerlo, use reload
en lugar de restart
para que no interrumpa ningún otro sitio web que tenga.
Nota :Si ejecuta php-fpm
, también debe reiniciar ese servicio mediante el siguiente comando:
service php-fpm restart
CentOS y Apache
Deshabilitar un host virtual en Apache en CentOS® es más complicado porque CentOS no tiene un comando fácil de usar. En CentOS, debe comentar manualmente el host virtual que desea deshabilitar.
Este es un ejemplo de un dominio.com vhost para Apache en CentOS:
<VirtualHost *:80>
ServerName domain.com
ServerAlias www.domain.com
DocumentRoot /var/www/vhosts/domain.com/public
</VirtualHost>
Encuentre este host virtual usando el siguiente comando:
httpd -S | grep domain.com
El resultado muestra la ubicación del host virtual, que es similar al siguiente resultado:
/etc/httpd/vhost.d/domain.com.conf
Dependiendo de su configuración particular, la salida anterior puede verse diferente. Sin embargo, la ruta que está buscando debe terminar de manera similar a domain.com.conf .
Una vez que tenga la ubicación del host virtual, abra el archivo de configuración de vhost con su editor de texto favorito. Aquí hay dos ejemplos usando vim
y nano
:
sudo vim /etc/httpd/vhost.d/domain.com.conf
o
sudo nano /etc/httpd/vhost.d/domain.com.conf
Edite el archivo de configuración y agregue un signo de almohadilla (#) delante de cada línea para la entrada de vhost. Si estás usando vim
, ingrese Insertar modo primero. Su configuración de vhost ahora debería verse así:
#<VirtualHost *:80>
# ServerName domain.com
# ServerAlias www.domain.com
# DocumentRoot /var/www/vhosts/domain.com/public
#</VirtualHost>
Guarde el archivo y salga del editor de texto.
Ahora, debe verificar la sintaxis de Apache con el siguiente comando:
httpd -t
Respuesta esperada:
Syntax OK
Finalmente, vuelva a cargar o reinicie Apache. Si está usando CentOS 7 o posterior, puede usar systemctl
para este comando. De lo contrario, use service
. Los siguientes ejemplos muestran ambos comandos:
Usando service
:
sudo service httpd reload
o
sudo service httpd restart
Usando systemctl
:
sudo systemctl reload httpd
o
sudo systemctl restart httpd
Nota :Mientras que systemctl
solo funciona en CentOS 7 o posterior, esas versiones también admiten service
, si eso es más fácil. El sistema enlaza con systemctl
automáticamente.
Este mismo proceso también funciona para SSL, puerto 443, vhosts.
Como antes, si tiene la opción, use reload
en lugar de restart
.
CentOS y Nginx
Nginx se refiere a los hosts virtuales como bloques de servidor. Use el mismo proceso para comentar los bloques del servidor para Nginxin CentOS que usó para Apache.
Primero, sin embargo, necesitamos encontrar el bloque de servidor que queremos deshabilitar. Lo haces con el siguiente comando:
nginx -T | grep domain.com
Nuevamente, busque un camino que termine en .conf para su dominio. Se parece al siguiente ejemplo:
/etc/nginx/conf.d/domain.com.conf
Ahora, abra ese archivo con su editor de texto favorito usando uno de los siguientes comandos:
sudo vim /etc/nginx/conf.d/domain.com.conf
o
sudo nano /etc/nginx/conf.d/domain.com.conf
El archivo se parece al siguiente ejemplo:
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;
}
}
Debe comentar todo este bloque de servidor. Si está utilizando vim
, asegúrese de estar en Insertar modo primero. Su bloque de servidor debería verse así:
#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;
# }
#}
Guarde el archivo y salga del editor de texto.
Ahora, verifique la sintaxis de Nginx con el siguiente comando:
nginx -t
Respuesta esperada:
nginx: the configuration file <file-path> syntax is ok
nginx: configuration file <file-path> test is successful
La ruta de su archivo se muestra en el marcador de posición
sudo service nginx reload
o
sudo service nginx restart
Si ejecuta php-fpm
, reinicie ese servicio usando el siguiente comando:
sudo service php-fpm restart
También puede reiniciar o recargar Nginx usando systemctl
en lugar de service
, como se muestra en los siguientes ejemplos:
sudo systemctl reload nginx
o
sudo systemctl restart nginx
Reinicie php-fpm
con systemctl
:
sudo systemctl restart php-fpm
Ahora ya sabe cómo deshabilitar vhosts o bloques de servidor tanto en CentOS como en el sistema operativo Ubuntu para Apache y Nginx.