XAMPPで仮想ホストを作成する方法


82

この質問は何度も聞かれていると思いますが、問題は発生していません。Zendフレームワークを構成するXAMPPを使用しています。

XAMPPはポート8081で実行されています。これは、80がいくつかのWindowsプロセスによって占有されているため、次のコードでC:/xampp/apache/config/extra/httpd-vhosts.config(またはC:/xampp/apache/conf/extra/httpd-vhosts.conf新しいリリースで)構成する仮想ホストを使用する必要があるためです。

<VirtualHost *:80>
ServerName comm-app.local
DocumentRoot "C:/xampp/htdocs/CommunicationApp/public"
SetEnv APPLICATION_ENV "development"
    <Directory "C:/xampp/htdocs/CommunicationApp/public"
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>    

また、hostsファイルを更新して127.0.0.1 comm-app.localApacheを再起動しようとしましたが、エラーが表示されています。

15:03:01  [Apache]  Error: Apache shutdown unexpectedly.
15:03:01  [Apache]  This may be due to a blocked port, missing dependencies, 
15:03:01  [Apache]  improper privileges, a crash, or a shutdown by another method.
15:03:01  [Apache]  Press the Logs button to view error logs and check
15:03:01  [Apache]  the Windows Event Viewer for more clues
15:03:01  [Apache]  If you need more help, copy and post this
15:03:01  [Apache]  entire log window on the forums

2
VirtualHost *:80をVirtualHost *:8081にするべきではありません。Apacheが実行されている場合
TommyBs 2014

4
ポート80を占有するWindowsプロセスはSkypeである可能性があります。
マレク2014

回答:


70

2つのエラーが表示されます。

<VirtualHost *:80> -> Fix to :8081, your POrt the server runs on
    ServerName comm-app.local
    DocumentRoot "C:/xampp/htdocs/CommunicationApp/public"
    SetEnv APPLICATION_ENV "development"
    <Directory "C:/xampp/htdocs/CommunicationApp/public" -> This is probably why it crashes, missing >
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
 -> MIssing close container: </VirtualHost> 

修正バージョン:

<VirtualHost *:8081>
    ServerName comm-app.local
    DocumentRoot "C:/xampp/htdocs/CommunicationApp/public"
    SetEnv APPLICATION_ENV "development"
    <Directory "C:/xampp/htdocs/CommunicationApp/public">
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

言及する1つのこと:

コマンドはいつでも試して実行できます。

service apache2 configtest

これにより、構成が正しくない場合に通知され、問題がどこにあるかがわかる場合もあります。

さらに、LIVEシステムで使用できないことを回避するのに役立ちます。

service apache2 restart

シャットダウンしてから起動に失敗します。事前に知っているこのconfigtestは「おっと、何か間違ったことをしました。最初にこれを修正する必要があります」が、apache自体はまだ古い構成で実行されています。:)


これらの修正後にApacheの実行が開始されますが、comm-app.localがサーバー上に見つからず、Not
パラスアローラ2014

ホストファイルで127.0.0.1にリダイレクトするようにcomm-app.localを設定しましたか?そして、あなたはあなたの道が正しいと確信していますか?ああ、そうしなかった場合は、VirtualHostコンテナを閉じる必要があります...(私の投稿を更新)
Steini

1
はい、ホストファイルに127.0.0.1 comm-app.localを配置し、サーバーを再起動するだけです
Paras Arora

そして、ブラウザにcomm-app.local:8081と入力しましたか?(多分ポートを忘れた)?設定を変更した後、Apacheを再起動することを忘れないでください。ただし、これでも機能しない場合は、設定ファイルに何か問題があります...
Steini 2014

こんにちは!シュタイニ。同じ問題が発生しています。仮想ホスト名の後にポート番号を入力しないようにする方法はありますか?よろしく
お願いします

62

ステップ1) C:\ WINDOWS \ system32 \ drivers \ etc \「hosts」ファイルを開きます:

127.0.0.1       localhost
127.0.0.1       test.com
127.0.0.1       example.com

ステップ2) xampp \ apache \ conf \ extra \ httpd-vhosts.conf

<VirtualHost *:80>
    DocumentRoot C:/xampp/htdocs/test/
    ServerName www.test.com
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot C:/xampp/htdocs/example/
    ServerName www.example.com
</VirtualHost>

