Webサイトを無効にする必要があるが、その方法がわからない場合はどうなりますか?思ったより簡単です。始める前に、この記事を読むときは次の点に注意してください。
-
仮想ホスト(vhost)サーバーブロックのタイトルが domain.com.conf以外である可能性があります 。たとえば、 httpd.confを使用できます またはssl.conf 。その場合は、 domain.com.confを置き換えてください 構成ファイル名を使用します。
-
この記事では、ポート80を使用し、Secure Sockets Layer(SSL)ではないいくつかの例でvhostsまたはサーバーブロックを使用しています。 vhostまたはサーバーブロックがポート443を使用するSSL対応のvhostまたはサーバーブロックである場合、これらの手順に違いはないことに注意してください。手順は同じです。
UbuntuオペレーティングシステムとApache
最も簡単なものから始めましょう。 Ubuntu®には、Apache®で仮想ホストを管理するための2つのコマンドが付属しています。仮想ホストを有効にするには、次のコマンドを使用します。
sudo a2ensite /etc/apache2/sites-available/domain.com.conf
a2ensite
での文字と数字のコレクションの意味を理解したとき 、UbuntuでApache仮想ホストを有効または無効にする方法を覚えておくと簡単です。
コマンドの内訳は次のとおりです。
- a2 :apache2(UbuntuがApacheと呼んでいるもの)
- en :有効にする
- サイト :ウェブサイト仮想ホスト
ウェブサイトを無効にするには、 a2dissite
を使用します 次の例に示すように、コマンド:
sudo a2dissite /etc/apache2/sites-enabled/domain.com.conf
このコマンドには次のコンポーネントがあります。
- a2 :apache2(UbuntuがApacheと呼んでいるもの)
- dis :無効にする
- サイト :ウェブサイト仮想ホスト
また、 a2ensite
間のディレクトリパスの違いにも注意してください。 およびa2dissite
。 UbuntuでApacheの仮想ホストを有効にする場合は、サイトで利用可能から有効にします。 ディレクトリ。 Ubuntuで仮想ホストを無効にする場合は、サイト対応から無効にします。 ディレクトリ。
仮想ホストを無効にした後、次のコマンドを使用して、Apache構成の構文を確認します。
apache2ctl -t
期待される応答:
Syntax OK
Apacheを再起動またはリロードするには、次のいずれかのコマンドを実行します。
service apache2 restart
または
service apache2 reload
再起動コード> Apacheを完全にダウンさせ、
リロード
元のサービスを停止する前に、新しいApacheサービスをシームレスに開始します。通常、オプションがある場合は、再起動するのではなく、リロードする必要があります。
UbuntuオペレーティングシステムとNginx
Nginx®サーバーブロック(Nginxがvhostsと呼ぶもの)を無効にすることは少し異なります。 Nginxはシンボリックリンクを使用してサーバーブロックを有効または無効にします。 Apache vhostsもシンボリックリンクを使用できますが、 a2ensite
およびa2dissite
Nginxでは機能しません。
UbuntuのNginxでサーバーブロックを無効にするには、サイト対応間のシンボリックリンクを削除する必要があります およびサイト-利用可能 、次の例に示すように:
sudo rm /etc/nginx/sites-enabled/domain.com.conf
このコマンドは、Webサイト domain.comのシンボリックリンクを削除します 。次のコマンドを使用して、Nginx構文を確認します。
nginx -t
期待される応答:
nginx: the configuration file <file-path> syntax is ok
nginx: configuration file <file-path> test is successful
ファイルパスウェイが
service nginx reload
または
service nginx restart
以前と同様に、そうするオプションがあるときはいつでも、 reload
を使用してください restart
ではなく 所有している他のWebサイトを中断しないようにします。
注 : php-fpm
を実行した場合 、次のコマンドを使用して、そのサービスも再起動する必要があります。
service php-fpm restart
CentOSとApache
CentOSには使いやすいコマンドがないため、CentOS®のApacheで仮想ホストを無効にするのはより複雑です。 CentOSでは、無効にする仮想ホストを手動でコメントアウトする必要があります。
これがdomain.comの例です CentOSでのApacheの仮想ホスト:
<VirtualHost *:80>
ServerName domain.com
ServerAlias www.domain.com
DocumentRoot /var/www/vhosts/domain.com/public
</VirtualHost>
次のコマンドを使用して、この仮想ホストを見つけます。
httpd -S | grep domain.com
出力には、仮想ホストの場所が表示されます。これは、次の出力のようになります。
/etc/httpd/vhost.d/domain.com.conf
特定の設定に応じて、前の出力は異なって見える場合があります。ただし、探している経路は domain.com.confと同様に終了する必要があります 。
仮想ホストの場所を取得したら、お気に入りのテキストエディターでvhost構成ファイルを開きます。 vim
を使用した2つの例を次に示します。 およびnano
:
sudo vim /etc/httpd/vhost.d/domain.com.conf
または
sudo nano /etc/httpd/vhost.d/domain.com.conf
構成ファイルを編集し、vhostエントリの各行の前にポンド記号(#)を追加します。 vim
を使用している場合 、挿入と入力します 最初にモード。これで、仮想ホストの構成は次のようになります。
#<VirtualHost *:80>
# ServerName domain.com
# ServerAlias www.domain.com
# DocumentRoot /var/www/vhosts/domain.com/public
#</VirtualHost>
ファイルを保存して、テキストエディタを終了します。
次に、次のコマンドを使用してApache構文を確認する必要があります。
httpd -t
期待される応答:
Syntax OK
最後に、Apacheをリロードまたは再起動します。 CentOS 7以降を使用している場合は、 systemctl
を使用できます。 このコマンドの場合。それ以外の場合は、 service
を使用してください 。次の例は、両方のコマンドを示しています。
service
の使用 :
sudo service httpd reload
または
sudo service httpd restart
systemctl
を使用する :
sudo systemctl reload httpd
または
sudo systemctl restart httpd
注 : systemctl
の間 CentOS 7以降でのみ機能し、これらのバージョンは service
もサポートします 、それが簡単な場合。システムはsystemctl
にリンクしています 自動的に。
これと同じプロセスがSSL、ポート443、vhostsでも機能します。
以前と同様に、オプションがある場合は、 reload
を使用します restart
ではなく 。
CentOSとNginx
Nginxはvhostsをサーバーブロックと呼びます。 Apacheに使用したのと同じプロセスを使用してNginxinCentOSのサーバーブロックをコメントアウトします。
ただし、最初に、無効にするサーバーブロックを見つける必要があります。これを行うには、次のコマンドを使用します。
nginx -T | grep domain.com
繰り返しますが、 .confで終わる経路を探します あなたのドメインのために。次の例のようになります。
/etc/nginx/conf.d/domain.com.conf
次に、次のいずれかのコマンドを使用して、お気に入りのテキストエディタでそのファイルを開きます。
sudo vim /etc/nginx/conf.d/domain.com.conf
または
sudo nano /etc/nginx/conf.d/domain.com.conf
ファイルは次の例のようになります。
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;
}
}
このサーバーブロック全体をコメントアウトする必要があります。 vim
を使用している場合 、挿入にいることを確認してください 最初にモード。サーバーブロックは次のようになります。
#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;
# }
#}
ファイルを保存して、テキストエディタを終了します。
次に、次のコマンドを使用してNginx構文を確認します。
nginx -t
期待される応答:
nginx: the configuration file <file-path> syntax is ok
nginx: configuration file <file-path> test is successful
ファイルパスウェイが
sudo service nginx reload
または
sudo service nginx restart
php-fpm
を実行する場合 、次のコマンドを使用してそのサービスを再起動します:
sudo service php-fpm restart
systemctl
を使用して、Nginxを再起動またはリロードすることもできます service
の代わりに 、次の例に示すように:
sudo systemctl reload nginx
または
sudo systemctl restart nginx
php-fpm
を再起動します systemctl
を使用 :
sudo systemctl restart php-fpm
これで、CentOSとApacheおよびNginxのUbuntuオペレーティングシステムの両方でvhostまたはサーバーブロックを無効にする方法がわかりました。