ホームサーバー-AMD、Debian x64、Bind9、Apache 2、PHP5、MySQL5、Trac、Subversion、および多くの楽しみ

有名な場所での千枚通しは、まだ私に休息を与えません。

そして、私は自宅でサーバーをインストールする実験をすることにしました。



だから、与えられた:



1.ルーターに外部IPがあるホームインターネット、往復チャネルは8 Mbps、プロバイダーはQWERTY *

2.予算は1万ルーブルを超えない-少ないほど良い。 **

3.実験に対する熱烈な欲求とそのようなもの ***



*残念ながら、私の家は、より広いチャネルを持つCorbinを接続しません。 私は何に満足する必要があります

**平均的な静的コンピューターでのコンポーネントのコストの多かれ少なかれ実際の計算によって判明しました

***不平を言って「私は見ない、定期的にこれをする」と言う人のために-私はあまり頻繁に物事を設定するのではなく、すでに設定されているもののために、そして私にとってそれは純粋な娯楽のためにもっと書く=)



さて、すべての手順はここにあります。



私はすぐにそれが私のために働くと言いたいです-現状のまま。 さらに、私はタンバリンとは踊りませんでしたが、ここにグーグルと手喫煙の抜粋を示します。



おそらく、何かをより柔軟または効率的に構成でき、アドバイスや解決策を非常に喜んでいます=)





何を買うべきか考えた:



1.マザーボード

2.プロセッサ

3.ハードドライブ

4.メモリ

5.ケース

6. CPUクーラー



私はオールディストアを選択し、わずか1万個のオンラインコンポーネントを組み立てました。Intelに依存しています。 私は一晩中投げて向きを変えて考え、翌朝、AMDで休んで注文を組み立て直しました。 お金の差は約2,000であり、AMD構成は将来のアップグレードを行う傾向があります。 たとえば、OldiのSocket 775には最大2kのマザーボードがなかったため、RAMを最大16ギガバイトまで仕上げることができました。 一般的に、私はそれを試してみることにしました-私は長い間AMDとのビジネスを持っていませんでした。

利点-AMD x64 2.4 GHz、1台のハードドライブ、320 GB SATAII(オプションとして-RAID 1に追加購入)、メモリ-キングストン800 MHz、2つの2 GBストリップ(デュアルで提供)、最も安価なケースとクーラーイグルー-高コストではありませんが、かなり冷却します(数日間、温度はセンサーによって判断して60度を超えませんでした)。



これに敬意を表して、全員が家に帰り、組み立てられ、モニターに接続され、キーボード、ルーターからの配線、外部USBドライブを接続し、30分後には新たにインストールされたDebianを見ていました。



ルーターでポート転送を設定します。



53 => Bind9

80 => Apache

21 => FTP

22 => SSH









次に、3つのコマンドを実行しました。



apt-get update

apt-get upgrade

apt-get install ssh









そしてラップトップを備えたソファに横たわり、Puttyを通じてサーバーとの対話を続けます。



目標は平凡でした:



1. Bind9

2. Apache2

3. PHP5

4. MySQL 5

5. SVN

6. Trac



これはすべて、最近購入した1つのドメイン(habr.ruなど)で行われることになっており、まだどこにも委任されていません。



バインド9。 やかんの設定。





Bind9のセットアップについて聞いたことがあることを考えると、すぐにマニュアルと例に取りかかりました。

その結果、 この指示に従って設定が行われ、ドメインの特定のゾーンの設定のみが変更されました。

さらに、sendmailの設定に関係しないように、ドメインのGoogleアプリケーションにすぐに接続したかったのです。以下の設定では簡単に確認できます。

次のことが判明しました。



1.フォルダ/ etc / bind / sitesを作成しました



2.設定/etc/bind/named.confの最後の部分:



include "/etc/bind/named.conf.skazkin";









3. /etc/bind/named.conf.skazkin内:



zone "habr.ru" {

type master;

file "/etc/bind/sites/habr.ru";

};









4. /etc/bind/sites/habr.ru内:



$ORIGIN habr.ru.

$TTL 86400 ; 1 day

@ IN SOA habr.ru. master.habr.com. (

2008291104; serial

10800 ; refresh (3 hours)

3600 ; retry (15 minutes)

3600000 ; expire (1 week)

86400 ; minimum (1 day)

)

@ IN NS ns.habr.ru.

@ IN NS ns.vds.ru.

@ IN A 111.222.333.444

@ IN MX 10 ASPMX.L.GOOGLE.COM.

@ IN MX 20 ALT1.ASPMX.L.GOOGLE.COM.

@ IN MX 20 ALT2.ASPMX.L.GOOGLE.COM.

@ IN MX 30 ASPMX2.GOOGLEMAIL.COM.

@ IN MX 30 ASPMX3.GOOGLEMAIL.COM.

@ IN MX 30 ASPMX4.GOOGLEMAIL.COM.

@ IN MX 30 ASPMX5.GOOGLEMAIL.COM.



ns IN A 111.222.333.444

svn IN CNAME habr.ru.