ステップ3) C:\ xampp \ apache \ conf \ httpd.conf。最後の[補足構成]セクションまで下にスクロールし、次のセクション(500行目あたり)を見つけます。2行目の先頭から#を削除して、セクションが次のようになるようにします。

#Virtual hosts
Include conf/extra/httpd-vhosts.conf

ステップ4) XAMPPを再起動し、ブラウザーで実行します。

www.example.com or www.test.com

1
ちょっとアミット...私の設定は驚くほど機能していません...私の設定の唯一の違いは:127.0.0.4 mycustomdomainそしてそれはポート90で実行されるので私は使用しました<VirtualHost 127.0.0.4:90>。ブラウザで試してみると失敗しますhttp://mycustomdomain
JasonKrs18年

8

このコードをC:\ xampp \ apache \ conf \ extra \ httpd-vhosts.confに追加します

<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs"
ServerName qa-staging.com
ServerAlias www.qa-staging.com
<Directory "c:/xampp/htdocs">
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

次に、以下のファイルに仮想ホスト名を追加します。

C:\Windows\System32\drivers\etc\hosts

127.0.0.1 qa-staging.com

このコードをホストファイルに保存できない場合は、メモ帳を右クリックして[管理者として実行]を選択すると、カスタムコードを保存してXAMPを再起動できます。


7

これらのコードをC:\ xampp \ apache \ conf \ extra \ httpd-vhosts.confファイルの最後に記述します。

DocumentRoot "D:/xampp/htdocs/foldername"
ServerName www.siteurl.com
ServerAlias www.siteurl.com
ErrorLog "logs/dummy-host.example.com-error.log"
CustomLog "logs/dummy-host.example.com-access.log" common

仮想ホストタグ間。

System32 / Drivers / etc / hostsが管理者としてメモ帳を使用するファイルを編集します

ファイルの最後を追加

127.0.0.1    www.siteurl.com

4
<VirtualHost *:80>
    DocumentRoot "D:/projects/yourdirectry name"
    ServerName local.yourdomain.com
    <Directory "D:/projects/yourdirectry name">
        Require all granted 
    </Directory>
</VirtualHost>

Apache構成ファイルを保存します。

詳細については、こちらをご覧ください


4

ポートをに変更するだけで8081、次の仮想ホストが機能します。

<VirtualHost *:8081>
ServerName comm-app.local
DocumentRoot "C:/xampp/htdocs/CommunicationApp/public"
SetEnv APPLICATION_ENV "development"
    <Directory "C:/xampp/htdocs/CommunicationApp/public">
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory> 
</VirtualHost>

はい、それは間違いですが、これはApacheサービスの開始を妨げるものではなく、単に警告をスローし、仮想ホストは機能しません
Steini 2014

これらの修正後にApacheの実行が開始されますが、comm-app.localがサーバー上に見つからず、Not FoundHTTPエラー404が表示されます。要求されたリソースが見つかりません。
パラスアローラ2014

3

ディスクドライブ:\ xampp \ apache \ conf \ extra \ httpd-vhosts.confに例があり、構成を使用して編集できます。

 ##<VirtualHost *:80>
 ##ServerAdmin webmaster@dummy-host.example.com
 ##DocumentRoot "C:/xampp/htdocs/dummy-host.example.com"
 ##ServerName dummy-host.example.com
 ##ServerAlias www.dummy-host.example.com
 ##ErrorLog "logs/dummy-host.example.com-error.log"
 ##CustomLog "logs/dummy-host.example.com-access.log" common
 ##</VirtualHost>

例としては次のようになります。例としてstore.localプロジェクトで示すように、ローカルホスト用のVirtualHostを追加して、ポート80でphpmyadminと他のプロジェクトを同時に実行できるようにすることを忘れないでください。

<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs"
ServerName localhost
</VirtualHost>

<VirtualHost *:80>
ServerAdmin webmaster@store.local
DocumentRoot "c:/xampp/htdocs/store.local/public"
ServerName www.store.local
ServerAlias store.local
<Directory C:/xampp/htdocs/store.local>
    AllowOverride All
    Require all granted
</Directory>
</VirtualHost>

次に、上記のように、ファイルの最後にC:\ windows \ system32 \ drivers \ hostsを追加する必要 があります。

127.0.0.1    store.local
127.0.0.1    www.store.local

Apacheを再起動し、ブラウザで試してください。

