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
56
demandé sur leymannx 2014-12-03 12:40:10

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. :)

52
répondu Steini 2016-01-20 15:57:08

É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
40
répondu Amit Naraniwal 2016-04-12 12:04:29

É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
5
répondu Asarudeen 2014-12-03 10:07:15

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>
4
répondu Pupil 2016-09-07 21:48:57

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

4
répondu 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>

Enregistrez le fichier de configuration Apache.

Pour plus d'informations reportez-vous à ce

2
répondu Bhutto Hafeez 2015-10-23 10:27:59

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>
1
répondu Jakir Hosen Khan 2016-01-20 18:09:39

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
1
répondu develway 2016-02-12 15:35:27

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

1
répondu Yash 2018-06-07 06:24:47

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.

0
répondu Yaakov Ainspan 2018-09-09 02:58:16

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>
-1
répondu Praveen Kumar M 2016-02-10 06:30:19

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,

-1
répondu loyola 2017-02-23 16:30:42