como criar uma máquina virtual no XAMPP

Tenho a certeza que esta pergunta está a ser feita muitas vezes, mas não me encontro com um problema. Estou a usar o XAMPP onde configuro o framework Zend.

o XAMPP está a rodar em Porta 8081 como 80 está sendo ocupado por algum processo do Windows que eu preciso usar host virtual para que eu configure com o seguinte código em C:/xampp/apache/config/extra/httpd-vhosts.config (ou C:/xampp/apache/conf/extra/httpd-vhosts.conf em versões mais recentes).

<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>    

e também actualizar o ficheiro hosts com 127.0.0.1 comm-app.local e tentar reiniciar o apache, mas está a mostrar um erro.

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
Author: leymannx, 2014-12-03

12 answers

Vejo dois erros:

<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> 

Versão fixa:

<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>
Uma coisa para mencionar:

Podes sempre tentar executar o comando:

service apache2 configtest

Isto dir-lhe-á quando tiver uma configuração malformada e talvez até possa dizer-lhe Onde está o problema.

Além disso, ajuda a evitar a indisponibilidade num sistema ao vivo:

service apache2 restart

Vai desligar e, em seguida, deixar de começar, esta configuração que você sabe de antemão "oops eu fiz algo errado, eu devo corrigir isso primeiro", mas o próprio apache ainda está funcionando com configuração antiga. :)

 52
Author: Steini, 2016-01-20 15:57:08

Passo 1) C:\WINDOWS\system32\drivers\etc\ Abre o ficheiro "hosts":

127.0.0.1       localhost
127.0.0.1       test.com
127.0.0.1       example.com

Passo 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>

Passo 3) C:\xampp\apache\conf\httpd.conf. Desloque-se para a secção de configuração suplementar no final, e localize a seguinte secção (em torno da linha 500), remova o # do início da segunda linha para que a secção se pareça agora com isto:

#Virtual hosts
Include conf/extra/httpd-vhosts.conf

Passo 4) reiniciar o XAMPP agora Executar no seu navegador:

www.example.com or www.test.com
 40
Author: Amit Naraniwal, 2016-04-12 12:04:29

Escreva estes códigos no fim do C:\xampp\apache\conf\extra\httpd-vhosts.ficheiro 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

Entre a etiqueta da máquina virtual.

E editar o ficheiro System32/Drivers / etc / hosts use o bloco de notas como administrador

Adicionar o fundo do ficheiro

127.0.0.1    www.siteurl.com
 5
Author: Asarudeen, 2014-12-03 10:07:15

Basta mudar a porta para 8081 e a seguinte máquina virtual irá funcionar:

<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>
 4
Author: Pupil, 2016-09-07 21:48:57

Adicionar este código em 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>

Agora adicione o nome da sua máquina virtual no ficheiro bellow.

C:\Windows\System32\drivers\etc\hosts

127, 0, 0, 1 qa-staging.com

Se não for capaz de gravar este código no ficheiro da máquina, carregue com o botão direito no notpad seleccione Executar como administrador e então poderá gravar o seu código personalizado agora reinicie o seu XAMP

 4
Author: Ashish pathak, 2016-09-30 19:35:01
<VirtualHost *:80>
    DocumentRoot "D:/projects/yourdirectry name"
    ServerName local.yourdomain.com
    <Directory "D:/projects/yourdirectry name">
        Require all granted 
    </Directory>
</VirtualHost>

Grava o ficheiro de configuração do Apache.

Para informações detalhadas consulte isto

 2
Author: Bhutto Hafeez, 2015-10-23 10:27:59

Corrigi-o usando a seguinte configuração.

 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>
 1
Author: Jakir Hosen Khan, 2016-01-20 18:09:39

Na sua unidade de disco:\xampp\apache\conf \ extra \ httpd-vhosts.conf existe um exemplo e você poderá editá-lo com a sua configuração:

    ##<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>

Então, como mencionado acima, você deve adicionar em: System32 / Drivers / etc / hosts no fundo do ficheiro

127.0.0.1    www.dummy-host.example.com

E

127.0.0.1    dummy-host.example.com

Para ter possibilidade de executar o seu código com WWW ou sem WWW, reinicie o Apache e tente no navegador:

www.dummy-host.example.com

Ou

dummy-host.example.com
Talvez na primeira vez tenhas de adicionar isto:
http://dummy-host.example.com
 1
Author: develway, 2016-02-12 15:35:27

Apache Virtual Host documentation Setting up a virtual host (vhost) provides several benefits:

    Os anfitriões virtuais fazem URLs cleaner-localhost / mysite vs mysite.local.
  • As máquinas virtuais facilitam as permissões-restringem o acesso a um único vhost numa rede local vs permitindo o acesso a todos os locais da sua rede local.
  • Algumas aplicações requerem um"."in the URL (ahem Magento). Enquanto você pode configurar localhost.com/mysite editando a O ficheiro hosts do Windows, criar um vhost é uma solução melhor.

A Directiva VirtualHost contém directivas que se aplicam apenas a um nome ou endereço IP específico

A Directiva relativa à localização aplica as directivas anexas apenas aos URLs correspondentes

Exemplo muda sobre o ficheiro de configuração- 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>

Actualize o seu ficheiro Hosts do Windows " Abra o seu ficheiro hosts do Windows localizado em 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 =====

@see

 1
Author: Yash, 2018-06-07 06:24:47
Estou um pouco atrasado para a festa,mas escrevi um script de bash para o Mac que cria um VirtualHost através do terminal.
#!/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

Tenho a certeza que existem algumas melhorias que podem ser feitas, e só tem as duas opções necessárias para o vhost (nome do servidor e raiz do documento), mas ele faz o trabalho muito mais rápida e e eficientemente do que abrir e editar todos os arquivos manualmente, e também reiniciará automaticamente XAMPP depois.

Isto assume que você tem o localização predefinida da instalação do XAMPP, que pode ser alterada.

 0
Author: Yaakov Ainspan, 2018-09-09 02:58:16

Adicionei abaixo a configuração ao httpd.conf e reiniciou o serviço de lâmpadas e começou a funcionar. Graças a todos os posts acima, que me ajudou a resolver as questões um a um.

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>
 -1
Author: Praveen Kumar M, 2016-02-10 06:30:19

Simples, Você pode ver o modelo abaixo e usá-lo em conformidade. É muito comum criar um host virtual e muito simples. Certamente abaixo do modelo funcionará.

<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>

Também para mais referências sobre a máquina virtual, por favor visite este site. http://www.thegeekstuff.com/2011/07/apache-virtual-host

Obrigado.
 -1
Author: loyola, 2017-02-23 16:30:42