store.local or www.store.local

おそらく初めて、次のように追加する必要があります。

http://store.local or http://www.store.local

他のポートを使用するには、VirtualHostの前に以下を追加する必要があります。

Listen 8081 or another which you prefer

次に、次のようにVirtualHostのポートを使用します。

<VirtualHost *:8081>
ServerAdmin webmaster@store.local
DocumentRoot "c:/xampp/htdocs/store.local/public"
ServerName store.local
ServerAlias www.store.local
<Directory C:/xampp/htdocs/store.local>
    AllowOverride All
    Require all granted
</Directory>

次に、Apacheを再起動し、ブラウザで試してください

store.local:8081 or www.store.local:8081

ポートを追加したプロジェクトのみがこのポートで実行されます。たとえば、他のプロジェクトとphpmyadminは引き続きポート80で実行されます。


2

Apache仮想ホストのドキュメント仮想ホスト(vhost)のセットアップには、いくつかの利点があります。

  • 仮想ホストはURLをよりクリーンにします–localhost / mysite対mysite.local。
  • 仮想ホストにより、アクセス許可が簡単になります。ローカルネットワーク上の単一のvhostへのアクセスを制限するのではなく、ローカルネットワーク上のすべてのサイトへのアクセスを許可します。
  • 一部のアプリケーションには「。」が必要です。URL(ahem Magento)内。Windowsホストファイルを編集してlocalhost.com/mysiteをセットアップできますが、vhostを作成する方が優れたソリューションです。

VirtualHostディレクティブ特定のホスト名またはIPアドレスにのみ適用されるディレクティブが含まれています

ロケーションディレクティブ同封のディレクティブを一致するURLにのみ適用します

構成ファイルの変更-D:\xampp\apache\conf\extra\httpd-vhosts.conf

<VirtualHost *:80>
    ServerAdmin localhost
    DocumentRoot "D:/xampp/htdocs"
    ServerName localhost
</VirtualHost>

<VirtualHost localhost:80>
  ServerAdmin webmaster@host.example.com
  DocumentRoot "/www/docs/host.example.com"
  #DocumentRoot "D:\xampp\htdocs\phpPages"
  ServerName host.example.com
  ErrorLog "logs/host.example.com-error_log"
  TransferLog "logs/host.example.com-access_log"
</VirtualHost>

# To get view of PHP application in the Browser.
<VirtualHost *:80>
    ServerAdmin postmaster@dummy-host.localhost
    DocumentRoot "D:\xampp\htdocs\app1"
    ServerName app1.yash.com
    ServerAlias app1.yash.com
    ErrorLog "logs/app1.yash.com-error.log"
    CustomLog "logs/app1.yash.com-access.log" combined
    
    # App1 communication proxy call to Java War applications from XAMP
    <Location /ServletApp1>
            ProxyPass  http://app1.yashJava.com:8080/ServletApp1
            ProxyPassReverse  http://app1.yashJava.com:8080/ServletApp1
            Order Allow,Deny
            Allow from all
    </Location>
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin postmaster@infotreesolutions.com
    DocumentRoot "D:\xampp\htdocs\app2"
    ServerName app2.yash.com
    ErrorLog "logs/app2.yash.com-error.log"
    CustomLog "logs/app2.yash.com-access.log" combined
    
    # App1 communication proxy call to Java War applications from XAMP
    <Location /ServletApp2>
            ProxyPass  http://app1.yashJava.com:8080/ServletApp2
            ProxyPassReverse  http://app1.yashJava.com:8080/ServletApp2
            Order Allow,Deny
            Allow from all
    </Location>
</VirtualHost>

WindowsHostsファイルの更新«にあるWindowsHostsファイルを開きます C:\Windows\System32\drivers\etc\hosts.

# localhost name resolution is handled within DNS itself.
#   127.0.0.1       localhost
#   ::1             localhost

127.0.0.1       test.com
127.0.0.1       example.com
127.0.0.1       myssl.yash.com

