Ich bin mir sicher, dass diese Frage oft gestellt wird, aber ich habe kein Problem. Ich verwende XAMPP, um das Zend-Framework zu konfigurieren.
XAMPP wird auf Port 8081 ausgeführt, da 80 von einem Windows-Prozess belegt ist, für den ich einen virtuellen Host verwenden muss, den ich mit folgendem Code in C:/xampp/apache/config/extra/httpd-vhosts.config
(oder C:/xampp/apache/conf/extra/httpd-vhosts.conf
in neueren Versionen) konfiguriere .
<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>
Aktualisieren Sie auch die Hosts-Datei mit 127.0.0.1 comm-app.local
und versuchen Sie, Apache neu zu starten, aber es wird ein Fehler angezeigt.
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
php
apache
zend-framework
xampp
virtualhost
Paras Arora
quelle
quelle
Antworten:
Ich sehe zwei Fehler:
<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>
Feste Version:
<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>
Eine Sache zu erwähnen:
Sie können jederzeit versuchen, den Befehl auszuführen:
Dies zeigt Ihnen, wann Sie eine fehlerhafte Konfiguration erhalten haben, und kann Ihnen möglicherweise sogar sagen, wo das Problem liegt.
Darüber hinaus hilft es, die Nichtverfügbarkeit in einem LIVE-System zu vermeiden:
wird heruntergefahren und dann nicht gestartet, dieses Configtest, das Sie vorher kennen "Ups, ich habe etwas falsch gemacht, ich sollte das zuerst beheben", aber der Apache selbst läuft immer noch mit alter Konfiguration. :) :)
quelle
Schritt 1) C: \ WINDOWS \ system32 \ drivers \ etc \ Öffnen Sie die Datei "hosts":
127.0.0.1 localhost 127.0.0.1 test.com 127.0.0.1 example.com
Schritt 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>
Schritt 3) C: \ xampp \ apache \ conf \ httpd.conf. Scrollen Sie am Ende zum Abschnitt "Zusätzliche Konfiguration" und suchen Sie den folgenden Abschnitt (um Zeile 500). Entfernen Sie das # vom Anfang der zweiten Zeile, damit der Abschnitt jetzt so aussieht:
#Virtual hosts Include conf/extra/httpd-vhosts.conf
Schritt 4) Starten Sie XAMPP neu und führen Sie es jetzt in Ihrem Browser aus:
www.example.com or www.test.com
quelle
127.0.0.4 mycustomdomain
und es läuft auf Port 90, also habe ich es verwendet<VirtualHost 127.0.0.4:90>
. Es schlägt fehl, wenn ich es im Browser versuchehttp://mycustomdomain
Fügen Sie diesen Code in C: \ xampp \ apache \ conf \ extra \ httpd-vhosts.conf hinzu
<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>
Fügen Sie nun Ihren virtuellen Hostnamen in die folgende Datei ein.
127.0.0.1 qa-staging.com
Wenn Sie diesen Code nicht in der Hostdatei speichern können, klicken Sie mit der rechten Maustaste auf das Notizblock und wählen Sie Als Administrator ausführen. Anschließend können Sie Ihren benutzerdefinierten Code speichern und Ihren XAMP neu starten
quelle
Schreiben Sie diese Codes am Ende der Datei 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
zwischen dem virtuellen Host-Tag.
und bearbeiten Sie die Datei System32 / Drivers / etc / hosts. Verwenden Sie den Editor als Administrator
füge den unteren Rand der Datei hinzu
127.0.0.1 www.siteurl.com
quelle
<VirtualHost *:80> DocumentRoot "D:/projects/yourdirectry name" ServerName local.yourdomain.com <Directory "D:/projects/yourdirectry name"> Require all granted </Directory> </VirtualHost>
Speichern Sie die Apache-Konfigurationsdatei.
Detaillierte Informationen finden Sie hier
quelle
Ändern Sie einfach den Port auf
8081
und der folgende virtuelle Host funktioniert:<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>
quelle
In Ihrem Laufwerk: \ xampp \ apache \ conf \ extra \ httpd-vhosts.conf gibt es ein Beispiel, das Sie mit Ihrer Konfiguration bearbeiten können:
##<VirtualHost *:80> ##ServerAdmin [email protected] ##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>
Es wäre als Beispiel so und vergessen Sie nicht, VirtualHost für localhost selbst hinzuzufügen, damit phpmyadmin und andere Projekte gleichzeitig auf Port 80 ausgeführt werden können. Als Beispiel werde ich mit store.local zeigen :
<VirtualHost *:80> DocumentRoot "C:/xampp/htdocs" ServerName localhost </VirtualHost> <VirtualHost *:80> ServerAdmin [email protected] 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>
Dann müssen Sie wie oben erwähnt Folgendes hinzufügen: C: \ windows \ system32 \ drivers \ hosts am Ende der Datei
127.0.0.1 store.local 127.0.0.1 www.store.local
Starten Sie Apache neu und versuchen Sie es im Browser:
store.local or www.store.local
Vielleicht müssen Sie beim ersten Mal Folgendes hinzufügen:
http://store.local or http://www.store.local
Um andere Ports zu verwenden, müssen Sie vor Ihrem VirtualHost Folgendes hinzufügen:
Listen 8081 or another which you prefer
Verwenden Sie dann einfach den Port für Ihren VirtualHost wie folgt:
<VirtualHost *:8081> ServerAdmin [email protected] 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>
Starten Sie dann Apache neu und versuchen Sie es im Browser
store.local:8081 or www.store.local:8081
und nur ein Projekt, für das Sie den Port hinzufügen, wird auf diesem Port ausgeführt, z. B. andere Projekte, und phpmyadmin wird weiterhin auf Port 80 ausgeführt
quelle
Apache Virtual Host- Dokumentation Das Einrichten eines virtuellen Hosts (vhost) bietet mehrere Vorteile:
Beispieländerungen über Konfigurationsdatei -
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 [email protected] 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 [email protected] 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>
Aktualisieren Sie Ihre Windows-Hosts-Datei «Öffnen Sie Ihre Windows-Hosts-Datei in
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. [email protected] 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 =====
@sehen
quelle
Ich habe es mit folgender Konfiguration behoben.
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>
quelle
Ich bin etwas spät zur Party, aber ich habe dieses kleine Bash-Skript für Mac geschrieben, das einen VirtualHost über das Terminal erstellt:
#!/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
Ich bin sicher, dass einige Verbesserungen vorgenommen werden können, und es gibt nur die zwei erforderlichen Optionen für den vhost (Servername und Dokumentstamm), aber es erledigt die Arbeit viel schneller und effizienter als das Öffnen und Bearbeiten aller Dateien manuell und startet XAMPP anschließend automatisch neu.
Dies setzt voraus, dass Sie den Standardinstallationsort für XAMPP haben, der alle geändert werden kann.
quelle
Schritt 1) Öffnen Sie die Hostdatei unter "C: \ Windows \ System32 \ drivers \ etc".
Hinzufügen
127.0.0.1 vipsnum.mk
Schritt 2) Öffnen Sie die Datei httpd-vhosts.conf unter "C: \ xampp \ apache \ conf \ extra".
Hinzufügen
<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>
quelle
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
quelle
In meinem Fall besteht ein Problem mit xampp darin, dass ein anderer Ordner als htdocs angegeben wird, insbesondere bei mehreren Domänen und dedizierten Ordnern. Dies liegt daran, dass
httpd-ssl.conf
auch referenziert wird<VirtualHost>
.Dazu den gesamten
<VirtualHost>
Eintrag unterhttpd-ssl.conf
Von dort aus werden alle Einstellungen, die Sie in Ihrem
httpd-vhosts.conf
Programm vornehmen, wie erwartet sowohl als auchhttp
alshttps
Referenz aktualisiert .quelle
Ich habe schon seit einiger Zeit nach der Lösung gesucht. Und schließlich habe ich die Antwort. Wenn Ihr virtueller Host unter Windows 10 oder 7 usw. nicht funktioniert, liegt dies an diesem neuen https-Hype, bei dem alle Websites an https weitergeleitet werden.
XAMPP folgt dem gleichen Trend, sodass das Reparieren von virtuellen Hosts, Hosts-Dateien usw. aufgrund der strengen https-Umleitung nicht ausreicht. Hier ist die vollständige Lösung.
Meine gewünschte Site befindet sich unter D: \ xampp \ htdocs \ ikeen.
1) Fügen Sie dies Ihrer httpd-vhosts.conf hinzu:
<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) Fügen Sie dies am Ende von httpd.conf hinzu:
<Directory /> AllowOverride none Require all granted </Directory>
3) Fügen Sie diese Zeile Ihrer Hosts-Datei im Windows-Verzeichnis hinzu
127.0.0.1 ikeen.localhost
4) Der letzte Schritt besteht darin, den Abschnitt VirtualHost Ihrer Datei httpd-ssl.conf wie folgt zu ändern
<VirtualHost _default_:443> # General setup for the virtual host DocumentRoot "D:/xampp/htdocs" #ServerName www.example.com:443 ServerName localhost ServerAdmin [email protected] 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 [email protected] ErrorLog "D:/xampp/apache/logs/error.log" TransferLog "D:/xampp/apache/logs/access.log"
Starten Sie neu und seien Sie glücklich :)
quelle
Ich habe der httpd.conf die folgende Konfiguration hinzugefügt und den Lampp-Dienst neu gestartet, und er hat funktioniert. Vielen Dank an alle oben genannten Beiträge, die mir geholfen haben, Probleme einzeln zu lösen.
Listen 8080 <VirtualHost *:8080> ServerAdmin [email protected] 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>
quelle
Einfach, Sie können die folgende Vorlage sehen und entsprechend verwenden. Es ist sehr üblich, einen virtuellen Host zu erstellen und sehr einfach. Sicherlich wird die Vorlage unten funktionieren.
<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>
Weitere Informationen zum virtuellen Host finden Sie auf dieser Website. http://www.thegeekstuff.com/2011/07/apache-virtual-host
Vielen Dank,
quelle