查看完整版本: [轉貼]MyDNS 安裝筆記 for Debian Linux

chun 2009-11-18 19:55

[轉貼]MyDNS 安裝筆記 for Debian Linux

http://blog.roga.tw/2009/08/25/2292<br><br><p>前置作業:</p>
<p>必須先有一個資料庫(MySQL, PostgreSQL),並且正確設定帳號密碼。並且安裝 MySQL CLient Library
(套件名稱類似:libmysqlclient16,搜尋方式 apt-cache search libmysqlclient )<br>
<span id="more-2292"></span><br>
安裝步驟:<br>
<code><br>
cd /tmp<br>
wget http://mydns.bboy.net/download/mydns-1.1.0.tar.gz<br>
tar xvfz mydns-1.1.0.tar.gz<br>
</code><br>
下載原始檔,存到 /tmp 之後解壓縮。<br>
<code><br>
cd mydns-1.1.0/<br>
./configure<br>
make<br>
make install<br>
</code><br>
切換到目錄,並且編譯,預設使用 MySQL ,如果 ./configure –without-mysql 代表使用 PostgreSQL 。編譯完成後,會有提示如下:</p>
<pre>  ###  mydns version 1.1.0 installed!<br>  ###<br>  ###  See the file QUICKSTART if you are in a hurry.<br>  ###  Otherwise, consult the manual (in doc/).<br>  ###<br>  ###  The MyDNS server program was installed as<br>  ###  /usr/local/sbin/mydns<br>  ###<br>  ###  Your configuration file should be installed as<br>  ###  /etc/mydns.conf<br>  ###  (You can auto-create it with "make conf")<br>  ###<br></pre>
<p>編輯 /etc/mydns.conf ,裡面可以修改資料庫的連線設定,以及執行 MyDNS 的使用者和群組(可設定為 nobody/nogroup)。然後利用 mydns 自己的指令新增資料表:<br>
<code><br>
mydns --create-tables | mysql -u root -p dbname<br>
</code><br>
dbname 是您的資料庫的名稱,這個指令會建立 soa 和 rr 兩個資料表。<br>
接著在資料庫中修改欄位屬性:<br>
<code><br>
ALTER TABLE soa ADD COLUMN active ENUM('Y','N') NOT NULL;<br>
ALTER TABLE soa ADD INDEX (active);<br>
ALTER TABLE soa ADD COLUMN xfer CHAR(255) NOT NULL;<br>
</code><br>
然後在 /etc/init.d 裡面建立一個 shell script </p>
<div class="syntaxhighlighter bash" id="highlighter_469201"><div class="bar"><div class="toolbar"><a class="item viewSource" style="width: 16px; height: 16px;" title="view source" href="http://blog.roga.tw/2009/08/25/2292#viewSource">view source</a><div class="item copyToClipboard"><embed id="highlighter_469201_clipboard" type="application/x-shockwave-flash" title="copy to clipboard" allowscriptaccess="always" wmode="transparent" flashvars="highlighterId=highlighter_469201" menu="false" src="http://blog.roga.tw/wp-content/plugins/syntaxhighlighter/syntaxhighlighter/scripts/clipboard.swf" width="16" height="16"></div><a class="item printSource" style="width: 16px; height: 16px;" title="print" href="http://blog.roga.tw/2009/08/25/2292#printSource">print</a><a class="item about" style="width: 16px; height: 16px;" title="?" href="http://blog.roga.tw/2009/08/25/2292#about">?</a></div></div><div class="lines"><div class="line alt1"><table><tbody><tr><td class="number"><code>01</code></td><td class="content"><code class="bash comments">#! /bin/sh</code></td></tr></tbody></table></div><div class="line alt2"><table><tbody><tr><td class="number"><code>02</code></td><td class="content"><code class="bash comments"># mydns&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Start the MyDNS server</code></td></tr></tbody></table></div><div class="line alt1"><table><tbody><tr><td class="number"><code>03</code></td><td class="content"><code class="bash comments"># Author:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Falko Timme &lt;ft@falkotimme.com&gt;.</code></td></tr></tbody></table></div><div class="line alt2"><table><tbody><tr><td class="number"><code>04</code></td><td class="content"><code class="bash functions">set</code> <code class="bash plain">-e</code></td></tr></tbody></table></div><div class="line alt1"><table><tbody><tr><td class="number"><code>05</code></td><td class="content">&nbsp;</td></tr></tbody></table></div><div class="line alt2"><table><tbody><tr><td class="number"><code>06</code></td><td class="content"><code class="bash plain">PATH=/usr/</code><code class="bash functions">local</code><code class="bash plain">/sbin:/usr/</code><code class="bash functions">local</code><code class="bash plain">/bin:/sbin:/bin:/usr/sbin:/usr/bin</code></td></tr></tbody></table></div><div class="line alt1"><table><tbody><tr><td class="number"><code>07</code></td><td class="content"><code class="bash plain">NAME=mydns</code></td></tr></tbody></table></div><div class="line alt2"><table><tbody><tr><td class="number"><code>08</code></td><td class="content"><code class="bash plain">DAEMON=/usr/</code><code class="bash functions">local</code><code class="bash plain">/sbin/$NAME</code></td></tr></tbody></table></div><div class="line alt1"><table><tbody><tr><td class="number"><code>09</code></td><td class="content"><code class="bash plain">DESC=</code><code class="bash string">"MyDNS Server"</code></td></tr></tbody></table></div><div class="line alt2"><table><tbody><tr><td class="number"><code>10</code></td><td class="content">&nbsp;</td></tr></tbody></table></div><div class="line alt1"><table><tbody><tr><td class="number"><code>11</code></td><td class="content"><code class="bash plain">SCRIPTNAME=/etc/init.d/$NAME</code></td></tr></tbody></table></div><div class="line alt2"><table><tbody><tr><td class="number"><code>12</code></td><td class="content">&nbsp;</td></tr></tbody></table></div><div class="line alt1"><table><tbody><tr><td class="number"><code>13</code></td><td class="content"><code class="bash comments"># Gracefully exit if the package has been removed.</code></td></tr></tbody></table></div><div class="line alt2"><table><tbody><tr><td class="number"><code>14</code></td><td class="content"><code class="bash functions">test</code> <code class="bash plain">-x $DAEMON || </code><code class="bash functions">exit</code> <code class="bash plain">0</code></td></tr></tbody></table></div><div class="line alt1"><table><tbody><tr><td class="number"><code>15</code></td><td class="content">&nbsp;</td></tr></tbody></table></div><div class="line alt2"><table><tbody><tr><td class="number"><code>16</code></td><td class="content"><code class="bash keyword">case</code> <code class="bash string">"$1"</code> <code class="bash keyword">in</code></td></tr></tbody></table></div><div class="line alt1"><table><tbody><tr><td class="number"><code>17</code></td><td class="content"><code class="spaces">&nbsp;&nbsp;</code><code class="bash plain">start)</code></td></tr></tbody></table></div><div class="line alt2"><table><tbody><tr><td class="number"><code>18</code></td><td class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="bash functions">echo</code> <code class="bash plain">-n </code><code class="bash string">"Starting $DESC: $NAME"</code></td></tr></tbody></table></div><div class="line alt1"><table><tbody><tr><td class="number"><code>19</code></td><td class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="bash plain">$DAEMON --background</code></td></tr></tbody></table></div><div class="line alt2"><table><tbody><tr><td class="number"><code>20</code></td><td class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="bash functions">echo</code> <code class="bash string">"."</code></td></tr></tbody></table></div><div class="line alt1"><table><tbody><tr><td class="number"><code>21</code></td><td class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="bash plain">;;</code></td></tr></tbody></table></div><div class="line alt2"><table><tbody><tr><td class="number"><code>22</code></td><td class="content"><code class="spaces">&nbsp;&nbsp;</code><code class="bash plain">stop)</code></td></tr></tbody></table></div><div class="line alt1"><table><tbody><tr><td class="number"><code>23</code></td><td class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="bash functions">echo</code> <code class="bash string">"Stopping $DESC: $NAME."</code></td></tr></tbody></table></div><div class="line alt2"><table><tbody><tr><td class="number"><code>24</code></td><td class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="bash functions">kill</code> <code class="bash plain">-9 `pidof $NAME` &amp;&gt; /dev/null</code></td></tr></tbody></table></div><div class="line alt1"><table><tbody><tr><td class="number"><code>25</code></td><td class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="bash plain">;;</code></td></tr></tbody></table></div><div class="line alt2"><table><tbody><tr><td class="number"><code>26</code></td><td class="content"><code class="spaces">&nbsp;&nbsp;</code><code class="bash plain">restart)</code></td></tr></tbody></table></div><div class="line alt1"><table><tbody><tr><td class="number"><code>27</code></td><td class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="bash functions">echo</code> <code class="bash string">"Restarting $DESC: $NAME."</code></td></tr></tbody></table></div><div class="line alt2"><table><tbody><tr><td class="number"><code>28</code></td><td class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="bash plain">$0 stop &amp;&amp; </code><code class="bash functions">sleep</code> <code class="bash plain">1</code></td></tr></tbody></table></div><div class="line alt1"><table><tbody><tr><td class="number"><code>29</code></td><td class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="bash plain">$0 start</code></td></tr></tbody></table></div><div class="line alt2"><table><tbody><tr><td class="number"><code>30</code></td><td class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="bash plain">;;</code></td></tr></tbody></table></div><div class="line alt1"><table><tbody><tr><td class="number"><code>31</code></td><td class="content"><code class="spaces">&nbsp;&nbsp;</code><code class="bash plain">*)</code></td></tr></tbody></table></div><div class="line alt2"><table><tbody><tr><td class="number"><code>32</code></td><td class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="bash functions">echo</code> <code class="bash string">"Usage: $SCRIPTNAME {start|stop|restart}"</code> <code class="bash plain">&gt;&amp;2</code></td></tr></tbody></table></div><div class="line alt1"><table><tbody><tr><td class="number"><code>33</code></td><td class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="bash functions">exit</code> <code class="bash plain">1</code></td></tr></tbody></table></div><div class="line alt2"><table><tbody><tr><td class="number"><code>34</code></td><td class="content"><code class="spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="bash plain">;;</code></td></tr></tbody></table></div><div class="line alt1"><table><tbody><tr><td class="number"><code>35</code></td><td class="content"><code class="bash plain">esac</code></td></tr></tbody></table></div><div class="line alt2"><table><tbody><tr><td class="number"><code>36</code></td><td class="content"><code class="bash functions">exit</code> <code class="bash plain">0</code></td></tr></tbody></table></div></div></div>
<p>執行 /etc/init.d/mydns start 看看能不能跑起來,沒有問題的話,讓服務開機自動啟動:<br>
<code><br>
update-rc.d mydns defaults 21 22<br>
</code><br>
接著複製系統裡面內建的管理介面到 www 目錄下:<br>
<code><br>
cp /tmp/mydns-1.0.0/contrib/admin.php /var/www<br>
</code><br>
接著修改 admin.php ,修改資料庫連線設定。如果把 $auto_update_serial 和 $auto_update_ptr 設定為 1 ,系統會在修改資料的時候,自動增加數值。</p>
<p>參考資料:<a onclick="javascript:pageTracker._trackPageview('/outgoing/www.howtoforge.com/mydns_name_server');" href="http://www.howtoforge.com/mydns_name_server">Running A MySQL-Based DNS Server: MyDNS</a></p><br>
頁: [1]
查看完整版本: [轉貼]MyDNS 安裝筆記 for Debian Linux