como criar uma máquina virtual no XAMPP
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
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. :)
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
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
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>
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
<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
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>
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
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
#!/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.
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>
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.