<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="KEYWORDS" content="Installation" /> <meta name="robots" content="index,follow" /> <link rel="shortcut icon" href="favicon.ico" /> <title>Installation - DNSdoctor</title> <style type="text/css" media="screen,projection">/*<![CDATA[*/ @import "/skins/monobook/main.css"; /*]]>*/</style> <link rel="stylesheet" type="text/css" media="print" href="commonPrint.css" /> <!--[if lt IE 5.5000]><style type="text/css">@import "/skins/monobook/IE50Fixes.css";</style><![endif]--> <!--[if IE 5.5000]><style type="text/css">@import "/skins/monobook/IE55Fixes.css";</style><![endif]--> <!--[if gte IE 6]><style type="text/css">@import "/skins/monobook/IE60Fixes.css";</style><![endif]--> <!--[if IE]><script type="text/javascript" src="/skins/common/IEFixes.js"></script> <meta http-equiv="imagetoolbar" content="no" /><![endif]--> <script type="text/javascript" src="index.html%3Ftitle=-&action=raw&gen=js"></script> <script type="text/javascript" src="wikibits.js"></script> <style type="text/css">/*<![CDATA[*/ @import "/?title=MediaWiki:Monobook.css&action=raw&ctype=text/css&smaxage=18000"; @import "/?title=-&action=raw&gen=css&maxage=18000"; /*]]>*/</style> </head> <body class="ns-0"> <div id="globalWrapper"> <div id="column-content"> <div id="content"> <a name="top" id="top"></a> <h1 class="firstHeading">Installation</h1> <div id="bodyContent"> <h3 id="siteSub">From DNSdoctor</h3> <div id="contentSub"></div> <!-- start content --> <table id='toc' class='toc'><tr><td><div id='toctitle'><h2>Contents</h2></div> <ul> <li class='toclevel-1'><a href="Installation.1.html#Requirement"><span class="tocnumber">1</span> <span class="toctext">Requirement</span></a></li> <li class='toclevel-1'><a href="Installation.1.html#Installation"><span class="tocnumber">2</span> <span class="toctext">Installation</span></a> <ul> <li class='toclevel-2'><a href="Installation.1.html#CGI"><span class="tocnumber">2.1</span> <span class="toctext">CGI</span></a></li> <li class='toclevel-2'><a href="Installation.1.html#inetd"><span class="tocnumber">2.2</span> <span class="toctext">inetd</span></a></li> </ul> </li> <li class='toclevel-1'><a href="Installation.1.html#Directory_layout"><span class="tocnumber">3</span> <span class="toctext">Directory layout</span></a></li> </ul> </td></tr></table> <p><script type="text/javascript"> if (window.showTocToggle) { var tocShowText = "show"; var tocHideText = "hide"; showTocToggle(); } </script> </p> <div class="editsection" style="float:right;margin-left:5px;">[<a href="http://www.dnsdoctor.org/?title=Installation&action=edit&section=1" title="Installation">edit</a>]</div><a name="Requirement"></a><h1> Requirement </h1> <p>To install DNSdoctor, you will need: </p> <ul><li> <a href="http://www.ruby-lang.org/" class='external text' title="http://www.ruby-lang.org/" rel="nofollow">ruby</a> (version 1.8.2) </li></ul> <p><br /> If you want the following components/improvements, there are some extra requirements: </p> <ul><li> Graphical User Interface <ul><li> <a href="http://www.gtk.org/" class='external text' title="http://www.gtk.org/" rel="nofollow">GTK2</a> </li><li> <a href="http://ruby-gnome2.sourceforge.net/" class='external text' title="http://ruby-gnome2.sourceforge.net/" rel="nofollow">Gnome2 ruby binding</a> (only the GTK part is required) </li></ul> </li><li> Web Interface <ul><li> <a href="http://httpd.apache.org/" class='external text' title="http://httpd.apache.org/" rel="nofollow">apache</a> (or any other web server) </li><li> <a href="http://www.mozilla.org/" class='external text' title="http://www.mozilla.org/" rel="nofollow">mozilla</a> (or any other web client) </li></ul> </li><li> Speed improvement <ul><li> <a href="http://xmlsoft.org/" class='external text' title="http://xmlsoft.org/" rel="nofollow">libxml2</a> </li><li> <a href="http://www.rubynet.org/modules/xml/libxml/" class='external text' title="http://www.rubynet.org/modules/xml/libxml/" rel="nofollow">ruby-libxml</a> </li></ul> </li></ul> <div class="editsection" style="float:right;margin-left:5px;">[<a href="http://www.dnsdoctor.org/?title=Installation&action=edit&section=2" title="Installation">edit</a>]</div><a name="Installation"></a><h1> Installation </h1> <p>You can go for the easy way by using pre-existing packaging, there are known to be available for the following operating systems: </p> <ul><li> Debian <a href="http://packages.debian.org/unstable/net/dnsdoctor" class='external autonumber' title="http://packages.debian.org/unstable/net/dnsdoctor" rel="nofollow">[1]</a> </li><li> Redhat </li><li> FreeBSD <a href="http://www.freebsd.org/cgi/cvsweb.cgi/ports/dns/dnsdoctor/" class='external autonumber' title="http://www.freebsd.org/cgi/cvsweb.cgi/ports/dns/dnsdoctor/" rel="nofollow">[2]</a> </li></ul> <p><br /> Otherwise you will need to perform the installation manually. </p> <ul><li> You need to fetch the dnsdoctor tarball <a href="http://www.dnsdoctor.org/download/src/" class='external autonumber' title="http://www.dnsdoctor.org/download/src/" rel="nofollow">[3]</a> and extract it: </li></ul> <pre>version=1.0.0 wget http://www.dnsdoctor.org/download/src/dnsdoctor-${version}.tgz tar xvfz dnsdoctor-${version}.tgz cd dnsdoctor </pre> <ul><li> Now you need to use <tt>ruby</tt> to start the <tt>installer.rb</tt> scripts (you generally need to become <b>root</b>), the syntax is as folllow:<br /> <code>ruby installer.rb -DKEY1=value1 -DKEYN=valuen target1 targetn</code> </li></ul> <dl><dd><ul><li>Existing options (use <code>-DKEY=value</code> <i>after</i> the <tt>installer.rb</tt>): </li></ul> <dl><dd><dl><dt> RUBY </dt><dd> Full path to the ruby interpreter. It is useful if you have several versions of the ruby interpreter, it will let you choose the one that you will use for <tt>dnsdoctor</tt>. </dd><dt> PREFIX </dt><dd> Prefix to use for the installation (default to: <tt>/usr/local/</tt>). If you are on a FreeBSD system you will choose <tt>/usr/local/</tt>, if you are on Linux you will prefer <tt>/usr</tt>, another possibility is <tt>/opt</tt> </dd><dt> HTML_PATH </dt><dd> Prefix to use for refering to an URL (default to: <tt>/dnsdoctor</tt>). For example the <a href="http://demo.dnsdoctor.org/" class='external free' title="http://demo.dnsdoctor.org/" rel="nofollow">http://demo.dnsdoctor.org/</a> site is set to use an empty value. </dd></dl> </dd></dl> </dd></dl> <dl><dd><ul><li>Existing targets: </li></ul> <dl><dd><dl><dt> all </dt><dd> install everything (ie: common cli cgi ...) </dd><dt> common </dt><dd> install the common part. It is requiered by the targets below and you will need to install at least one of them to have something usefull. </dd><dt> cli </dt><dd> install the cli part (command line interface) </dd><dt> cgi </dt><dd> install the cgi and a set of web pages provided as an example </dd></dl> </dd></dl> </dd></dl> <pre>ruby installer.rb all </pre> <ul><li> The last (optional) step is to edit the configuration file (<tt>dnsdoctor.conf</tt>) to adapt it to your system. Typical items that need to be changed are the programs used to test the icmp connectivity (<tt>ping</tt>), the list of rules to apply according to the TLD, ... </li></ul> <div class="editsection" style="float:right;margin-left:5px;">[<a href="http://www.dnsdoctor.org/?title=Installation&action=edit&section=3" title="Installation">edit</a>]</div><a name="CGI"></a><h2> CGI </h2> <p>Here is an example of <a href="http://httpd.apache.org" class='external text' title="http://httpd.apache.org" rel="nofollow">Apache2</a> configuration file, assuming DNSdoctor has been installed in <tt>/usr/local/</tt> (<code>PREFIX=/usr/local</code>) and for html pages generated in the <tt>/dnsdoctor/</tt> namespace (<code>HTML_PATH=/dnsdoctor</code>). </p><p>The following aliases map the URL to the location of the needed files on the filesystem: </p> <pre>AliasMatch ^/dnsdoctor/?$ /usr/local/libexec/dnsdoctor/www/html/form.html AliasMatch ^/dnsdoctor/(en|fr)/?$ /usr/local/libexec/dnsdoctor/www/html/form.html.$1 AliasMatch ^/dnsdoctor/(en|fr)/(.*)$ /usr/local/libexec/dnsdoctor/www/html/$2.$1 ScriptAlias /dnsdoctor/cgi-bin/ /usr/local/libexec/dnsdoctor/cgi-bin/ Alias /dnsdoctor/js/ /usr/local/libexec/dnsdoctor/www/js/ Alias /dnsdoctor/style/ /usr/local/libexec/dnsdoctor/www/style/ Alias /dnsdoctor/img/ /usr/local/libexec/dnsdoctor/www/img/ Alias /dnsdoctor/ /usr/local/libexec/dnsdoctor/www/html/ </pre> <p>The directory containing the CGI (or only the file) need to have CGI permissions: </p> <pre><Directory /usr/local/libexec/dnsdoctor/cgi-bin/> Options ExecCGI </Directory> </pre> <p>For the web pages given as an <i>example</i>, as they can exist in several languages (only english and french for now) you need to enable the <tt>MultiViews</tt>: </p> <pre><Directory /usr/local/libexec/dnsdoctor/www/> Options MultiViews </Directory> </pre> <div class="editsection" style="float:right;margin-left:5px;">[<a href="http://www.dnsdoctor.org/?title=Installation&action=edit&section=4" title="Installation">edit</a>]</div><a name="inetd"></a><h2> inetd </h2> <p>First you need to edit the file <tt>/etc/services</tt>, which contains information regarding the known services available in the Internet to add the following line (the port 1904 is just an example): </p> <pre>dnsdoctor 1904/tcp # DNSdoctor service </pre> <p>You also need to configure <tt>inetd</tt>, so that it is listening for the new dnsdoctor service, this is done by adding the line in <tt>inetd.conf</tt>: </p> <pre>dnsdoctor stream tcp nowait root /usr/local/bin/dnsdoctor dnsdoctor --INPUT=inetd </pre> <p>If you have an IPv6 stack installed but don't have the connectivity with the outside world add the option <tt>-4</tt> to the <tt>dnsdoctor</tt> command. </p> <div class="editsection" style="float:right;margin-left:5px;">[<a href="http://www.dnsdoctor.org/?title=Installation&action=edit&section=5" title="Installation">edit</a>]</div><a name="Directory_layout"></a><h1> Directory layout </h1> <p>Below is the directory structure used by <tt>dnsdoctor</tt> (in the case where only the <tt>PREFIX</tt> variable has been used during the installation). </p> <pre>PREFIX |-- bin | `-- dnsdoctor # Command line |-- etc | `-- dnsdoctor # Configuration directory | |-- dnsdoctor.conf # Main configuration file | |-- rootservers # List of the root servers (YAML file) | |-- reverse.profile # Profile for checking reverse delegation | |-- ... # ... | `-- default.profile # Default set of rules to be used |-- libexec | `--dnsdoctor | |-- cgi-bin | | `-- diagnose.cgi # CGI | |-- html # HTML directory (javascript, css, pics, ...) | | |-- en # English version | | |-- ... # ... | | `-- fr # French version | |-- locale # Localisation files | |-- test # test set | |-- lib # Extra libraries (NResolv, Address, ...) | `-- dnsdoctor # Core component `-- share `-- doc `-- dnsdoctor # Documentation </pre> <!-- Saved in parser cache with key dnsdoctor_wiki:pcache:idhash:741-0!1!0!0!!en!2 and timestamp 20060212184958 --> <div class="printfooter"> Retrieved from "<a href="http://www.dnsdoctor.org/Installation">http://www.dnsdoctor.org/Installation</a>"</div> <div id="catlinks"><p class='catlinks'><a href="http://www.dnsdoctor.org/?title=Special:Categories&article=Installation" title="Special:Categories">Categories</a>: <a href="http://www.dnsdoctor.org/Category:Documentation" title="Category:Documentation">Documentation</a></p></div> <!-- end content --> <div class="visualClear"></div> </div> </div> </div> <div id="column-one"> <div id="p-cactions" class="portlet"> <h5>Views</h5> <ul> <li id="ca-nstab-main" class="selected" ><a href="http://www.dnsdoctor.org/Installation">Article</a></li><li id="ca-talk" class="new" ><a href="http://www.dnsdoctor.org/?title=Talk:Installation&action=edit">Discussion</a></li><li id="ca-edit" ><a href="http://www.dnsdoctor.org/?title=Installation&action=edit">Edit</a></li><li id="ca-history" ><a href="http://www.dnsdoctor.org/?title=Installation&action=history">History</a></li> </ul> </div> <div class="portlet" id="p-personal"> <h5>Personal tools</h5> <div class="pBody"> <ul> <li id="pt-login"><a href="http://www.dnsdoctor.org/?title=Special:Userlogin&returnto=Installation">Create an account or log in</a></li> </ul> </div> </div> <div class="portlet" id="p-logo"> <a style="background-image: url(/images/docteur4.png);" href="http://www.dnsdoctor.org/Main_Page" title="Main Page"></a> </div> <script type="text/javascript"> if (window.isMSIE55) fixalpha(); </script> <div class='portlet' id='p-navigation'> <h5>Navigation</h5> <div class='pBody'> <ul> <li id="n-DNSdoctor"><a href="http://www.dnsdoctor.org/DNSdoctor">DNSdoctor</a></li> <li id="n-portal"><a href="http://www.dnsdoctor.org/DNSdoctor:Community_Portal">Community portal</a></li> <li id="n-currentevents"><a href="http://www.dnsdoctor.org/Current_events">Current events</a></li> <li id="n-Screenshots"><a href="http://www.dnsdoctor.org/Screenshots">Screenshots</a></li> <li id="n-Documentation"><a href="http://www.dnsdoctor.org/Documentation">Documentation</a></li> <li id="n-Download"><a href="http://www.dnsdoctor.org/Download">Download</a></li> <li id="n-Releases"><a href="http://www.dnsdoctor.org/Releases">Releases</a></li> <li id="n-Resources"><a href="http://www.dnsdoctor.org/Resources">Resources</a></li> <li id="n-Roadmap"><a href="http://www.dnsdoctor.org/Roadmap">Roadmap</a></li> <li id="n-CVS"><a href="http://www.dnsdoctor.org/CVS">CVS</a></li> <li id="n-Bugs"><a href="http://www.dnsdoctor.org/Bugs">Bugs</a></li> <li id="n-History/Credits"><a href="http://www.dnsdoctor.org/History/Credits">History/Credits</a></li> </ul> </div> </div> <div id="p-search" class="portlet"> <h5><label for="searchInput">Search</label></h5> <div class="pBody"> <form name="searchform" action="http://www.dnsdoctor.org/Special:Search" id="searchform"> <input id="searchInput" name="search" type="text" accesskey="f" value="" /> <input type='submit' name="go" class="searchButton" id="searchGoButton" value="Go" /> <input type='submit' name="fulltext" class="searchButton" value="Search" /> </form> </div> </div> <div class="portlet" id="p-tb"> <h5>Toolbox</h5> <div class="pBody"> <ul> <li id="t-whatlinkshere"><a href="http://www.dnsdoctor.org/Special:Whatlinkshere/Installation">What links here</a></li> <li id="t-recentchangeslinked"><a href="http://www.dnsdoctor.org/Special:Recentchangeslinked/Installation">Related changes</a></li> <li id="t-specialpages"><a href="http://www.dnsdoctor.org/Special:Specialpages">Special pages</a></li> <li id="t-print"><a href="http://www.dnsdoctor.org/?title=Installation&printable=yes">Printable version</a></li> </ul> </div> </div> </div><!-- end of the left (by default at least) column --> <div class="visualClear"></div> <div id="footer"> <div id="f-poweredbyico"><a href="http://www.mediawiki.org/"><img src="poweredby_mediawiki_88x31.png" alt="MediaWiki" /></a></div> <ul id="f-list"> <li id="f-lastmod"> This page was last modified 22:12, 21 April 2005.</li> <li id="f-viewcount">This page has been accessed 871 times.</li> <li id="f-about"><a href="http://www.dnsdoctor.org/DNSdoctor:About" title="DNSdoctor:About">About DNSdoctor</a></li> <li id="f-disclaimer"><a href="http://www.dnsdoctor.org/DNSdoctor:General_disclaimer" title="DNSdoctor:General disclaimer">Disclaimers</a></li> </ul> </div> </div> <!-- Served by www.dnsdoctor.org in 0.29 secs. --> </body> </html>