仮想ホストの作成を自動化する

良い一日!



開発プロセスでは、常に日常的な操作を自動化し(またはそのように思えます)、本当に興味深いことを直接進めたいと考えています。 私はWeb開発者であるため、環境の展開は常にこのような操作でした。 今日は、ローカルマシンで新しいプロジェクトの新しいホストを作成するタスクを簡素化しようとします。



Apacheのホストの手動作成に苦しみ、XAMPPやDenwerのような既製のパッケージを使用するという希望/機会/オプションがない場合は、猫をお願いします。





もちろん、Apacheが必要です。 ダウンロードしてインストールします。 次は魔法です:



大量の仮想ホスト



まず、すべてのプロジェクトが存在するフォルダーを選択し、Apacheで使用できるようにします。 それをd:/サイトとします (私はWindowsを使用しているので、すべての例がそのためになりますが、Linuxでも動作するはずです):



<Directory d:/sites> Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory>
      
      







次に、新しいホストを作成するプロセスを自動化します。 このためには、Apacheのmod_vhost_aliasモジュールを有効にして、構成ファイルに2行のみを追加する必要があります。



  NameVirtualHost *:80 VirtualDocumentRoot d:/sites/%-2
      
      







キー%-2は、リクエストURLの最後から2番目の部分を取得し、リクエストをd:/ sitesのサブフォルダーに送信するようApacheに指示します 。 サブドメインがボーナスとして機能する方法。 いくつかの例:



  http://test.local -> d:/sites/test http://qwerty.local -> d:/sites/qwerty http://a.domain.local -> d:/sites/domain
      
      







可能なキーの詳細については、ドキュメントページを参照してください



発言。 このホスト構成では、mod_rewriteは機能しません。 問題の修正は非常に簡単です。「RewriteBase /」を指定するだけです。 結果は次のようになります。

 <IfModule mod_rewrite.c> RewriteEngine on RewriteBase / # Your rewrite rules go next </IfModule>
      
      







DNS自動構成





ホストファイルはワイルドカード(*)をサポートしていないため、最適な解決策は、ルーターに新しい* .localゾーン(存在する場合)を登録することです。 ルーターがない場合は、追加のソフトウェアを使用して問題を回避できます。





毎回新しいホストを手動で登録しないために、ローカルDNSプロキシを設定できます。 アクリルDNSプロキシを使用しています 。 プログラムは小さく、非常に使いやすいです。

  1. インターネット接続のプロパティで、DNSアドレスを127.0.0.1に変更します
  2. アクリル設定ファイルを編集します: Programs \ Acrylic DNS Proxy \ Config \ Edit Configuration File 。 ドメイン名がキャッシュにない場合にAcrylicが使用するプロバイダーのDNSサーバーまたは利用可能な他のサーバー(Google DNS 8.8.8.8など)を指定する必要があります。
  3. 編集プログラム\アクリルDNSプロキシ\構成\カスタムホストファイルの編集 。 アクリルはアスタリスクを理解します。 やった! 個人的には、 *を使用しています。 地元の
  4. キャッシュをクリアして、アクリルを再起動します。Programs\ Acrylic DNS Proxy \ Config \ Purge Acrylic Cache Data




Linux


同じ目的でDnsmasqがあります( Anonymに感謝)。 /etc/dnsmasq.confを編集します 。 * .localゾーンの場合、次を追加する必要があります。



 address=/local/127.0.0.1 listen-address=127.0.0.1
      
      





変更を保存し、Dnsmasqを再起動します。



ボーナス:メール設定



Windowsには組み込みのsendmailはありません。 私は小さなTest Mail Server Toolを使用します。これは単にフォルダーに文字を入れるだけです。



All Articles