ウェブサーバーを作り直したのでメモ。

パッケージのインストール

$sudo aptitude install apache2 libapache2-mod-php5 mysql-server php5-mysql

mysqlのrootパスワードが聞かれるので入力。

Apacheの設定

セキュリティの設定とPHPの有効化の設定。

コメントをはずして、デフォルトで全てのディレクトリにローカル以外からアクセスを禁止しておく。

$sudo vi /etc/apache2/conf.d/security

 8 <Directory />
 9	AllowOverride None
10	Order Deny,Allow
11	Deny from all
12	Allow from 192.168.0.0/24 #LANのネットワーク
13 </Directory>

余計な情報をヘッダーに出力させない。

29 ServerTokens Prod

ServerSignatureをOff

40 ServerSignature Off
41 #ServerSignature On

ユーザーディレクトリでPHPが無効になっているので有効にする。

$sudo vi /etc/apache2/mods-available/php5.conf

 8 # To re-enable php in user directories comment the following lines
 9 # (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
10 # prevents .htaccess files from disabling it.
11 #<IfModule mod_userdir.c>
12 #	<Directory /home/*/public_html>
13 #		php_admin_value engine Off
14 #	</Directory>
15 #</IfModule>

Onにはするな、と書いてあるようなので素直にコメントアウト。コンテンツをuserdirで動かしていたのでPHPが全部動かなくなった。これに気付かず今回サーバーを作り直した。

必要なモジュールの有効化

$sudo a2enmod <モジュール名>

無効化

$sudo a2dismod <モジュール名>

Apacheの再起動

$sudo /etc/init.d/apache2 restart (さらに…)

[amazon_tags]


2月 18th, 2011

Posted In: ソフトウェア

タグ: , , , , , , ,

Leave a Comment

Debian 6.0(squeeze)にKVM環境をインストールする。管理ツールはaptでインストールできで操作が簡単なvirt-managerを使う。

パッケージのインストール

$sudo aptitude install virt-manager qemu-kvm hal

halが入ってないとネットワークデバイスが取得できないので一緒にインストールする。

パッケージをインストールしたら、libvirtグループに管理するユーザーを登録する。

$sudo adduser <ユーザー名> libvirt

ブリッジデバイスの作成

設定が勝手に変わらないようにNetwork Managerを削除

$sudo aptitude remove network-manager

ブリッジにするデバイスの構成をmanualして、ブリッジに設定を記述する。

auto eth0 iface eth0 inet manual auto br0 iface br0 inet static   address 192.168.0.10   network 192.168.0.0   netmask 255.255.255.0   broadcast 192.168.0.255   gateway 192.168.0.1   bridge_ports eth0 #ブリッジにするデバイス   bridge_stp off #STPをOff

再起動

KVMとブリッジを有効にするために再起動する。

$sudo reboot

virt-managerの起動

メニューバーから「アプリケーション」→「システムツール」→「仮想マシンマネージャ」。または、コマンドで起動する。

$virt-manager

ゲストはウィザードで簡単に作成できる。

[amazon_tags]


2月 18th, 2011

Posted In: ソフトウェア

タグ: , , , ,

Leave a Comment

今までは/etc/sudoersをのコメントをはずしてsudoグループを登録する必要があったが、squeezeでは標準で登録されている。sudoグループに入れるだけでいい。

sudoが入っていない場合インストールする

#aptitude install sudo

sudoグループにユーザーを追加

#adduser <ユーザー名> sudo

adduserでユーザーをグループに入れることができる。

[amazon_tags]


2月 16th, 2011

Posted In: ソフトウェア

タグ: , ,

Leave a Comment

旧ディスクのデータを取り出すためにRAID+LVMのディスクをマウントしたのでメモ。

RAID

構築済みのRAIDを追加するにはこうする。

$sudo mdadm -A <RAIDアレイの名前> <RAIDデバイスの名前> (<RAIDデバイスの名前>)…

/dev/sdc2と/dev/sdd2のRAIDを追加する場合(すでにRAIDアレイmd0,md1が存在する)

