Configuration d'Apache
Ce dont vous avez besoin est la directive Apache VirtualHost. Voir le Documentation Apache et quelques Exemples .
Ce que vous voulez faire dans Ubuntu est de vous assurer que le port que vous voulez utiliser (généralement :80) est activé dans /etc/apache2/ports.conf comme ceci :
NameVirtualHost *:80
Listen 80
Ensuite, vous devrez créer un nouveau fichier de configuration dans /etc/apache2/sites-available. Je vous suggère de le nommer proj1.conf ou proj1.mydomain.conf.
Là, vous pouvez configurer le VirtualHost comme suit :
<VirtualHost *:80>
ServerName proj1.subdomain.domain.com
DocumentRoot /var/www/proj1
ServerAdmin name@domain.com
# Write a seperate log per Virtualhost
CustomLog /var/log/apache2/proj1.subdomain.access_log combined
ErrorLog /var/log/apache2/proj1.subdomain.error_log
# Maybe you want to put some restrictions on the directory
<Directory /var/www/proj1>
Options -Indexes +FollowSymLinks + Includes
AllowOverride All
# Restrict Access to certain IP's
Order Deny,Allow
Deny from All
Allow from 127.0.0.1 IP IP IP
Satisfy ALL
</Directory>
</VirtualHost>
Consultez le manuel Apache pour voir ce que vous pourriez faire avec la directive.
Pour activer ce site, liez-le à /etc/apache2/sites-enabled
ln -s /etc/apache2/sites-available/proj1.conf /etc/apache2/sites-enabled/proj1
Il ne vous reste plus qu'à vous assurer que votre configuration est valide, puis à redémarrer Apache :
apache2ctl configtest && /etc/init.d/apache2 restart
DNS
Si vous utilisez une machine virtuelle, le DNS est probablement fourni par votre hébergeur. Vous pouvez donc lui demander de configurer le DNS.
Naturellement, vous devrez configurer le sous-domaine dans votre DNS de manière à ce qu'il pointe vers ce serveur. Pour cela, vous pouvez créer un enregistrement A ou CNAME pour chaque sous-domaine et le faire pointer vers votre serveur.
Voici à quoi pourrait ressembler votre fichier de zone de liaison :
$TTL 2h
@ IN SOA dns1.example.com. emailaddress.domain.com. (
2011120701 ; serial number YYMMDDNN
1h ; Refresh
20m ; Retry
2w ; Expire
2h ; Min TTL
)
@ IN NS dns1.example.com.
@ IN NS dns2.example.com.
@ IN MX 10 mx1.domain.com.
@ IN MX 20 mx2.domain.com.
@ IN A 999.999.999.999
subdomain IN A 666.666.666.666
proj1.subdomain IN CNAME subdomain
*.subdomain IN CNAME subdomain
Évidemment, vous devrez remplacer domain.com par votre domaine, 999.999... et 666.666 par les bonnes adresses IP, changer les enregistrements NS et MX, etc.
Voir le Relier le manuel pour plus de détails.
À des fins de test, vous pouvez également modifier le fichier hosts sur votre ordinateur local. Ainsi, seul votre ordinateur résoudra le sous-domaine vers ce serveur, ce qui vous permettra de vérifier que tout fonctionne et de ne modifier le DNS que si c'est le cas.
Edit : Si vous souhaitez créer des "sous-sous-domaines" qui pointent vers le même répertoire que le sous-domaine, vous pouvez ajouter un ServerAlias à votre configuration Apache2, à côté du ServerName :
ServerName subdomain.mydomain.ain
ServerAlias proj.subdomain.mydomain.ain
ServerAlias *.subdoamaind.mydomain.ain
La configuration du DNS serait la même que celle illustrée ci-dessus.