そして、私は自宅でサーバーをインストールする実験をすることにしました。
だから、与えられた:
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を持っています-多くの接続が期待されていないため