comment créer un hôte virtuel sur XAMPP
Je suis sûr que cette question est posée plusieurs fois mais je ne rencontre pas de problème. J'utilise XAMPP où je configure Zend framework.
XAMPP est en cours d'exécution sur port 8081 comme 80 est occupé par un processus Windows dont j'ai besoin pour utiliser l'hôte virtuel pour que je configure avec le code suivant dans C:/xampp/apache/config/extra/httpd-vhosts.config
(ou C:/xampp/apache/conf/extra/httpd-vhosts.conf
dans les versions plus récentes).
<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>
Et mettez également à jour le fichier hosts avec 127.0.0.1 comm-app.local
et essayez de redémarrer apache mais il affiche une erreur.
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 réponses
, je vois deux erreurs:
<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>
Version fixe:
<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>
Une chose à mentionner:
Vous pouvez toujours essayer d'exécuter la commande:
service apache2 configtest
Cela vous dira quand vous avez une configuration malformée et peut-être même vous dire où est le problème.
En outre, il permet d'éviter l'indisponibilité dans un système en direct:
service apache2 restart
Va s'arrêter et ne pas démarrer, ce configtest vous savez à l'avance "Oups j'ai fait quelque chose de mal, je devrais d'abord corriger cela" mais le apache lui-même fonctionne toujours avec une ancienne configuration. :)
Étape 1) C:\WINDOWS\system32\drivers\etc\ Ouvrez le fichier "hosts":
127.0.0.1 localhost
127.0.0.1 test.com
127.0.0.1 example.com
Étape 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>
Étape 3) C:\xampp\apache\conf\httpd.conf. Faites défiler jusqu'à la section de configuration supplémentaire à la fin, et localisez la section suivante (autour de la ligne 500), supprimez le # du début de la deuxième ligne pour que la section ressemble maintenant à ceci:
#Virtual hosts
Include conf/extra/httpd-vhosts.conf
Étape 4) redémarrez XAMPP et maintenant exécuter dans votre navigateur :
www.example.com or www.test.com
Écrivez ces codes à la fin du C:\xampp\apache\conf\extra\httpd-vhosts.fichier 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 la balise d'hôte virtuel.
Et éditer le fichier System32 / Drivers/etc / hosts utiliser le bloc-notes en tant qu'administrateur
Ajouter le bas du fichier
127.0.0.1 www.siteurl.com
Changez simplement le port en 8081
et l'hôte virtuel suivant fonctionnera:
<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>
Ajoutez ce Code dans 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>
Maintenant, Ajoutez votre nom d'hôte virtuel dans le soufflet de fichier.
C:\Windows\System32\drivers\etc\hosts
127.0.0.1 qa-staging.com
Si vous n'êtes pas en mesure d'enregistrer ce code dans le fichier host, puis faites un clic droit sur notpad sélectionnez Exécuter en tant qu'administrateur, puis vous pouvez enregistrer votre code personnalisé maintenant redémarrer votre XAMP
<VirtualHost *:80>
DocumentRoot "D:/projects/yourdirectry name"
ServerName local.yourdomain.com
<Directory "D:/projects/yourdirectry name">
Require all granted
</Directory>
</VirtualHost>
Enregistrez le fichier de configuration Apache.
Pour plus d'informations reportez-vous à ce
Je l'ai corrigé en utilisant la configuration suivante.
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>
Dans Votre lecteur de disque:\xampp\apache\conf\extra\httpd-vhosts.conf existe un exemple et vous pouvez l'éditer avec votre configuration:
##<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>
Ensuite, comme mentionné ci-dessus, vous devez ajouter: System32/Drivers/etc/hosts à la fin du fichier
127.0.0.1 www.dummy-host.example.com
Et
127.0.0.1 dummy-host.example.com
Pour avoir la possibilité d'exécuter votre code avec WWW ou sans WWW, redémarrez Apache et essayez dans le navigateur:
www.dummy-host.example.com
Ou
dummy-host.example.com
Peut-être à la première fois que vous devez ajouter comme ceci:
http://dummy-host.example.com
Hôte Virtuel Apache documentation Configuration d'un hôte virtuel (vhost) présente plusieurs avantages:
- les Hôtes Virtuels rendent les URL plus propres-localhost / mysite vs mysite.local.
- les Hôtes Virtuels facilitent les autorisations-restreignent l'accès à un seul hôte virtuel sur un réseau local par rapport à l'accès à tous les sites de votre réseau local.
- Certaines applications nécessitent un "."dans L'URL (ahem Magento). Alors que vous pouvez configurer localhost.com/mysite en éditant les fenêtres fichier hosts, la création d'un vhost est une meilleure solution.
La Directive VirtualHost contient des directives qui s'appliquent uniquement à un nom d'hôte ou une adresse IP spécifique
La directive Location applique les directives jointes uniquement aux URL correspondantes
Exemple changements sur le fichier de configuration - 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>
Mettez à jour votre fichier Windows Hosts " ouvrez votre fichier Windows hosts situé dans 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 =====
@voir
Je suis un peu en retard à la fête, mais j'ai écrit ce petit script bash pour Mac qui crée un VirtualHost via le 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
Je suis sûr qu'il y a quelques améliorations qui peuvent être apportées, et il n'a que les deux options requises pour le vhost (nom du serveur et racine du document), mais il fait le travail beaucoup plus rapidement et efficacement que d'ouvrir et d'éditer tous les fichiers manuellement, et redémarre automatiquement XAMPP par la suite.
Cela suppose que vous avez la valeur par défaut emplacement d'installation pour XAMPP, qui peuvent tous être modifiés.
J'ai ajouté la configuration ci-dessous au httpd.conf et redémarré le service lampp et il a commencé à travailler. Merci à tous les messages ci-dessus, ce qui m'a aidé à résoudre les problèmes un par un.
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>
Simple, Vous pouvez voir le modèle ci-dessous et l'utiliser en conséquence. Il est très commun de créer un hôte virtuel et très simple. Sûrement ci-dessous modèle fonctionnera.
<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>
Aussi pour plus de référence sur l'hôte virtuel, veuillez visiter ce site. http://www.thegeekstuff.com/2011/07/apache-virtual-host
Merci,