Как создать виртуальный хост на 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>
а также обновить файл 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
Ответы
Ответ 1
Я вижу две ошибки:
<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
Это скажет вам, когда у вас возникла некорректная конфигурация и, возможно, даже сообщит вам, где проблема.
Кроме того, это помогает избежать недоступности в системе LIVE:
service apache2 restart
выключится, а затем не запустится, этот configtest, который вы знаете заранее, "oops, я сделал что-то неправильно, я должен исправить это первым", но сам apache все еще работает со старой конфигурацией.:)
Ответ 2
Шаг 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
Ответ 3
Запишите эти коды в конец файла 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
Добавить этот код в 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
Ответ 5
Просто измените порт на 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>
Ответ 6
<VirtualHost *:80>
DocumentRoot "D:/projects/yourdirectry name"
ServerName local.yourdomain.com
<Directory "D:/projects/yourdirectry name">
Require all granted
</Directory>
</VirtualHost>
Сохраните конфигурационный файл Apache.
для получения подробной информации см. this
Ответ 7
Документация виртуального хоста Apache Настройка виртуального хоста (vhost) предоставляет несколько преимуществ:
- Виртуальные хосты делают URL-адреса более чистыми - localhost/mysite vs mysite.local.
- Виртуальные хосты упрощают доступ - ограничивают доступ для одного виртуального хоста в локальной сети и разрешают доступ ко всем сайтам в вашей локальной сети.
- Для некоторых приложений требуется ".". в URL-адресе (ahem Magento). Хотя вы можете настроить localhost.com/mysite, отредактировав файл хостов 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 [email protected]
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>
Обновите файл Windows Hosts "Откройте файл хостов 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. [email protected]
ServerAdmin [email protected]
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 [email protected]
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 =====
@видеть
Ответ 8
Я исправил его, используя следующую конфигурацию.
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>
Ответ 9
На вашем диске:\xampp\apache\conf\extra\httpd-vhosts.conf существует пример, и вы можете отредактировать его с помощью вашей конфигурации:
##<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>
Это было бы так, как пример, и не забудьте добавить VirtualHost для самого localhost, чтобы иметь возможность запускать phpmyadmin и другой проект одновременно на порту 80, как пример, который я покажу в проекте 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>
затем, как упоминалось выше, вы должны добавить в: 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 [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>
затем перезапустите Apache и попробуйте в браузере
store.local:8081 or www.store.local:8081
и только проект, для которого вы добавляете порт, будет работать на этом порту, например, другие проекты и phpmyadmin будут все еще работать на порту 80
Ответ 10
Я немного опаздываю на вечеринку, но я написал этот маленький скрипт 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, которое может быть изменено.
Ответ 11
Шаг 1) Откройте файл хоста в папке "C:\Windows\System32\drivers\etc".
добавлять
127.0.0.1 vipsnum.mk
Шаг 2) Откройте файл httpd-vhosts.conf в разделе "C:\xampp\apache\conf\extra"
добавлять
<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>
Ответ 12
Если вам нужно легко установить
https://github.com/scyzho/xampp
скачать в папку htdocs
и введите ваш хост
Ответ 13
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
Ответ 14
Проблема с xampp в моем случае заключается в указании другой папки, отличной от используемой htdoc, особенно с несколькими доменами и выделенными папками. Это потому, что httpd-ssl.conf
также ссылается на <VirtualHost>
.
Для этого удалите всю запись <VirtualHost>
в httpd-ssl.conf
Оттуда любой параметр, который вы делаете в вашем httpd-vhosts.conf
будет обновляться, как ожидается, и ссылками http
и https
.
Ответ 15
Я добавил ниже конфигурацию в httpd.conf и перезапустил службу lampp, и он начал работать. Благодаря всем вышеперечисленным сообщениям, которые помогли мне решить проблемы один за другим.
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>
Ответ 16
Простой,
Вы можете увидеть шаблон ниже и использовать его соответствующим образом. Он очень распространен для создания виртуального хоста и очень прост. Разумеется, ниже шаблон будет работать.
<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
Спасибо,