Installation ------------ 1) Untar the distribution on a directory accessible from your web server 2) Assuming you already have MySQL setup and running, with a user and a database configured, create a MySQL table where informations of the dynamic dns will be stored: mysql -u USER -pPASSWORD DBNAME < init.sql For more information, please refer to the documentation of MySQL on http://www.mysql.com/doc/ or to your dbadmin. 3) configure bind to create one or more zones in which dynamic dns will stay: - creating the zone for dynamic updates: we will take dyndns.example.com as this zone, there are two possible different configurations: - the first method is secure and allow updates from any ip address which knows the update key: key "mykey" { algorithm hmac-md5; secret "mysharedsecret=="; }; zone "dyndns.example.com" IN { type master; file "dyndns.example.com"; allow-update { key mykey; }; allow-transfer { managementip;}; notify yes; }; You should replace mysharedsecret== by a key generated with the command dnssec-keygen: to create a key named mykey with dnssec-keygen: dnssec-keygen -a HMAC-MD5 -b 128 -n zone mykey This will create 2 files named Kmykey.+xxx+xxxxx.private and Kmykey.+xxx+xxxxx.key edit the file named Kmykey.+xxx+xxxxx.key with your favorite editor and take the value which is after the "Key: " statement, this is the shared key, for example: 9B/moAXgQJxYqBXZ9wFCtw== Next you replace "mysharedsecret==" with this value. - the second method is insecure and allows updates by ip address but doesn't need a key: zone "dyndns.example.com" IN { type master; file "dyndns.example.com"; allow-update { webserverip; }; allow-transfer { managementip;}; notify yes; }; you should replace webserverip by the ip of the web server which will request updates to the dns server aka the ip of the machine where the php scripts are installed. Managementip should be replaced by the ip address from where you would like to be able to get the entire content of the zone file. you should then create a file named dyndns.example.com in the directory specified by the statement "directory" in the options section of your named.conf file. this file should look like: $TTL 86400 $ORIGIN dyndns.example.com. @ 1D IN SOA @ root ( 85 ; serial 1H ; refresh 15M ; retry 4W ; expiry 1D ) ; minimum 1D IN NS ns ns 1D IN A ip_address_of_this_nameserver repeat these steps as many time as many times as you want to create more DNS zones. now restart your nameserver, it should start without errors or warn you that "zone 'dyndns.example.com' allows updates by IP address, which is insecure". For more information about bind configuration, you sould refer to the Bind 9 Administrator Reference Manual: http://www.nominum.com/ressources/documentation/Bv9ARM.pdf and to the various docs availables on internet. 4) edit config.inc.php to suit your local configuration and preferences. 5) add the dynamic domains to the sql table: you should create sql queries for each of your zones in the form: INSERT INTO domains VALUES ('','dyndns.example.com','www,ns,ftp,mail,mx,pop,smtp','195.238.2.21','mykey:9B/moAXgQJxYqBXZ9wFCtw==','1','1','1','-1'); name of the list of excluded hosts ip address nameofkey:keyvalue | | |URL | zone (hostnames which can't be of dns | |NS | used by users) server |A | allowed types | of records | in this zone | maximum number of hosts in this zone--------------------- (-1 unlimited) execute these queries with mysql: launch mysql: mysql -u USER -pPASSWORD DBNAME and simply enter the queries. It should return something like: Query OK, 1 row affected (0.01 sec) For each successfull query 6) If you have configured URL redirection support for some domains, you should add this configuration in a virtualhost context in your httpd.conf: DocumentRoot "/Path/To/ProutDNS/dns/url" ServerName *.dyndns.example.com ServerAlias *.other.zone.com DirectoryIndex index.php 7) the ProutDNS system should now be ready to accept new users and web updates. Upgrade ------- from 0.6.1 to 0.6.2 : run the following mysql query on the proutdns database: ALTER TABLE `users` ADD `key` TEXT NOT NULL AFTER `email`; from 0.6 to 0.6.2: run the following mysql queries on the proutdns database: ALTER TABLE `vhosts` ADD `regdate` INT(10) NOT NULL AFTER `id_domain`; ALTER TABLE `users` ADD `key` TEXT NOT NULL AFTER `email`; from 0.5x to 0.6.2: execute the init.sql execute the step 5) of the installation process edit the file 'upgrade_from_052.php' and modify the 'Config' section to suit your needs then access this file from your favourite browser, it should return you the number of users/vhost added then if you want you can delete the 'vhost' table