D:\xampp\apache\conf\httpd.conf, [httpd-ssl.conf](http://httpd.apache.org/docs/2.2/mod/mod_ssl.html)

# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, instead of the default. See also the <VirtualHost> directive.
# Listen 0.0.0.0:80 | [::]:80
Listen 80

LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule speling_module modules/mod_speling.so

# ServerAdmin: Your address, where problems with the server should be e-mailed.
# This address appears on some server-generated pages, such as error documents.
#  e.g. admin@your-domain.com
ServerAdmin postmaster@localhost
ServerName localhost:80
DocumentRoot "D:/xampp/htdocs"

<Directory "D:/xampp/htdocs">
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Require all granted
</Directory>

# Virtual hosts
Include "conf/extra/httpd-vhosts.conf"

# ===== httpd-ssl.conf - SSL Virtual Host Context =====
# Note: Configurations that use IPv6 but not IPv4-mapped addresses need two
#       Listen directives: "Listen [::]:443" and "Listen 0.0.0.0:443"
Listen 443
## SSL Virtual Host Context
<VirtualHost _default_:443>
    DocumentRoot "D:\xampp\htdocs\projectFolderSSL"
    ServerName myssl.yash.com:443
    ServerAlias myssl.yash.com:443
        
    ServerAdmin webmaster@localhost
    ErrorLog "logs/error.log"
    <IfModule log_config_module>
        CustomLog "logs/access.log" combined
    </IfModule>
    
    ## Redirecting URL from Web server to Application server over different machine.
    # myssl.yash.com:443/ServletWebApp
    <Location /path>
        ProxyPass  http://java.yash2.com:8444/ServletWebApp
        ProxyPassReverse  http://java.yash2.com:8444/ServletWebApp
        Order Allow,Deny
        Allow from all
    </Location>
    
    #SSLCertificateFile "conf/ssl.crt/server.crt"
    SSLCertificateFile "D:\SSL_Vendor\yash.crt"
    
    #SSLCertificateKeyFile "conf/ssl.key/server.key"
    SSLCertificateKeyFile "D:\SSL_Vendor\private-key.key"
    
    #SSLCertificateChainFile "conf/ssl.crt/server-ca.crt"
    SSLCertificateChainFile "D:\SSL_Vendor\intermediate.crt"
</VirtualHost>
# ===== httpd-ssl.conf - SSL Virtual Host Context =====

@見る


1

以下の設定で修正しました。

 Listen 85
 <VirtualHost *:85>
           DocumentRoot "C:/xampp/htdocs/LaraBlog/public"
           <Directory "C:/xampp/htdocs/CommunicationApp/public">
           DirectoryIndex index.php
           AllowOverride All
           Order allow,deny
           Allow from all
           </Directory>
 </VirtualHost>

0

私はパーティーに少し遅れていますが、ターミナルを介してVirtualHostを作成するMac用のこの小さなbashスクリプトを作成しました。

#!/bin/bash

echo "Welcome to the VirtualHostCreator! Press <RETURN> to continue."

read

echo "Enter the name the VirtualHost you would like to create. No spaces or dashes, please."

read hostname

echo "Enter the document root of the VirtualHost."

read doc_root

echo "Creating VirtualHost \"$hostname\". You may be prompted for your password."

hosts_file="/etc/hosts"
vhosts_file="/Applications/XAMPP/xamppfiles/etc/extra/httpd-vhosts.conf"
restart_command="sudo /Applications/XAMPP/xamppfiles/xampp restart"

cat >> $vhosts_file << EndOfMessage
<VirtualHost ${hostname}>
    ServerName ${hostname}
    DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs/${doc_root}"
</VirtualHost>
EndOfMessage

sudo sh -c "echo \"127.0.0.1       $hostname\" >> $hosts_file"

$restart_command

いくつかの改善が可能であり、vhostに必要な2つのオプション(サーバー名とドキュメントルート)しかありませんが、すべてのファイルを開いて編集するよりもはるかに迅速かつ効率的に作業を行います手動で、またその後自動的にXAMPPを再起動します。

これは、XAMPPのデフォルトのインストール場所があり、すべて変更できることを前提としています。


0

手順1)「C:\ Windows \ System32 \ drivers \ etc」の下にあるホストファイルを開きます

追加

127.0.0.1  vipsnum.mk

ステップ2)「C:\ xampp \ apache \ conf \ extra」の下にあるhttpd-vhosts.confファイルを開きます

追加

<VirtualHost vipsnum.mk:80>
    ServerName vipsnum.mk
    DocumentRoot "C:/xampp/htdocs/vipnum/"
    SetEnv APPLICATION_ENV "development"
    <Directory "C:/xampp/htdocs/vipnum/">
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost> 