trac IN CNAME habr.ru.

www IN CNAME habr.ru.









マニュアルの理解は何でしたか。

@記号なしですべてを登録しようとすると、バインドがそれから何を望んでいたのかを理解できなくなりました-再びGoogleの突破口、これは間違ったインデント(* hic *)によるものと思われますか?



一般的に、ここで何らかの形でそこから抜け出しました-事実は事実のままであり、ドメインは委任されました。 しかし、それについては後で。



プライマリゾーンに加えて、スレーブも作成する必要がありました。 奇妙なdebianのセットで長い間購入したVDSに行き、そこで登録しました:



1. /etc/bind/named.conf

zone "habr.ru" {

type slave;

file "/var/cache/bind/habr.ru";

masters {

111.222.333.444;

};

};







2.したがって、/ var / cache / bind / habr.ruでは、すべてがホームサーバーと同じです。



$ORIGIN habr.ru.

$TTL 86400 ; 1 day

@ IN SOA habr.ru. master.habr.com. (

2008291104; serial

10800 ; refresh (3 hours)

3600 ; retry (15 minutes)

3600000 ; expire (1 week)

86400 ; minimum (1 day)

)

@ IN NS ns.habr.ru.

@ IN NS ns.vds.ru.

@ IN A 111.222.333.444

@ IN MX 10 ASPMX.L.GOOGLE.COM.

@ IN MX 20 ALT1.ASPMX.L.GOOGLE.COM.

@ IN MX 20 ALT2.ASPMX.L.GOOGLE.COM.

@ IN MX 30 ASPMX2.GOOGLEMAIL.COM.

@ IN MX 30 ASPMX3.GOOGLEMAIL.COM.

@ IN MX 30 ASPMX4.GOOGLEMAIL.COM.

@ IN MX 30 ASPMX5.GOOGLEMAIL.COM.



ns IN A 111.222.333.444

svn IN CNAME habr.ru.

trac IN CNAME habr.ru.

www IN CNAME habr.ru.









その後、彼は自宅とVDSの両方でやった

/etc/init.d/bind9 restart # -

nslookup habr.ru 127.0.0.1









成功した解決は、ルックアップの結果であるはずです:

bash:/etc/bind# nslookup habr.ru 127.0.0.1

Server: 127.0.0.1

Address: 127.0.0.1#53



Name: habr.ru

Address: 111.222.333.444









その後、ホームサーバーで次の変更を加えて、私は



rnds reload









VDSでは、何らかの理由でこれは発生しませんでした。デーモンを再起動する必要がありました。 実は、Bind8があります。



6時間後、23時間で、代表団が成功し、夕食を食べ、お茶を飲み、テレビを見ることができたので、彼はすべてを取り付けました。



Apache2、PHP、MySQL





DebianにApacheをインストールするのがこれまでになく簡単になりました。



apt-get install apache2

apt-get install mysql-client mysql-server

apt-get install php5 php5-mysql php5-xmlrpc php5-cli php5-gd php5-curl php5-xsl









その結果、必要なモジュールを備えたホットなApache2、MySQL 5、PHP5を実行しました。



MySQLがデフォルトで空のパスワードで設定されている場合-



mysqladmin -uroot password









さて、仮想ホストをセットアップします。



/ home / sites /にすべてを保存することにしました



mkdir /home/sites

mkdir /home/sites/habr.ru









/ etc / apache2 / sites-availibleに移動します



そこに作成します



touch habr.ru

ln -s /etc/apache2/sites-availible/habr.ru /etc/apache2/sites-enabled/habr.ru









そしてhabr.ruで:



<VirtualHost *>

ServerAdmin master@habr.ru

DocumentRoot "/home/sites/habr.ru"

ServerName habr.ru

ServerAlias www.habr.ru

ErrorLog "/var/log/apache2/habr.ru.error.log"

CustomLog "/var/log/apache2/habr.ru.access.log" common

</VirtualHost>









次に-Apacheを再起動します



/etc/init.d/apache2 restart









それは以前書いたもののままでしが、VDSとそれを初めて設定することについて-つまり-



SVN + TRAC





いつものように-



apt-get install subversion

apt-get install libapache2-svn

apt-get install trac









トラックは中毒を引き起こし、私は出発しました。



サイトリポジトリ用に/home/sites/habr.ruフォルダーを選択したので、次のようにスピンすることにしました。



このマニュアルにガイドされたSVNで開始

mkdir /home/sites/svn

svnadmin create --fs-type fsfs /home/sites/svn

groupadd subversion

adduser svn_user --ingroup subversion









認証と認証キーの生成に関する行を省略したため、すぐにApacheにアクセスしました



再び/ etc / apache2 / sites-availibleに行きます



cd /etc/apache2/sites-availible

touch svn.habr.ru

ln -s /etc/apache2/sites-availible/svn.habr.ru /etc/apache2/sites-enabled/svn.habr.ru









svn.habr.ruで:



<VirtualHost *>

ServerAdmin master@habr.ru

DocumentRoot "/home/sites/svn"

