「標準」の指示に従って、次のことを行うことが提案されています。
- サイトのフォルダーを作成する
- 将来のドメインの名前で構成ファイルを作成します
- 特別なオプションでサイトを有効にします
- Apacheをリロードする
- 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 )としてアクセスできます。
独自のホスト名選択オプションを設定することもできます。
- %0氏名
- %1名前の最初の部分
- %2名前の2番目の部分
- %3名前の3番目の部分
- %-1最後の部分
- %-2最後から2番目の部分
- %2 + 2番目以降のすべての部分
- %-2 +最後から2番目とそれ以降のすべての部分
Apacheを再起動します。
sudo service apache2 restart
サーバーは既に実行中です。 これを確認するには、目的の名前のフォルダーを作成します。たとえば、 testとindex.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の操作に関する注意事項がいくつかあります。
- 変数$ _SERVER ['DOCUMENT_ROOT']は誤ったデータを提供するため、 dirname(__ FILE__)またはrealpath()を使用する必要があります。 必要なものに依存します。
- mod_rewriteが機能しなくなっても、パニックに陥らないでください。 行の後の.htaccessファイル
RewriteEngine on
挿入
RewriteBase /
関連リンク:
httpd.apache.org/docs/2.0/en/vhosts/mass.html
www.softtime.ru/info/apache.php?id_article=103
PS親切に提供されたバインド構成についてWottに感謝します。