ローカルホストに手間をかけないApacheのマルチドメイン

インターネットには、Apacheで仮想ホストをセットアップするためのガイドがたくさんあります。 しかし、ほとんどの場合、そのようなサブドメインの作成は面倒な問題です。
「標準」の指示に従って、次のことを行うことが提案されています。
  1. サイトのフォルダーを作成する
  2. 将来のドメインの名前で構成ファイルを作成します
  3. 特別なオプションでサイトを有効にします
  4. Apacheをリロードする
  5. hostsファイルにドメインを登録します

さまざまなスクリプトを使用してこのプロセスを最適化しようとする人もいますが、これは本質的には問題を解決しません。
そのため、サブドメインを作成するプロセスが、サイトのフォルダーを作成することだけに削減されるようにしましょう。 これは可能ですか? 確認する...
LAMPのインストール方法については説明しません。目を閉じたままでできる可能性が高いからです(笑)。 最も興味深いものに移りましょう。

Vhost_alias設定


vhost_aliasモジュールをオンにします。 彼は主人公になります。
sudo a2enmod vhost_alias 

必要に応じて、 mod_rewriteを含めます。
 sudo a2enmod rewrite 

httpd.confファイルを開き、直接構成を続行します。
 #       UseCanonicalName Off #   ,        LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon CustomLog /home/%username%/web/access_log vcommon #    mod_rewrite <Directory /home/%username%/web> Options FollowSymLinks AllowOverride All </Directory> #  ,        VirtualDocumentRoot /home/%username%/web/%-2 

%-2は、ドメイン名の最後から2番目の部分によってホストが選択されることを意味します。 言い換えれば、ディレクトリ/ home /%username%/ web / habrahabrを作成することで、 habrahabr.ru (またはhabrahabr.com 、さらにはhabrahabr.xxx )としてアクセスできます。
独自のホスト名選択オプションを設定することもできます。

Apacheを再起動します。
 sudo service apache2 restart 

サーバーは既に実行中です。 これを確認するには、目的の名前のフォルダーを作成します。たとえば、 testindex.phpにコンテンツ(たとえば、「 <?Php phpinfo();?>)を入れます
そうそう、まだ/ etc / hostsファイルにドメインを登録する必要があります
 127.0.0.1 test.loc 

これで、ブラウザでページを開くことができます。
やめて、同意しませんでした! サイトの作成は、そのためのディレクトリの作成に減らされるべきです。 それでは、やってみましょう...

DNSサーバーのセットアップ


このために、 bind9 DNSサーバーを使用します。 サフィックス* .locが付いたすべてのドメインは、ローカルマシンを参照します。
DNSサーバーをインストールする
 sudo apt-get install bind9 

named.conf.options構成ファイルを開き、追加します
 acl "home" {192.168.1.0/24; 127.0.0.1;}; options { directory "/var/cache/bind"; auth-nxdomain no; listen-on-v6 { none; }; listen-on { 127.0.0.1; }; allow-transfer { none; }; allow-query {"home";}; forward first; #  DNS-  forwarders { 192.168.1.2; 8.8.8.8; }; }; 

ドメインゾーン用のファイルを作成します。
 cd /etc/bind/ sudo touch db.loc 

Db.locコンテンツ
 $TTL 86400 $ORIGIN loc. @ IN SOA skywrtr.loc. admin.skywrtr.loc. ( 2010050100; Serial 14400; Refresh 7200; Retry 3600000; Expire 86400 ); Minimum @ IN NS localhost. * IN A 127.0.0.1 


最後に、 named.conf.localファイルを開いてそこに追加します
 zone "loc" { type master; file "/etc/bind/db.loc"; allow-transfer { 127.0.0.1; }; notify no; }; 


DNSサーバーに接続したままにします。 または/etc/resolv.confファイルを使用して、行を追加します
 nameserver 127.0.0.1 

または標準のネットワーク接続マネージャーを介して。 接続プロパティの[IPv4設定]タブで、[DNSサーバー]フィールドにアドレス127.0.0.1を追加します。



便宜上、phpmyadminのローカルホストを作成します
 ln -s /usr/share/phpmyadmin/ /home/alex/web/phpmyadmin 

phpmyadmin.locで利用できるようになりました。

いくつかのメモ


vhost_aliasの操作に関する注意事項がいくつかあります。


関連リンク:
httpd.apache.org/docs/2.0/en/vhosts/mass.html
www.softtime.ru/info/apache.php?id_article=103

PS親切に提供されたバインド構成についてWottに感謝します。

Source: https://habr.com/ru/post/J129900/


All Articles