XAMPP에서 가상 호스트를 만드는 방법


82

이 질문이 여러 번 제기되고 있다고 확신하지만 문제가 발생하지 않습니다. Zend 프레임 워크를 구성하는 XAMPP를 사용하고 있습니다.

XAMPP이 실행되고 포트 808180 것은 내가 코드를 다음과 같이 그 I의 구성에 대한 가상 호스트를 사용할 필요가 일부 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>    

또한 호스트 파일을 업데이트하고 127.0.0.1 comm-app.local아파치를 다시 시작하려고 시도하지만 오류가 표시됩니다.

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이
되어서

4
포트 80을 차지하는 Windows 프로세스는 Skype 일 수 있습니다.
Marek

답변:


70

두 가지 오류가 있습니다.

<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>

한 가지 언급 할 사항 :

언제든지 다음 명령을 시도하고 실행할 수 있습니다.

service apache2 configtest

이것은 잘못된 구성을 받았을 때 알려주고 문제가 어디에 있는지 알려줄 수도 있습니다.

또한 라이브 시스템에서 사용할 수 없음을 방지하는 데 도움이됩니다.

service apache2 restart

종료되고 시작되지 않습니다.이 configtest는 미리 알고 있습니다. "죄송합니다.이 문제를 먼저 수정해야합니다."하지만 아파치 자체는 여전히 이전 구성으로 실행 중입니다. :)


이러한 수정 후 Apache가 실행되기 시작하지만 comm-app.local 이 여전히 서버 에서 발견되지 않고 HTTP 오류 404
Paras Arora 2014

호스트 파일에서 127.0.0.1로 리디렉션하도록 comm-app.local을 설정 했습니까? 그리고 당신의 경로가 정확하다고 확신합니까? 아 그리고 당신이하지 않았다면 VirtualHost 컨테이너를 닫아야합니다 ... (내 게시물 업데이트)
Steini

1
예 난 그냥 배치 127.0.0.1 통신 - app.local 호스트 파일 및 재시작하더라도 서버
파라 아 로라

그리고 브라우저에 comm-app.local : 8081을 입력 했습니까? (아마도 항구를 잊었습니까)? 구성을 변경 한 후 아파치를 다시 시작하십시오. 그러나 다른 사람이 여전히 실 거예요 작업 뭔가 ... 당신의 설정 파일에 잘못된 경우
Steini

안녕하세요! Steini. 같은 문제가 발생합니다. 가상 호스트 이름 뒤에 포트 번호를 입력하지 않는 방법이 있습니까? 미리 감사드립니다
karim_fci

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 줄 주변)을 찾습니다. 두 번째 줄의 시작 부분에서 #을 제거하면 섹션이 다음과 같이 표시됩니다.

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

4 단계) XAMPP를 다시 시작하고 이제 브라우저에서 실행합니다.

www.example.com or www.test.com

1
Hey amit ... 내 것이 의외로 작동하지 않습니다 .... 내 설정의 유일한 차이점은 다음 127.0.0.4 mycustomdomain과 같습니다. 포트 90에서 실행되므로 <VirtualHost 127.0.0.4:90>. 내가 브라우저에서 시도 할 때 실패http://mycustomdomain
제이슨 KRS에게

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

이 코드를 호스트 파일에 저장할 수없는 경우 notpad를 마우스 오른쪽 버튼으로 클릭하고 관리자 권한으로 실행을 선택한 다음 사용자 지정 코드를 저장할 수 있습니다. 이제 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>

맞습니다.하지만 이것은 아파치 서비스가 시작되는 것을 막지는 못합니다. 이것은 단지 경고를 던지고 가상 호스트가 작동하지 않을 것입니다
Steini

이러한 수정 후 Apache가 실행되기 시작하지만 comm-app.local 이 여전히 서버 에서 발견되지 않고 HTTP 오류 404찾을 수 없음을 표시합니다 . 요청 된 리소스를 찾을 수 없습니다.
Paras Arora 2014

3

Your disk drive : \ 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>

그것은 예를 들어, 다음과 같이 될 것이며, 포트 80에 동시에있는 posibility 실행 phpMyAdmin에 다른 프로젝트를 위해 로컬 호스트 자체에 대한 가상 호스트를 추가하는 것을 잊지 마세요 예를 들어 내가 store.local 프로젝트에 표시됩니다 :

<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.
  • 가상 호스트는 권한을 더 쉽게 만듭니다. 로컬 네트워크의 단일 가상 호스트에 대한 액세스를 제한하는 대신 로컬 네트워크의 모든 사이트에 대한 액세스를 허용합니다.
  • 일부 응용 프로그램에는 "."가 필요합니다. URL (ahem Magento)에서. Windows 호스트 파일을 편집하여 localhost.com/mysite를 설정할 수 있지만 가상 호스트를 만드는 것이 더 나은 솔루션입니다.

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>

Windows 호스트 파일 업데이트«다음에있는 Windows 호스트 파일 열기 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

몇 가지 개선 할 수 있고 가상 호스트 (서버 이름 및 문서 루트)에 필요한 두 가지 옵션 만 있지만 모든 파일을 열고 편집하는 것보다 훨씬 빠르고 효율적으로 작업을 수행합니다. 수동으로 수행하고 나중에 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

나는 꽤 많은 해결책을 찾고 있었다. 그리고 마침내 답을 얻었습니다. 가상 호스트가 Windows 10 또는 7 등에서 작동하지 않는 경우 모든 사이트가 https로 라우팅되는이 새로운 https 광고 때문입니다.

XAMPP는 동일한 추세를 따르므로 엄격한 https 리디렉션으로 인해 가상 호스트, 호스트 파일 등을 수정하는 것만으로는 충분하지 않습니다. 여기에 완전한 솔루션이 있습니다.

원하는 사이트는 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 디렉토리의 호스트 파일에이 행을 추가하십시오.

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 서비스를 다시 시작했으며 작동하기 시작했습니다. 위의 모든 게시물 덕분에 문제를 하나씩 해결하는 데 도움이되었습니다.

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.