Before you install DnsZone you should be sure to have your database of choice ready. You probably want to have a special user for the database. It's advisable to read the SECURITY notes in the distribution. You need a running Apache/mod_perl server compiled with all the bells and whistles. I normally do this something like this: Get the latest mod_perl from http://perl.apache.org/dist/ Get the latest apache from http://httpd.apache.org/dist/httpd/ (This assumes Apache 1.3.20 and mod_perl 1.25) $ tar -zxf apache_1.3.20.tar.gz $ tar -zxf mod_perl-1.25.tar.gz $ cd mod_perl-1.25.tar.gz $ perl Makefile.PL \ DO_HTTPD=1 \ APACHE_SRC=../apache_1.3.20 \ USE_APACI=1 \ EVERYTHING=1 \ APACHE_PREFIX=/usr/local/modperl $ make $ make test $ make install That should get your mod_perl running. Recommended modules to install before installing DnsZone: Bundle::Apache, Apache::Request, Apache::AuthCookie, Apache::AuthTicket, Net::DNS,' CGI::FastTemplate, Email::Valid, Bundle::ABH. You might be forced to download Apache::Request 0.3103 by hand and install it, the package is available from: http://www.cpan.org/authors/id/J/JI/JIMW/libapreq-0.31_03.tar.gz To install DnsZone: $ perl Makefile.PL $ make $ make install To create the language dbm file you type: $ make language create a directory called dnszone under your apache installation $ cp lang/DnsZoneLang /path/to/your/apache/dnszone If you experience problems with the dbm file it could be a permission issue, so a chmod 666 DnsZoneLang might come handy. To install the templates: create a directory under the dnszone directory in your apache installation called 'template'. $ cp -R templates/standard/* /path/to/your/apache/dnszone/template After DnsZone is installed you need to activate it by adding some directives to your Apache configuration files (sample configuration also available as conf/dnszone.conf): PerlModule Apache::DBI # for persistant connections PerlModule Apache::DnsZone PerlModule Apache::DnsZone::DB::MySQL # or your db of choice ServerAdmin you@yourdomain DocumentRoot /usr/local/modperl/htdocs ServerName dnszone.at.yourdomain ErrorLog logs/dnszone-error_log TransferLog logs/dnszone-access_log PerlSetVar DnsZoneDBsrc 'dbi:mysql:dnszone' PerlSetVar DnsZoneDBuser 'dnszone' PerlSetVar DnsZoneDBpass '*******' PerlSetVar DnsZoneDebugLevel 1 PerlSetVar DnsZoneLangDir '/usr/local/modperl/dnszone' PerlSetVar DnsZoneTemplateDir '/usr/local/modperl/dnszone/template' PerlSetVar DnsZoneLoginLang 'en' # or 'de' 'se' 'dk' 'fr' 'it' # DnsZoneLoginLang is used if the browser doesn't send an 'Accept-Language' header and the language isn't in DnsZone already PerlModule Apache::DnsZone::AuthCookie PerlSetVar DnsZoneTicketTable 'tickets:ticket_hash:ts' PerlSetVar DnsZoneTicketUserTable 'users:username:password' PerlSetVar DnsZoneTicketPasswordStyle cleartext PerlSetVar DnsZoneTicketSecretTable 'ticketsecrets:sec_data:sec_version' PerlSetVar DnsZoneTicketExpires 60 PerlSetVar DnsZoneTicketLogoutURI / PerlSetVar DnsZoneTicketLoginHandler /login PerlSetVar DnsZoneTicketIdleTimeout 10 PerlSetVar DnsZonePath / PerlSetVar DnsZoneLoginScript /loginform SetHandler perl-script PerlHandler Apache::DnsZone AuthType Apache::DnsZone::AuthCookie AuthName DnsZone PerlAuthenHandler Apache::DnsZone::AuthCookie->authenticate PerlAuthzHandler Apache::DnsZone::AuthCookie->authorize SetHandler perl-script Perlhandler Apache::DnsZone::AuthCookie->login_screen AuthType Apache::DnsZone::AuthCookie AuthName DnsZone SetHandler perl-script PerlHandler Apache::DnsZone::AuthCookie->login AuthType Apache::DnsZone::AuthCookie AuthName DnsZone Copy the contents of htdocs/ to /path/to/your/apache/htdocs $ cp -R htdocs/* /path/to/your/apache/htdocs Now you need to import the tables that DnsZone needs into your database. for mysql: $ mysql -udnszone -p dnszone < sql/mysql.sql Before you can start using DnsZone you need to set your nameserver to allow transfers and updates on the domain you want to make changes to through DnsZone. In named.conf: zone "example.com" { type master; allow-transfer { 127.0.0.1; your.ip; }; allow-update { your.ip; }; file "example.com"; }; To create a new user in DnsZone: $ cd bin/mysql $ perl adduser.pl Username to add: test Password for test: Password again: Users email: test@example.com Language: en test(test@example.com:en) added... To add a domain to the user: $ perl addzone.pl Domain for inserting into DnsZone: example.com User to add example.com for: test From which nameserver do you want to transfer the zone for example.com: yourname.server Performing Zone transfer... Which restrictions do you want to place on the user: How many A records can he have: 10 How many CNAME records can he have: 10 How many MX records can he have: 10 How many NS records can he have: 10 How many TXT records can he have: 10 Do you want the SOA to be locked (n): Inserting records into db... NS: example.com yourname.server 86400 Do you want this record to be locked (n): y MX: example.com mail.example.com 10 86400 Do you want this record to be locked (n): A: mail.example.com 192.168.1.1 86400 Do you want this record to be locked (n): example.com succesfully imported You should now be set for accessing the webinterface, fire up your favorite browser and point it to the host you created in apache. If the software is complaining about missing modules you need to install those. If you encounter any bugs please report them so they can be fixed.