$sudo -A /dev/md2 /dev/sdc2 /dev/sdd2

LVM

ボリュームグループを認識させる

$sudo vgscan

認識されたボリュームグループが表示される

全てのボリュームグループを有効にする

$sudo vgchange -a y

ボリュームグループを指定しないと全てが対象になる

特定のボリュームグループを有効にする

$sudo vgchange -a y <ボリュームグループ>

ボリュームグループを無効にする

$sudo vgchange -a n <ボリュームグループ>

論理ボリュームのマウント

$sudo mount /dev/<ボリュームグループ>/<論理ボリューム> <マウント位置>

または

$sudo mount /dev/mapper/<ボリュームグループ>-<論理ボリューム> <マウント位置>

普通にマウント

ボリュームグループの名前が同じだと認識できないので、ホスト名と世代番号を付けておくといいと思う。

RAID+LVM

RAIDを追加してから、ボリュームグループを有効にして、論理ボリュームをマウントすればいい。

$sudo mdadm -A <RAIDアレイの名前> <RAIDデバイスの名前> (<RAIDデバイスの名前>)…
$sudo vgscan
$sudo vgchange -a y <ボリュームグループ>
$sudo mount /dev/<ボリュームグループ>/<論理ボリューム> <マウント位置>

[amazon_tags]


2月 16th, 2011

Posted In: ソフトウェア

タグ: , ,

2 Comments

Debian 6.0(squeeze)のインストール先にWesternDegital WD20EARSを使った。これを2台使って、ソフトウェアRAIDとLVMを構成する。ただし、このディスクには3つ問題がある。

  • IntelliPark
    消費電力削減のため、8秒間アクセスがないとヘッドを退避してしまう。ヘッド退避が頻発するとパフォーマンスが落ちる上、ディスクの寿命が縮む。
  • AdvancedFormatTechnology(AFT)
    論理セクタと物理セクタのずれによって書き込み速度が低下する。
  • 容量2TB
    2TBを超えるHDDにインストールするとGUIDパーティションテーブル(GPT)が使われる。 ブートローダー用にパーティションを作る必要がある(参考)。

まず、IntelliParkの8秒はやりすぎなので5分程度に設定する。設定にはwdidle3.exeを使う(WDのサポート外なので注意)。

  1. FreeDOSが必要なのでUNetbootinをダウンロードする。
  2. UNetbootinを起動し、FreeDOSをUSBメモリにインストールする。
  3. WDのサイトからwdidlw3.exeをダウンロード。
  4. FreeDOSが入ったUSBメモリにwdidle3.exeを入れる。
  5. 設定するHDDとFreeDOSの入ったUSBメモリだけを接続し、USBメモリから起動する。
    (全てのディスクに同じ設定がされる)
  6. FreeDOSが起動したら次のようにコマンドを打ち、ヘッドの退避を300秒(5分)に設定する。
    A:\>C:
    C:\>wdidle3.exe /s300
  7. 設定が完了したのを 確認して、電源を切る。

次にAFT対策、論理セクタと物理セクタがずれないようにする。MBRパーティションにsqueezeをインストールする場合は最初のパーティションは2048セクタで開始するので対策は不要。2TBのディスクを使うとGPTになり、なぜかずれる。そのため、先にGPartedでパーティションを切っておく。起動用の小さなパーティションと他のパーティションを未フォーマットで切っていく。

起動用パーティションを作る。AlignをMiBにして先頭に最小単位1MiBの未フォーマットパーティションを作り、右クリックメニューの情報で開始セクタが2048セクタになっているのを確認する。ここにGrubがインストールされる。

Screenshot-新規パーティションの作成

Screenshot-新規パーティション #1の情報

同様に他のパーティションも切っていく。RAIDを組むので2台に同じように切る。

Screenshot--dev-sdb - GParted

