как создать виртуальный хост на XAMPP
Я уверен, что этот вопрос задавали много раз, но я не сталкиваюсь с проблемой. Я использую XAMPP, где я настраиваю Zend framework.
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.local
и попробуйте перезапустить Apache, но это показывает ошибку.
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
12 ответов:
Я вижу две ошибки:
<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 все еще работает со старой конфигурацией. :)
Шаг 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\Апач\конф\дополнительную\файл httpd-виртуальных доменов.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.конф. Прокрутите вниз до раздела дополнительной конфигурации в конце и найдите следующий раздел (вокруг строки 500), удалите # из начала второй строки, чтобы раздел теперь выглядел так это:
#Virtual hosts Include conf/extra/httpd-vhosts.conf
Шаг 4) перезапустить XAMPP а теперь запустите в браузере:
www.example.com or www.test.com
напишите эти коды в конце 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
просто измените порт на
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>
добавить этот код в 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
<VirtualHost *:80> DocumentRoot "D:/projects/yourdirectry name" ServerName local.yourdomain.com <Directory "D:/projects/yourdirectry name"> Require all granted </Directory> </VirtualHost>
сохраните файл конфигурации Apache.
для получения подробной информации см. этой
я исправил его, используя следующую конфигурацию.
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>
в ваш диск:\программе XAMPP\Апач\конф\дополнительную\файл httpd-виртуальных доменов.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>
затем, как упоминалось выше, вы должны добавить в: System32 / Drivers / etc / hosts в нижней части файла
127.0.0.1 www.dummy-host.example.com
и
127.0.0.1 dummy-host.example.com
чтобы иметь возможность запускать свой код с WWW или без WWW, перезапустите Apache и попробуйте в браузер:
www.dummy-host.example.com
или
dummy-host.example.com
может быть, в первый раз вы должны добавить такой:
http://dummy-host.example.com
Виртуальный Хост Apache документация настройка виртуального хоста (vhost) обеспечивает несколько преимуществ:
- виртуальные хосты делают URL-адреса более чистыми-localhost / mysite vs mysite.местный.
- виртуальные хосты делают разрешения проще-ограничить доступ для одного vhost в локальной сети против разрешения доступа ко всем сайтам в локальной сети.
- некоторые приложения требуют "."в URL (кхм Magento). Пока вы можете настроить localhost.com/mysite путем редактирования файла hosts Windows, создание 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>
Обновить Windows Hosts File " откройте файл Windows 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 =====
@см.
Я немного опоздал на вечеринку, но я написал этот маленький скрипт bash для Mac, который создает VirtualHost через терминал:
#!/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 (имя сервера и корень документа), но он выполняет эту работу гораздо быстрее и эффективнее, чем открытие и редактирование всех файлов вручную, а также автоматически перезапускает XAMPP после этого.
Это предполагает, что вы имейте место установки по умолчанию для XAMPP,которое может быть изменено.
Я добавил ниже конфигурации в 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
спасибо,