J'essaie d'ajouter des sous-domaines à mon serveur domestique.
svn.domain.com trac.domain.com
En raison de l’adresse IP dynamique, j’utilise le service dyndns. En plus de cela, j’ai hébergé par ailleurs domain.com. J'ai créé CNAME pour les sous-domaines de l'hôte distant afin qu'ils pointent vers mon domaine utilisateur.dyndns.org.
Alors maintenant, quand je visite l'un des sous-domaines: trac ou svn, je vois "ça marche!" message.
Ceci fait, j’ai créé deux fichiers d’hôte virtuel sous/etc/Apache2/sites-enabled
fichier1: svn.domaine.com et fichier2: trac.domaine.com
contenu:
<VirtualHost *:80>
ServerName trac.domain.com
DocumentRoot = /var/www/trac/repos
<Directory /var/www/trac/repos>
Order allow,deny
allow from all
</Directory>
</VirtualHost>
Et
<VirtualHost *:80>
ServerName svn.domain.com
DocumentRoot = /var/svn/repos
<Directory /var/svn/repos>
Order allow,deny
allow from all
</Directory>
</VirtualHost>
Mais je reçois une erreur: ERREUR: Le site trac.domain.com n'existe pas!
qu'est-ce que je fais mal?
Essayez de déplacer les fichiers vers/sites-available. Ensuite, lancez a2ensite svn.domain.com
et a2ensite trac.domain.com
et rechargez Apache.
J'ai eu ce problème lors de la mise à niveau d'Apache 2.2 vers Apache 2.4. La solution (ridicule) consistait à s'assurer que tous les fichiers se terminaient par .conf
, ou que a2ensite
aurait ERROR: Site example does not exist!
.
De plus, lorsqu'ils sont liés manuellement dans sites-enabled
, ils ne seraient même pas chargés sans l'extension .conf
.
J'ai également rencontré le même problème lors de la mise à niveau d'Apache 2.2 vers la version 2.4; tous mes hôtes virtuels se sont soudainement brisés et, alors que j'essayais de comprendre pourquoi c'était le cas, je suis tombé sur cette question.
Il se trouve que la raison en est une différence entre mon ancien Apache2.conf
et le nouveau Apache2.conf
. Mon ancien fichier de configuration Apache 2.2 avait la ligne
Include sites-enabled/
alors que mon nouveau fichier de configuration Apache 2.4 avait la ligne
IncludeOptional sites-enabled/*.conf
Et voilà, quand j'ai changé la ligne à
IncludeOptional sites-enabled/
tout est rentré dans l'ordre.
si vous tapez a2ensite. il sera prompt. Quels sites voulez-vous activer (c'est-à-dire après avoir placé un fichier .conf dans sites-available et l'avoir lié depuis des sites activés?).
a2ensite attend le nom complet du fichier conf avec l'extension .conf
a2ensite accepte UNIQUEMENT les fichiers .conf; copiez donc tous les sites des sites disponibles afin qu'ils aient une extension .conf (le renommage n'a pas fonctionné, confondez le linkssomehow), effacez les fichiers originaux des sites disponibles ET activés pour les sites utilisez a2ensite sur les nouveaux fichiers (vous n'avez pas besoin d'ajouter .conf) et tout fonctionne, sans le * .conf dans /etc/Apache2/apach2.conf
Il doit y avoir un peu de "mémoire" du fichier original même quand il est renommé - le lien symbolique est également renommé, mais l'effacement et l'activation de "nouveaux" fichiers .con fonctionnent et vous pouvez ensuite utiliser a2dissite et a2ensite comme auparavant
1) supprimer tous les sites par défaut dans sites-enable
a2dissite <site-configuration-file-name>
2) regardez attentivement votre fichier de configuration: commencez avec un minimum de propriétés comme:
<VirtualHost [Domain]:80>
ServerAdmin webmaster@localhost
ServerName [Domain]
DocumentRoot [webAppPath]
<Directory [webAppPath]>
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
ErrorLog ${Apache_LOG_DIR}/my_domain_name_error.log
CustomLog ${Apache_LOG_DIR}/my_domain_name_access.log combined
</VirtualHost>
Ma solution pour le nom du serveur local remplace:
Sudo a2ensite serverName
avec
Sudo a2ensite serverName.conf