XAMPP에서 가상 호스트를 생성하는 방법
이 질문은 여러 번 받고 있다고 생각합니다만, 문제가 있는 것은 아닙니다.XAMPP를 사용하여 Zend 프레임워크를 설정합니다.
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>
.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
순서 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.마지막에 있는 [Supplemental configuration]섹션까지 스크롤하여 다음 섹션(500줄 전후)을 찾습니다.다음 섹션은 두 번째 줄 선두에서#을 삭제합니다.이 섹션은 다음과 같습니다.
#Virtual hosts
Include conf/extra/httpd-vhosts.conf
순서 4) XAMPP를 재기동하여 브라우저에서 실행합니다.
www.example.com or www.test.com
에러가 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>
한 가지 짚고 넘어가야 할 점:
언제든지 다음 명령을 실행할 수 있습니다.
service apache2 configtest
이것에 의해, 설정이 잘못되어 문제가 발생하고 있는 장소를 알 수 있습니다.
또한 라이브 시스템에서 사용할 수 없는 상태를 방지하는 데 도움이 됩니다.
service apache2 restart
가 셧다운되고 나서 기동할 수 없게 됩니다.이 설정 테스트에서는, 사전에 「어쩌다, 잘못했다, 이것을 먼저 수정해야 한다」라고 하는 것을 알 수 있습니다만, Apache 자체는 아직 낡은 설정으로 실행되고 있습니다.:)
이 코드를 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 오른쪽 버튼을 클릭하여 Run as administrator를 선택하면 사용자 지정 코드를 저장할 수 있습니다. XAMP를 다시 시작합니다.
다음 코드는 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
<VirtualHost *:80>
DocumentRoot "D:/projects/yourdirectry name"
ServerName local.yourdomain.com
<Directory "D:/projects/yourdirectry name">
Require all granted
</Directory>
</VirtualHost>
Apache 구성 파일을 저장합니다.
상세한 것에 대하여는, 여기를 참조해 주세요.
는 그냥 포트로 .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>
디스크 드라이브:\xampp\conf\conf\conf\conf\conf\conf\confd-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에서 positivity가 phpmyadmin과 다른 프로젝트를 동시에 실행할 수 있도록 localhost 자체에 VirtualHost를 추가하는 것을 잊지 마십시오.예를 들어 store.local project에서 보여 줍니다.
<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>
</VirtualHost>
그런 다음 Apache를 재시작하고 브라우저에서 시도합니다.
store.local:8081 or www.store.local:8081
포트를 추가한 프로젝트만 이 포트에서 실행됩니다.예를 들어 다른 프로젝트 및 phpmyadmin은 포트 80에서 계속 실행됩니다.
Apache Virtual Host 설명서 가상 호스트(vhost) 설정에는 다음과 같은 몇 가지 이점이 있습니다.
- 가상 호스트는 URL을 보다 깔끔하게 만듭니다(localhost/mysite vs mysite.local).
- 가상 호스트를 사용하면 로컬 네트워크상의 단일 vhost에 대한 액세스를 제한하는 대신 로컬 네트워크상의 모든 사이트에 대한 액세스를 허용하는 등의 권한을 쉽게 만들 수 있습니다.
- 일부 응용 프로그램에서는 URL(ahem Magento)에 "."가 필요합니다.윈도우즈 호스트 파일을 편집하여 localhost.com/mysite을 설정할 수 있지만 vhost를 생성하는 것이 더 나은 솔루션입니다.
Virtual Host Directive 특정 호스트 이름 또는 IP 주소에만 적용되는 디렉티브가 포함되어 있습니다.
구성 파일에 대한 변경 예 -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>
파일 Hosts에 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 =====
@ 참조
아래 구성으로 수정했습니다.
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>
파티에 조금 늦었지만 터미널을 통해 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의 기본 설치장소가 있는 것을 전제로 합니다.이 설치장소는 모두 변경할 수 있습니다.
순서 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>
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
내 경우 xampp의 문제는 htdocs 이외의 다른 폴더, 특히 여러 도메인과 전용 폴더를 사용하는 경우입니다.그 이유는httpd-ssl.conf
또한 참조하고 있습니다.<VirtualHost>
.
이것을 하기 위해서, 모든 것을 기억한다.<VirtualHost>
로의 기입.httpd-ssl.conf
거기서부터, 당신이 하는 모든 설정은httpd-vhosts.conf
둘 다 예상대로 갱신됩니다.http
그리고.https
참조.
나는 꽤 오랫동안 해결책을 찾고 있었다.그리고 마침내 답을 찾았어요가상 호스트가 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"
재기동해, 기뻐해 주세요:)
다음 설정을 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>
단순합니다. 아래 템플릿을 보고 그에 따라 사용할 수 있습니다.가상 호스트를 생성하는 것은 매우 일반적이며 매우 간단합니다.반드시 아래 템플릿으로 동작합니다.
<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
감사합니다.
언급URL : https://stackoverflow.com/questions/27268205/how-to-create-virtual-host-on-xampp
'source' 카테고리의 다른 글
속성이 XPath로 시작하는 요소 선택 (0) | 2022.09.11 |
---|---|
범위 내에서 'n'개의 고유한 난수 생성 (0) | 2022.09.11 |
휴지 상태를 사용하여 MariaDb 드라이버 속성을 설정하는 방법 (0) | 2022.09.11 |
JavaScript에서 클래스를 정의하기 위해 사용할 수 있는 기술과 그 단점은 무엇입니까? (0) | 2022.09.11 |
명령줄에서 구현되지 않은 MySQL 쿼리를 지우려면 어떻게 해야 합니까? (0) | 2022.09.11 |