Je suis sûr que cette question est posée à plusieurs reprises, mais je ne suis pas confronté à un problème. J'utilise XAMPP pour configurer le framework Zend.
XAMPP fonctionne sur le port 8081 as 80 est occupé par un processus Windows dont j'ai besoin pour utiliser l'hôte virtuel pour celui 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 cela indique 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
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 et exécuter la commande:
service Apache2 configtest
Cela vous dira quand vous avez une configuration mal formée et peut même vous dire où est le problème.
De plus, cela permet d'éviter l'indisponibilité sur un système LIVE:
service Apache2 restart
s’éteindra puis ne démarrera pas, ce configtest que vous connaissez au préalable "oups j’ai fait quelque chose de mal, je devrais le réparer en premier" mais 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 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 afin que la section ressemble à ceci:
#Virtual hosts
Include conf/extra/httpd-vhosts.conf
Étape 4) Redémarrez XAMPP .__ et lancez-le dans votre navigateur:
www.example.com or www.test.com
Écrivez ces codes à la fin du fichier 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
entre le tag hôte virtuel.
et éditez le fichier System32/Drivers/etc/hosts utilisez le bloc-notes en tant qu'administrateur
ajouter le bas du fichier
127.0.0.1 www.siteurl.com
Ajouter 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 fichier ci-dessous.
C:\Windows\System32\drivers\etc\hosts
127.0.0.1 qa-staging.com
Si vous ne pouvez pas enregistrer ce code dans le fichier hôte, cliquez avec le bouton droit de la souris sur notpad, sélectionnez Exécuter en tant qu'administrateur pour pouvoir enregistrer votre code personnalisé et redémarrez votre XAMP
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>
<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 à this
Dans votre lecteur de disque:\xampp\Apache\conf\extra\httpd-vhosts.conf existe un exemple et vous pouvez le modifier avec votre configuration:
##<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>
Ce serait comme ça, à titre d'exemple, et n'oubliez pas d'ajouter VirtualHost pour que localhost lui-même ait la possibilité de lancer phpmyadmin et un autre projet en même temps sur le port 80, comme exemple, je montrerai avec le projet 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>
puis, comme mentionné ci-dessus, vous devez ajouter: C:\windows\system32\drivers\hosts au bas du fichier} _
127.0.0.1 store.local
127.0.0.1 www.store.local
redémarrez Apache et essayez dans le navigateur:
store.local or www.store.local
peut-être que vous devez ajouter comme ceci à la première fois:
http://store.local or http://www.store.local
pour utiliser d'autres ports, vous devez ajouter ce qui suit avant votre VirtualHost:
Listen 8081 or another which you prefer
ensuite, utilisez simplement le port de votre VirtualHost comme ceci:
<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>
puis redémarrez Apache et essayez dans le navigateur
store.local:8081 or www.store.local:8081
et seul le projet pour lequel vous ajoutez le port s'exécutera sur ce port, par exemple, d'autres projets et phpmyadmin seront toujours exécutés sur le port 80
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>
Je suis un peu en retard pour 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 que quelques améliorations peuvent être apportées et qu'il ne comporte que les deux options requises pour vhost (nom du serveur et racine du document), mais il fait le travail beaucoup plus rapidement et efficacement que d'ouvrir et de modifier tous les fichiers manuellement, puis redémarre automatiquement XAMPP par la suite.
Cela suppose que vous avez l'emplacement d'installation par défaut pour XAMPP, qui peut tous être modifié.
Le problème avec xampp dans mon cas, c’est lorsqu’on spécifie un dossier différent de htdocs, en particulier avec plusieurs domaines et dossiers dédiés. En effet, httpd-ssl.conf
fait également référence à <VirtualHost>
.
Pour ce faire, supprimez l’entrée entière <VirtualHost>
sous httpd-ssl.conf
À partir de là, tous les réglages effectués dans votre httpd-vhosts.conf
seront mis à jour comme prévu. http
et https
références.
Si vous avez besoin d'une installation facile
https://github.com/scyzho/xampp
télécharger dans votre dossier htdocs
et entrez votre hôte
Étape 1) Ouvrez le fichier hôte sous "C:\Windows\System32\drivers\etc"
Ajouter
127.0.0.1 vipsnum.mk
Étape 2) Ouvrez le fichier httpd-vhosts.conf sous "C:\xampp\Apache\conf\extra"
Ajouter
<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>
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