3つの問題の問題が解決した所でインストールを始める。パーティションは1MB,256MB,残りの3つに切った。HDD以外にドライブを積んでいないのでUSBメモリからインストールする。ここでもUNetbootinを使う。DebianとStable_NetInstall_x64を選択してUSBメモリに書き込む。書き込んだUSBメモリからブートする。インストーラが起動したら、USBメモリを抜きインストール開始(USBメモリがsdaになるのを防ぐ)。

インストールを進めて、ディスクのパーティショニングで手動を選択。あらかじめ切っておいたパーティションを次のようにする。予約済みBIOSブート領域(biosgrub)を作らないとGRUBのインストールに失敗する。(作らなくても警告が出ず、何度やっても失敗するのではまった。ガイドでパーティショニングすると勝手に作られる)

物理パーティションの構成

/dev/sda1(/dev/sdb1) 1MB 予約済みBIOSブート領域(biosgrub)
/dev/sda2(/dev/sdb2) 256MB RAIDの物理ボリューム(/dev/md0)
/dev/sda3(/dev/sdb3) 2TB RAIDの物理ボリューム(/dev/md1)

次にソフトRAIDを設定する。ソフトウェアRAIDの設定から/dev/sda2と/dev/sdb2、/dev/sda3と/dev/sdb3をそれぞれチェックしてRAID1アレイを作成する。小さい方のアレイにext4を指定して、マウントポイントを/bootに指定。大きい方をLVMの物理ボリュームに指定してボリュームグループを作成する。次に、ボリュームグループから必要なだけ論理ボリュームを作成して、完了を選ぶ。切り出した論理ボリュームにそれぞれ利用方法とマウントポイントを指定する。次のような構成にした。後で足りなくなった容量を拡張できるようにボリュームグループを使い切らずに残してある。

パーティションの構成(RAID)

/dev/sda1 1MB biosgrub
/dev/md0 256MB ext4
/dev/md1 2TB LVMの物理ボリューム

パーティションの構成(LVM)と利用方法

パーティション 容量 利用方法 マウントポイント
/dev/sda1 1MB biosgrub
/dev/md0 256MB ext4 /boot
論理ボリューム 20GB ext4 /
論理ボリューム 200GB ext4 /home
論理ボリューム 20GB ext4 /usr
論理ボリューム 1.5TB ext4 /usr/local
論理ボリューム 20GB ext4 /var
論理ボリューム 5GB ext4 /tmp
論理ボリューム 4GB スワップ領域

設定し終えたら変更を書き込む。あとは通常通りインストールを進める。ソフトウェアの選択にSSHサーバーが追加されていた。インストール直後からSSHで操作ができて便利。

インストール後は、2つ目のディスクにも起動情報を書き込む。パーティションとして見えるのでbiosgrubパーティションを1つ目のディスクから2つ目のディスクへコピーするだけで済む。

$ sudo dd if=/dev/sda1 of=/dev/sdb1 bs=512
2048+0 records in
2048+0 records out
1048576 bytes (1.0 MB) copied, 0.0783861 s, 13.4 MB/s
$

参考

メモ帳: Ubuntu9.10 で NAS on RAID1(3/6)

[amazon_tags]


2月 16th, 2011

Posted In: ソフトウェア, ハードウェア

タグ: , , , , , ,

4 Comments

Debian 6.0(squeeze)がリリースされたのでクリーンインストールした。アップグレードしたのはローカルで使ってるサーバー(KVMのホスト)と公開用に使ってるサーバー(KVMのゲスト)の2台。覚えているうちに作業記録を残す。

ローカルサーバーは新しいHDDに移行するついでにアップグレード。GPTへのインストールや録画鯖の再構築で手間取った。録画鯖はやった記憶がほとんどなくて困った。

公開サーバーはしばらくそのまましておくつもりが、squeezeから一部パッケージを借りていたため自動アップグレードされてしまった。ダウングレードすると壊れて、完全にアップグレードするとPHPが動かなくなったので、クリーンインストールした(KVMで動いているため、ディスクイメージを戻すだけで元通り)。PHPは設定を変えないと動かなかった。

[amazon_tags]


2月 16th, 2011

Posted In: 雑記

タグ: , , , , , ,

Leave a Comment