0
1. C:\xampp\apache\conf\https.conf
Virtual hosts
Include conf/extra/httpd-vhosts.conf


2. C:\Windows\System32\drivers\etc\hosts
127.0.0.1       localhost
127.0.0.1       helpdesk.local


3. C:\xampp\apache\conf\extra\httpd-vhosts.conf
<VirtualHost *:80>
    DocumentRoot "C:/xampp/htdocs/helpdesk/public"
    ServerName helpdesk.local
</VirtualHost>


Now, Restart Apache and go through the link. 
URL : http://helpdesk.local

0

私の場合のxamppの問題は、htdocs以外の別のフォルダーを指定する場合、特に複数のドメインと専用フォルダーで使用される場合です。これは、httpd-ssl.confも参照しているためです<VirtualHost>

これを行うには、<VirtualHost>下のエントリ全体を削除しますhttpd-ssl.conf

そこから、で行う設定は、httpd-vhosts.conf期待どおりに更新されhttphttps参照も更新されます。


0

私はかなり長い間解決策を探していました。そして最後に私は答えを持っています。仮想ホストがWindows10や7などで機能していない場合は、この新しいhttpsの誇大宣伝が原因で、すべてのサイトがhttpsにルーティングされます。

XAMPPも同じ傾向に従うため、httpsリダイレクトが厳密であるため、仮想ホスト、hostsファイルなどを修正するだけでは不十分です。これが完全な解決策です。

私の希望するサイトはD:\ xampp \ htdocs \ ikeenにあります。

1)これをhttpd-vhosts.confに追加します。

<VirtualHost *:80>
     ServerName localhost
     DocumentRoot "D:\xampp\htdocs"
     <Directory "D:\xampp\htdocs">
         DirectoryIndex index.php
     </Directory>
 </VirtualHost>

<VirtualHost *:80>
     ServerName ikeen.localhost
     DocumentRoot "D:\xampp\htdocs\ikeen"
     SetEnv APPLICATION_ENV "development"
     <Directory "D:\xampp\htdocs\ikeen">
         DirectoryIndex index.php
         AllowOverride All
         Order allow,deny
         Allow from all        
     </Directory>
 </VirtualHost>

2)これをhttpd.confの最後に追加します。

<Directory />
    AllowOverride none
    Require all granted
</Directory>

3)この行をWindowsディレクトリのhostsファイルに追加します

127.0.0.1      ikeen.localhost

4)最後のステップは、httpd-ssl.confファイルのVirtualHostセクションを次のように変更することです。

<VirtualHost _default_:443>

#   General setup for the virtual host
DocumentRoot "D:/xampp/htdocs"
#ServerName www.example.com:443
ServerName localhost
ServerAdmin admin@example.com
ErrorLog "D:/xampp/apache/logs/error.log"
TransferLog "D:/xampp/apache/logs/access.log"

#   General setup for the ikeen host
DocumentRoot "D:/xampp/htdocs/ikeen"
#ServerName www.example.com:443
ServerName ikeen.localhost
ServerAdmin admin@example.com
ErrorLog "D:/xampp/apache/logs/error.log"
TransferLog "D:/xampp/apache/logs/access.log"

再起動して幸せになりましょう:)


-1

以下の設定をhttpd.confに追加し、lamppサービスを再起動すると、動作を開始しました。上記のすべての投稿に感謝します。問題を1つずつ解決するのに役立ちました。

Listen 8080
<VirtualHost *:8080>
    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "/opt/lampp/docs/dummy-host2.example.com"
    ServerName localhost:8080
    ErrorLog "logs/dummy-host2.example.com-error_log"
    CustomLog "logs/dummy-host2.example.com-access_log" common
    <Directory "/opt/lampp/docs/dummy-host2.example.com">
        Require all granted 
    </Directory>
</VirtualHost>

-1

シンプル、 以下のテンプレートを見て、それに応じて使用できます。仮想ホストを作成することは非常に一般的で、非常に簡単です。確かに以下のテンプレートが機能します。

<VirtualHost *:8081>
DocumentRoot "C:/xampp/htdocs/testsite"
ServerName testsite.loc
ServerAlias www.testsite.loc
<Directory "c:/xampp/htdocs/testsite">
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

また、仮想ホストの詳細については、このサイトにアクセスしてください。 http://www.thegeekstuff.com/2011/07/apache-virtual-host

ありがとう、

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.