Co když potřebujete deaktivovat web, ale nevíte jak? Je to jednodušší, než si možná myslíte. Než začnete, mějte při čtení tohoto článku na paměti následující:
-
Blok vašeho virtuálního hostitele (vhost) serveru může mít jiný název než domena.com.conf . Můžete například použít httpd.conf nebo ssl.conf . V takovém případě nahraďte domena.com.conf s názvem vašeho konfiguračního souboru.
-
Tento článek používá vhosts nebo bloky serveru v některých příkladech, které používají port 80 a nejsou to Secure Sockets Layer (SSL). Všimněte si, že tyto kroky se neliší, pokud váš vhost nebo serverový blok je vhost nebo serverový blok s povoleným SSL, který používá port 443. Kroky jsou stejné.
Operační systém Ubuntu a Apache
Začněme tím nejjednodušším. Ubuntu® přichází se dvěma příkazy speciálně pro správu vhostů v Apache®. Chcete-li povolit vhost, použijte následující příkaz:
sudo a2ensite /etc/apache2/sites-available/domain.com.conf
Když pochopíte, co tato sbírka písmen a čísel znamená v a2ensite
, pak je snazší si zapamatovat, jak povolit nebo zakázat Apache vhost v Ubuntu.
Zde je rozpis příkazu:
- a2 :apache2 (co Ubuntu nazývá Apache)
- cs :povolit
- web :virtuální hostitel webu
Chcete-li deaktivovat svůj web, použijte a2dissite
příkaz, jak ukazuje následující příklad:
sudo a2dissite /etc/apache2/sites-enabled/domain.com.conf
Tento příkaz má následující součásti:
- a2 :apache2 (co Ubuntu nazývá Apache)
- dis :zakázat
- web :virtuální hostitel webu
Všimněte si také rozdílu v adresářových cestách mezi a2ensite
a a2dissite
. Pokud chcete povolit virtuálního hostitele pro Apache v Ubuntu, můžete tak učinit z webů-dostupných adresář. Když chcete deaktivovat virtuálního hostitele v Ubuntu, můžete tak učinit z povolených webů adresář.
Po zakázání virtuálního hostitele použijte následující příkaz k ověření syntaxe konfigurace Apache:
apache2ctl -t
Očekávaná odpověď:
Syntax OK
Chcete-li restartovat nebo znovu načíst Apache, spusťte jeden z následujících příkazů:
service apache2 restart
nebo
service apache2 reload
restart
úplně stáhne Apache a reload
hladce spustí novou službu Apache před zastavením původní služby. Obvykle chcete znovu načíst, než restartovat, když máte možnost.
Operační systém Ubuntu a Nginx
Zakázání bloku serveru Nginx® (co Nginx nazývá vhosts) je trochu jiné. Nginx používá symbolické odkazy k povolení nebo zakázání bloků serveru. Apache vhosts mohou také používat symbolické odkazy, ale a2ensite
a a2dissite
nefungují pro Nginx.
Chcete-li zakázat blokování serveru v Nginx v Ubuntu, musíte odstranit symbolický odkaz mezi povolenými weby a stránky-dostupné , jak ukazuje následující příklad:
sudo rm /etc/nginx/sites-enabled/domain.com.conf
Příkaz odstraní symbolický odkaz pro váš web, domena.com . Pomocí následujícího příkazu ověřte syntaxi Nginx:
nginx -t
Očekávaná odpověď:
nginx: the configuration file <file-path> syntax is ok
nginx: configuration file <file-path> test is successful
Cesta k souboru se zobrazí v zástupném symbolu
service nginx reload
nebo
service nginx restart
Stejně jako dříve, kdykoli k tomu budete mít možnost, použijte reload
spíše než restart
abyste nenarušili žádné další webové stránky, které máte.
Poznámka :Pokud spustíte php-fpm
, musíte restartovat i tuto službu pomocí následujícího příkazu:
service php-fpm restart
CentOS a Apache
Deaktivace virtuálního hostitele v Apache v CentOS® je složitější, protože CentOS nemá jednoduchý příkaz k použití. V CentOS musíte ručně zakomentovat vhost, kterého chcete zakázat.
Zde je příklad domény.com vhost pro Apache v CentOS:
<VirtualHost *:80>
ServerName domain.com
ServerAlias www.domain.com
DocumentRoot /var/www/vhosts/domain.com/public
</VirtualHost>
Najděte tohoto virtuálního hostitele pomocí následujícího příkazu:
httpd -S | grep domain.com
Výstup zobrazuje umístění virtuálního hostitele, které je podobné následujícímu výstupu:
/etc/httpd/vhost.d/domain.com.conf
V závislosti na vašem konkrétním nastavení může předchozí výstup vypadat jinak. Cesta, kterou hledáte, by však měla končit podobně jako domena.com.conf .
Až budete mít umístění virtuálního hostitele, otevřete konfigurační soubor vhost pomocí oblíbeného textového editoru. Zde jsou dva příklady použití vim
a nano
:
sudo vim /etc/httpd/vhost.d/domain.com.conf
nebo
sudo nano /etc/httpd/vhost.d/domain.com.conf
Upravte konfigurační soubor a přidejte před každý řádek pro položku vhost znak křížku (#). Pokud používáte vim
, zadejte Vložit nejprve režim. Vaše konfigurace vhost by nyní měla vypadat takto:
#<VirtualHost *:80>
# ServerName domain.com
# ServerAlias www.domain.com
# DocumentRoot /var/www/vhosts/domain.com/public
#</VirtualHost>
Uložte soubor a ukončete textový editor.
Nyní musíte zkontrolovat syntaxi Apache pomocí následujícího příkazu:
httpd -t
Očekávaná odpověď:
Syntax OK
Nakonec buď znovu načtěte nebo restartujte Apache. Pokud používáte CentOS 7 nebo novější, můžete použít systemctl
pro tento příkaz. V opačném případě použijte service
. Následující příklady ukazují oba příkazy:
Pomocí service
:
sudo service httpd reload
nebo
sudo service httpd restart
Pomocí systemctl
:
sudo systemctl reload httpd
nebo
sudo systemctl restart httpd
Poznámka :Zatímco systemctl
funguje pouze v CentOS 7 nebo novějším, tyto verze také podporují service
,pokud je to jednodušší. Systém odkazuje na systemctl
automaticky.
Stejný proces funguje také pro SSL, port 443, vhosts.
Stejně jako dříve, pokud máte možnost, použijte reload
spíše než restart
.
CentOS a Nginx
Nginx označuje vhosts jako serverové bloky. Pro komentování bloků serveru pro Nginxin CentOS použijte stejný proces, jaký jste použili pro Apache.
Nejprve však musíme najít blok serveru, který chceme zakázat. Učiníte tak pomocí následujícího příkazu:
nginx -T | grep domain.com
Opět hledejte cestu končící na .conf pro vaši doménu. Vypadá to podobně jako v následujícím příkladu:
/etc/nginx/conf.d/domain.com.conf
Nyní tento soubor otevřete ve svém oblíbeném textovém editoru pomocí jednoho z následujících příkazů:
sudo vim /etc/nginx/conf.d/domain.com.conf
nebo
sudo nano /etc/nginx/conf.d/domain.com.conf
Soubor vypadá podobně jako v následujícím příkladu:
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;
}
}
Měli byste zakomentovat celý tento blok serveru. Pokud používáte vim
, ujistěte se, že jste v Vložit nejprve režim. Váš blok serveru by měl vypadat takto:
#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;
# }
#}
Uložte soubor a ukončete textový editor.
Nyní zkontrolujte syntaxi Nginx pomocí následujícího příkazu:
nginx -t
Očekávaná odpověď:
nginx: the configuration file <file-path> syntax is ok
nginx: configuration file <file-path> test is successful
Cesta k souboru se zobrazí v zástupném symbolu
sudo service nginx reload
nebo
sudo service nginx restart
Pokud spustíte php-fpm
, restartujte tuto službu pomocí následujícího příkazu:
sudo service php-fpm restart
Nginx můžete také restartovat nebo znovu načíst pomocí systemctl
místo service
, jak je znázorněno v následujících příkladech:
sudo systemctl reload nginx
nebo
sudo systemctl restart nginx
Restartujte php-fpm
pomocí systemctl
:
sudo systemctl restart php-fpm
Nyní víte, jak deaktivovat vhosts nebo serverové bloky v CentOS i operačním systému Ubuntu pro Apache a Nginx.