メインコンテンツに移動

メインナビゲーション

  • ホーム
  • サイトマップ
  • ビデオ
  • ご連絡

パンくず

  • ホーム
  • Apacheの仮想ホスト設定で複数のサイトを別々のディレクトリに指定

Apacheの仮想ホスト設定で複数のサイトを別々のディレクトリに指定

apache
windows
apache
html
windows

やりたいこと:複数のサイトをApacheのDocumentRootにある別々のディレクトリに関連付けして設定したいです

  • Windows10のOS、XAMMP5.6.8でローカルサーバー環境を構築しています
    • ApacheのDocumentRoot: C:\develop\sources\php
  • ローカルに複数のテストサイト(wp.local, ligare.local, drills.local)の対応するPHPソースが違います
    • wp.local -> php/wordpress
    • ligare.local -> php/ligare  (drupal共有ソース)
    • drills.local -> php/ligare (drupal共有ソース)

Windowsのhostsファイルでローカルドメイン名とApacheのDocumentRootに関連付けます

  • 複数のローカルサイトのドメイン名をWindowsのhostsファイル(C:\Windows\System32\drivers\etc\hots)でローカルウェブサーバー(Apache)のDocumentRootに関連付けます
    127.0.0.1 drills.local
    127.0.0.1 ligare.local
    127.0.0.1 wp.local
  • すべてのローカルサイトのドメインを同じフォルダ(DocumentRoot)に関連付けます

Apacheの仮想ホスト設定でそれぞれのドメインをディレクトリに関連付けます

  • 仮想ホスト設定(apache/conf/extra/httpd-vhosts.conf)ファイルで各ドメイン名をそれぞれのディレクトリに関連付けます
    <VirtualHost *:80>
        ServerName drills.local
        DocumentRoot C:/develop/sources/php/ligare
        ServerAdmin root@drills
     
        <Directory "C:/develop/sources/php/ligare">
            Options All
            AllowOverride All
            Order Allow,Deny
            Allow from all
        </Directory>
    </VirtualHost>
    
    <VirtualHost *:80>
        ServerName ligare.local
        DocumentRoot C:/develop/sources/php/ligare
        ServerAdmin root@drills
     
        <Directory "C:/develop/sources/php/ligare">
            Options All
            AllowOverride All
            Order Allow,Deny
            Allow from all
        </Directory>
    </VirtualHost>
    
    <VirtualHost *:80>
        ServerName wp.local
        DocumentRoot C:/develop/sources/php/wordpress
        ServerAdmin root@drills
     
        <Directory "C:/develop/sources/php/wordpress">
            Options All
            AllowOverride All
            Order Allow,Deny
            Allow from all
        </Directory>
    </VirtualHost>
  • 全体的な設定イメージは以下のよう

Drupal共有ソース利用の場合、sitesディレクトリの下にそれぞれのディレクトに関連付けます

  • 共有ソースのDrupal(例:ここはphp/ligareディレクトリ)では複数のサイトの構築が可能
  • 詳細な設定は「Drupalのソースを共有する複数サイトの構築」を参考してください
drupal
customization
development
module usage

やりたいこと:一つDrupalのソースで複数のサイト(複数のドメイン)を構築したいです

  • Drupalを用いて複数のサイト(ドメイン)を構築する場合、一つサイト(ドメイン)ごとに一つのDrupalソースで構築することがもちろん問題はありません
  • Drupalソースが分散すると、バージョンアップ、バグ管理などの作業が大変になります
  • 当然一つのDrupalソースの元で複数のサイト(ドメイン)の構築が必要となります
    • 一ドメイン ⇒ Drupalソース ⇒ 共有DB
    • 一ドメイン ⇒ Drupalソース ⇒ 独立DB
  • Drupalでは複数のサイト(ドメイン)への対応をしています

sitesディレクトリの下にドメインごとの子ディレクトリを作成してマルティサイトを構築します

  • 複数のドメイン名をDrupalのルートディレクトリに同期します(例:シンボリックリンクでドメイン名をディレクトリと同期します)
    • 例: old-pine.net をDrupalのルートディレクトリにシンボリックリンクで同期します
  • Drupalのルートディレクトリの下に sites ディレクトリがあります。sitesの下に各メイン名に同期したいディレクトリを作成します
    • 例:sites/pine を作成します
  • sites/sites.phpファイルでドメイン名をディレクトと同期設定を行います
    • 例: 'old-pine.net' => 'pine'  (書き方: ドメイン名 => ディレクトリ名)
       $sites = array(
          'old-pine.net' => 'pine',
       );
      
  • 新規作成したディレクトの下にサイトのインストール設定ファイル(settings.php)の作成
    • 例:sites/pine/settings.phpを作成します
    • settings.phpの内容はsites/pine/default.settings.phpのコピーで良いです(サイト新規作成する場合)
  • 追加したドメイン名でサイトをアクセスして、新規サイトができたことを確認します
ホーム

古松

検索

Article Category

  • apache(7)
  • css(19)
  • drupal(295)
  • Electron(4)
  • html(34)
  • javascript(27)
  • laravel(4)
  • linux(5)
  • macOS(2)
  • mysql(13)
  • php(19)
  • python(4)
  • SEO(12)
  • video(72)
  • Visual Studio Code(4)
  • windows(13)
  • wordpress(32)