Jestem pewien, że to pytanie jest zadawane wielokrotnie, ale nie napotykam problemu. Używam XAMPP, gdzie konfiguruję framework Zend.
XAMPP działa na porcie 8081, ponieważ 80 jest zajęty przez jakiś proces Windows, do którego muszę użyć wirtualnego hosta, który konfiguruję za pomocą następującego kodu w C:/xampp/apache/config/extra/httpd-vhosts.config
(lub C:/xampp/apache/conf/extra/httpd-vhosts.conf
nowszych wersjach).
<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>
a także zaktualizuj plik hosts 127.0.0.1 comm-app.local
i spróbuj ponownie uruchomić Apache, ale wyświetla błąd.
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
źródło
źródło
Odpowiedzi:
Widzę dwa błędy:
<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>
Naprawiona wersja:
<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>
Należy wspomnieć o jednej rzeczy:
Zawsze możesz spróbować uruchomić polecenie:
Dzięki temu dowiesz się, kiedy otrzymałeś nieprawidłową konfigurację, a może nawet możesz powiedzieć, gdzie jest problem.
Ponadto pomaga uniknąć niedostępności w systemie LIVE:
wyłączy się, a następnie nie uruchomi, ten test konfiguracji, który znasz z góry "oops, zrobiłem coś źle, powinienem najpierw to naprawić", ale sam Apache nadal działa ze starą konfiguracją. :)
źródło
Krok 1) C: \ WINDOWS \ system32 \ drivers \ etc \ Otwórz plik „hosts”:
127.0.0.1 localhost 127.0.0.1 test.com 127.0.0.1 example.com
Krok 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>
Krok 3) C: \ xampp \ apache \ conf \ httpd.conf. Przewiń w dół do sekcji Konfiguracja dodatkowa na końcu i znajdź następującą sekcję (wokół linii 500). Usuń # z początku drugiej linii, aby sekcja wyglądała teraz następująco:
#Virtual hosts Include conf/extra/httpd-vhosts.conf
Krok 4) Uruchom ponownie XAMPP i teraz uruchom w przeglądarce:
www.example.com or www.test.com
źródło
127.0.0.4 mycustomdomain
i działa na porcie 90, więc użyłem<VirtualHost 127.0.0.4:90>
. Nie udaje się, gdy próbuję w przeglądarcehttp://mycustomdomain
Dodaj ten kod w 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>
Teraz dodaj nazwę swojego wirtualnego hosta w poniższym pliku.
127.0.0.1 qa-staging.com
Jeśli nie możesz zapisać tego kodu w pliku hosta, kliknij prawym przyciskiem myszy notpad wybierz Uruchom jako administrator, a następnie możesz zapisać swój niestandardowy kod teraz ponownie uruchom XAMP
źródło
Napisz te kody na końcu pliku 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
między tagiem hosta wirtualnego.
i edytuj plik System32 / Drivers / etc / hosts, użyj Notatnika jako administrator
dodaj dół pliku
127.0.0.1 www.siteurl.com
źródło
<VirtualHost *:80> DocumentRoot "D:/projects/yourdirectry name" ServerName local.yourdomain.com <Directory "D:/projects/yourdirectry name"> Require all granted </Directory> </VirtualHost>
Zapisz plik konfiguracyjny Apache.
szczegółowe informacje znajdują się w tym
źródło
Po prostu zmień port na,
8081
a następujący wirtualny host będzie działał:<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>
źródło
Na Twoim dysku: \ xampp \ apache \ conf \ extra \ httpd-vhosts.conf istnieje przykład i możesz go edytować za pomocą swojej konfiguracji:
##<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>
Byłoby tak, jako przykład i nie zapomnij dodać VirtualHost dla samego hosta lokalnego, aby mieć możliwość uruchomienia phpmyadmin i innego projektu w tym samym czasie na porcie 80, jako przykład pokażę z projektem store.local :
<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>
następnie, jak wspomniano powyżej, musisz dodać: C: \ windows \ system32 \ drivers \ hosts na końcu pliku
127.0.0.1 store.local 127.0.0.1 www.store.local
uruchom ponownie Apache i spróbuj w przeglądarce:
store.local or www.store.local
może za pierwszym razem musisz dodać w ten sposób:
http://store.local or http://www.store.local
Aby korzystać z innych portów, musisz dodać następujące informacje przed swoim VirtualHost:
Listen 8081 or another which you prefer
następnie po prostu użyj portu dla swojego VirtualHost w następujący sposób:
<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>
następnie uruchom ponownie Apache i spróbuj w przeglądarce
store.local:8081 or www.store.local:8081
i tylko projekt, dla którego dodasz port, będzie działał na tym porcie, na przykład inne projekty i phpmyadmin będą nadal działały na porcie 80
źródło
Dokumentacja hosta wirtualnego Apache Konfigurowanie hosta wirtualnego (vhost) zapewnia kilka korzyści:
Przykład zmiany w pliku konfiguracyjnym -
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>
Zaktualizuj plik hostów systemu Windows «Otwórz plik hostów systemu Windows znajdujący się w
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 =====
@widzieć
źródło
Naprawiłem to za pomocą następującej konfiguracji.
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>
źródło
Trochę spóźniłem się na imprezę, ale napisałem ten mały skrypt bash dla Maca, który tworzy VirtualHost za pośrednictwem terminala:
#!/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
Jestem pewien, że jest kilka ulepszeń, które można wprowadzić i ma tylko dwie wymagane opcje dla vhosta (nazwa serwera i katalog główny), ale wykonuje to zadanie znacznie szybciej i wydajniej niż otwieranie i edytowanie wszystkich plików ręcznie, a następnie automatycznie ponownie uruchamia XAMPP.
Zakłada się, że masz domyślną lokalizację instalacji XAMPP, którą można zmienić.
źródło
Krok 1) Otwórz plik hosta w „C: \ Windows \ System32 \ drivers \ etc”
Dodaj
127.0.0.1 vipsnum.mk
Krok 2) Otwórz plik httpd-vhosts.conf w „C: \ xampp \ apache \ conf \ extra”
Dodaj
<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>
źródło
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
źródło
Problem z xampp w moim przypadku polega na określeniu innego folderu niż htdocs, szczególnie w przypadku wielu domen i folderów dedykowanych. Dzieje się tak, ponieważ
httpd-ssl.conf
jest również odniesieniem<VirtualHost>
.Aby to zrobić, usuń cały
<VirtualHost>
wpis podhttpd-ssl.conf
Stamtąd wszelkie ustawienia, które wprowadzisz,
httpd-vhosts.conf
zostaną zaktualizowane zgodnie z oczekiwaniami, zarówno jakhttp
ihttps
odniesienia.źródło
Od dłuższego czasu szukałem rozwiązania. I wreszcie mam odpowiedź. Jeśli Twój wirtualny host nie działa w systemie Windows 10 lub 7 itp., Dzieje się tak z powodu nowego szumu https, w którym wszystkie witryny są kierowane na https.
XAMPP podąża za tym samym trendem, więc naprawianie wirtualnych hostów, plików hostów itp. Nie wystarczy, ze względu na ścisłe przekierowanie https. Oto pełne rozwiązanie.
Moja żądana witryna znajduje się w D: \ xampp \ htdocs \ ikeen.
1) Dodaj to do swojego 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) Dodaj to na końcu httpd.conf:
<Directory /> AllowOverride none Require all granted </Directory>
3) Dodaj tę linię do pliku hosts w katalogu Windows
127.0.0.1 ikeen.localhost
4) Ostatnim krokiem jest zmiana sekcji VirtualHost w pliku httpd-ssl.conf na następującą
<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"
Uruchom ponownie i bądź szczęśliwy :)
źródło
Dodałem poniższą konfigurację do httpd.conf i zrestartowałem usługę lampp i zaczęła działać. Dziękuję wszystkim powyższym postom, które pomogły mi rozwiązywać problemy jeden po drugim.
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>
źródło
Proste, możesz zobaczyć poniższy szablon i odpowiednio go użyć. Tworzenie wirtualnego hosta jest bardzo powszechne i bardzo proste. Na pewno poniższy szablon zadziała.
<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>
Więcej informacji na temat hosta wirtualnego można znaleźć na tej stronie. http://www.thegeekstuff.com/2011/07/apache-virtual-host
Dzięki,
źródło