ServerName svn.habr.ru

ErrorLog "/var/log/apache2/svn.habr.ru.error.log"

CustomLog "/var/log/apache2/svn.habr.ru.access.log" common

<Location />

DAV svn

SVNPath /home/sites/svn

</Location>

</VirtualHost>









Apacheを再起動します。



/etc/init.d/apache2 restart









そして-svn.habr.ruによると-私はリポジトリを持っています。



私はお茶を飲んで、Tracに進みました。



トラックは/ home / sites / tracに入れることにしました

最初にデータベースとユーザーを作成します。

mysqladmin -uroot -p create trac

: GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON trac.* TO 'trac'@'localhost' IDENTIFIED BY 'tracmegapassword';



mkdir /home/sites/trac

trac-admin initenv /home/sites/trac









SVNは既に行われたものを示します:/ home / sites / svn



そして、tracがデータベースストレージについて尋ねると、彼は彼に答えました。

mysql://trac:tracmegapassword@localhost:3306/trac









彼の手で修正/home/sites/trac/conf/trac.ini-あらゆる種類の小さなパラメーター、および[trac]セクションに示されているもの:



[trac]

...

htdocs_location = /tracdocs/









次に、Apache構成に登りました-ホストを作成します。



cd /etc/apache2/sites-availible/

touch trac.habr.ru

ln -s /etc/apache2/sites-availible/trac.habr.ru /etc/apache2/sites-enabled/trac.habr.ru









trac.habr.ru自体で:

<VirtualHost *>

ServerAdmin master@habr.ru

DocumentRoot "/home/sites/trac/htdocs"

ServerName trac.habr.ru

ErrorLog "/var/log/apache2/trac.habr.ru.error.log"

CustomLog "/var/log/apache2/trac.habr.ru.access.log" common



<Location />

SetHandler mod_python

PythonInterpreter main_interpreter

PythonHandler trac.web.modpython_frontend

PythonOption TracEnv /home/sites/trac

PythonOption TracUriRoot /

</Location>

Alias /tracdocs /usr/share/trac/htdocs

<Location /tracdocs>

SetHandler None

</Location>

</VirtualHost>









次に-Apacheを再起動します



/etc/init.d/apache2 restart









そして、最終的に、パスワードで保護されていない (これを注意深く見て、後でグローバルレベルでパスワードを設定します-そして、誰がそれを設定します-セキュリティを忘れないでください)対応するアドレスでSVNとTrac:



svn.habr.ru

trac.habr.ru



その結果、Trac、SVN、Apache2、MySQL、PHP、Bind9のレイズ、いくつかのサイトのスピンを実行する(メザニンで近い将来)サーバーを使用できます。



また、私は多くの楽しみを持ち、自分自身だけでなく家族にも利益をもたらしました。Google.apsの私のドメインの1つで自宅のメールを上回りました。



さらに、遅いVDSの支払いの必要性をなくし(セカンダリゾーンをすぐに友人に移行します)、サイトにアクセスできなくなったとき(「技術的な問題」ではなく)に何が起こるかがわかりました。また、非常に多くのドメイン、サブドメイン、ホストアカウントの制限でいくらかかるかではなく、どれだけ欲しいか。



また、今では「技術的な」一時停止なしでトレントがダウンロードされます(ラップトップで作業しているとき)。



このすべての唯一のマイナスは、狭いリターンチャネルです。 しかし、私が観察しているこのQWERTYには、トラフィックが制限された「ワイド」チャネルがあります-近い将来、100 Mbpsあたり300ルーブルを解除する可能性があり(リターントラフィックが課金されない場合)、2番目のネットワークカードで実験を行います(サーバーからの急流が別のワイヤに制限なく注がれるように)



まあ、そのようなもの。)私のための喜びと1週間の良い気分=)



さらに、視聴者にとっての質問は 、一般の人がどのブログに移行するのが良いかです-「私は賢い」、「みんなのためのLinux」、または「システム管理」ですか?)



更新:少し白髪になりました-サーバーが応答しなくなりました。 最も重要なもの-静的IPを構成するのを忘れました!



私は妻に電話し、新しい紹介について指示を与え、そして-出来上がり-



mcedit /etc/network/interfaces

# , eth1 :

auto eth1

iface eth1 inet static

address 192.168.1.5

netmask 255.255.255.0

network 192.168.1.0

broadcast 192.168.0.255

gateway 192.168.1.1

#, ...

/etc/init.d/networking restart







1つ少ない問題=)



今日は、家に帰ってそこにWi-Fiを貼り付けます。Wi-Fiの設定を考慮してこの投稿を更新します=)



更新2:



ProFTPDの機能を外部から確認しませんでした!

/etc/proftpd/proftpd.confを開く必要があります:



DefaultAddress 111.222.333.444

Port 21

PassivePorts 60000 60010

MasqueradeAddress 111.222.333.444









そして、ルーターで適切なポート転送を行います! (パッシブポート用)。 私はそれらの10を持っています-多くの接続が期待されていないため



All Articles