In the future some upgrades may be planified :
hardware.svg
| Name | Size | Mount |
|---|---|---|
| hda1 | 40Gb | / |
| hda2 | 250Gb | /data |
/data
/htdocs (apache root)
/<domain>
/<sub-domain>
...
...
/shared (shared files)
/backup
| Name | Files to copy | Info |
|---|---|---|
| sshd | /etc/ssh/ssh(d)_config + keys | port 26912 |
| samba | /etc/samba/smb.conf | |
| mysqld | databases + root info | |
| pure-ftpd | /etc/pure-ftpd/* | mysql auth |
| httpd | /etc/apache2/{apache2.conf,sites-available} | See below |
| php 5.3 | /etc/php5/* | |
| apc | ||
| torrentflux |
Default virtualhost config :
NameVirtualHost *:80
UseCanonicalName off
<VirtualHost *:80>
ServerName 192.168.0.128
ServerAdmin webmaster@yent.eu
DocumentRoot "/data/htdocs/yent.eu"
<Directory /data/htdocs/yent.eu>
AllowOverride All
</Directory>
</VirtualHost>
Virtualhost config template :
NameVirtualHost *:80
UseCanonicalName off
<VirtualHost *:80>
ServerName *.{domain}
ServerAdmin webmaster@{domain}
DocumentRoot "/data/htdocs/{domain}/%-3+/"
<Directory /data/htdocs/{domain}/.*>
AllowOverride All
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName {domain}
ServerAdmin webmaster@{domain}
DocumentRoot "/data/htdocs/{domain}"
<Directory /data/htdocs/{domain}>
AllowOverride All
</Directory>
</VirtualHost>
Virtualhost adding script :
#!/usr/bin/perl my $httpdsites = '/etc/apache2/sites-enabled/'; my $vhtpl = " NameVirtualHost *:80 UseCanonicalName off <VirtualHost *:80> ServerName *.{domain} ServerAdmin {admin} DocumentRoot \"/data/htdocs/{domain}/%-3+/\" <Directory /data/htdocs/{domain}/.*> AllowOverride All </Directory> </VirtualHost> <VirtualHost *:80> ServerName {domain} ServerAdmin {admin} DocumentRoot \"/data/htdocs/{domain}\" <Directory /data/htdocs/{domain}> AllowOverride All </Directory> </VirtualHost>"; my $httpdhandler = '/etc/init.d/apache2'; if($#ARGV < 0) { print "Usage : $0 <domain> [<admin_email>]\n"; exit 0; } my $domain = shift @ARGV; my $admin = shift @ARGV; die('No domain provided !') unless($domain); die('Domain name has bad format !') unless($domain =~ /([a-z0-9_-]\.)+([a-z]+)/i); $admin = 'webmaster@'.$domain unless($admin); $vhtpl =~ s/\{domain\}/$domain/g; $vhtpl =~ s/\{admin\}/$admin/g; $vhtpl =~ s/^\s+|\s+$//g; open(my $fh, '>'.$httpdsites.'.conf') or die('Unable to open output file.'); print $fh $vhtpl; close $fh; `$httpdhandler restart`; 0;