2011年12月6日火曜日

Windows 7 にMediaWikiをインストールしてみた

  • このエントリーをはてなブックマークに追加


前提条件

Apache

php5

MySQL インストール済み。

 

Apacheの設定ファイルhttpd.confに下記の内容を追加する。

<Directory "C:/WebDevelop/Apache2.2/htdocs/wiki">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all

</Directory>

 

ブラウザでhttp://localhost/wiki/mw-config/index.php を開いて、インストールプロセスに入る

 

wiki1

 

wiki2

 

wiki3

 

wiki4

 

wiki5

 

wiki6

 

wiki7

 

wiki8

 

wiki9

 

インストールが終わったら、ブラウザでwikiホームページを開く

image

Debian phpMyAdminのインストール

  • このエントリーをはてなブックマークに追加


phpmyadminパッケージ確認

#aptitude show phpmyadmin

 

phpmyadminのインストール

#apt-get install phpmyadmin

 

設定ファイルの確認

/etc/phpmyadmin/

apache.confなど

 

phpmyadminの設定をapacheに追加する

/etc/apache2/httpd.confに下記の一行を追加する

Include /etc/phpmyadmin/apache.conf

 

apacheを再起動

/etc/init.d/apache2 restart

 

ブラウザでphpmyadminの稼働の確認

http://server/phpmyadmin

image

Debian MySQLのインストール

  • このエントリーをはてなブックマークに追加


MySQLパッケージの確認

#aptitude show mysql-server

 

MySQLのインストール

#apt-get install mysql-server

 

設定ファイルの確認

/etc/mysql

/var/lib/mysql

 

パスワードの設定は

mysqladmin –u root password PassHoge

 

MysqlコマンドでMysqlの稼働を確認

#mysql –p

Enter password

 

mysql> show databases

mysql> use mysql

mysql> show tables

mysql> quit

 

phpとMysqlを連携させる

#apt-get install php5-mysql

 

apacheを再起動する

/etc/init.d/apache2 restart

 

ブラウザでphpの設定情報を確認する

http://server/phpinfo.php

mysqlに関する情報が表示される。

Debian php5のインストール

  • このエントリーをはてなブックマークに追加


php5のパッケージを確認する

#aptitude show php5

 

php5をインストールする

#apt-get install php5

 

php5の設定ファイルが/etc/php5/に入っている。設定ファイルphp.iniは/etc/php5/apache2にあります。

php.iniファイルを編集する前に、バックアップしておいたほうが安全です。

#cp /etc/php5/apache2/php.ini /etc/php5/apache2/php.ini.bk

Webサイトの環境によって、【mbstring】の設定を変更する場合があります。

下記の項目を必要に応じて変更するといいと思います。

short_open_tag = Off 

 

OnをOffに変更する(Offの場合は、XML宣言の<?xml ?>の部分がエラーが出るはず)

mbstring.language = Japanese

コメントを外す

mbstring.internal_encoding = UTF-8

EUC-JPをUTF-8に変更する(文字化けを解消するため)

mbstring.http_input = auto

コメントを外す

mbstring.http_output = UTF-8

SJISをUTF-8に変更する

mbstring.encoding_translation = On  

OffをOnに変更する

mbstring.detect_order = auto

コメントを外す

mbstring.substitute_character = none コメントを外す
mbstring.func_overload = 0 コメントを外す

 

Apacheを再起動する

#/etc/init.d/apache2 restart

 

/var/wwwディレクトリの下にphpinfo.phpを作成する

<?php phpinfo(); ?>

 

ブラウザでphpの設定情報を確認する

http://server/phpinfo.php

2011年12月5日月曜日

Debian root partition is full (Use% 100%)

  • このエントリーをはてなブックマークに追加


最近、Debianのroot(/)パーティションには空き領域がありません。そして読み込み専用ファイルシステムになってしまったというエラーが起きました。

下記の図のように、rootパーティションは100%使われている。

image

余計なファイルを削除しようとしても、読み込み専用になっているため、削除はできませんでした。

いろいろ悩んで、resize2fs、lvreduceなどコマンドでrootパーティションを拡張しようとしても、やはりだめでした。なぜなら、読み込み専用になっているからです。

もう諦めるしかないと思ったところ、解決方法を見つけました。

ハードディスクをまるごと再マウントするという方法です。下記のコマンドを実行するといいと思います。

#mount /dev/sda2 –o remount,rw

実行すると、【error writing /etc/mtab.tmp デバイスに空き領域がありません】というようなエラーメッセージが表示されるはずです。エラーはあまり気にせず、再マウントした状態で、読み込み専用が解除され、書き込みができるようになります。この状態で、ファイルの削除もできます。

2011年11月15日火曜日

Powershellでネットワーク設定を行う

  • このエントリーをはてなブックマークに追加


ネットワーク設定を自動化したい場合は、Powershellスクリプトで簡単に実現することができます。

基本的にWin32_NetworkAdapterConfigurationというWMIオブジェクトを使います。Win32_NetworkAdapterConfigurationを使用することによって、各ネットワークアダプターの情報を取得したり、静的なIPアドレス、ディフォルゲートウェイ、DNSなどの設定を行ったりすることができます。

Powershellコマンドプロンプトで下記のコマンドを実行すると、すべてのネットワークアダプターの関連情報が表示されます。

Get-WmiObject Win32_NetworkAdapterConfiguration

そして、Get-WmiObject Win32_NetworkAdapterConfiguration | Get-Memberを実行すると、ネットワークアダプターというオブジェクトのProperty、操作できるMethodなどの情報も表示されます。これらの情報は、Powershellスクリプトを書く時に非常に役に立つと思います。

win32_network

 

簡単にPowershellスクリプトを作成してみました。

$description = "Intel(R) 82567LM Gigabit Network Connection"
$ip = "192.168.1.100"
$subnet = "255.255.255.0"
$gateway = "192.168.1.254"
$dns = @("192.168.1.1";"192.168.1.2")

$adapter = Get-WmiObject Win32_NetworkAdapterConfiguration | Where {$_.Description -eq $description}
$adapter.EnableStatic($ip,$subnet)
$adapter.SetGateways($gateway)
$adapter.SetDNSServerSearchOrder($dns)

上記のコードを一個の.ps1ファイル(例:ConfigureNetwork.ps1)として保存します。Powershellコマンドプロンプトを「管理者として実行」で起動し、ConfigureNetwork.ps1を実行すればいいです。

【コード解説】

$adapter = Get-WmiObject Win32_NetworkAdapterConfiguration | Where {$_.Description -eq $description}

この一行は設定しようとするネットワークアダプターを特定するためのコードです。ネットワークアダプターは”説明($description)”というPropertyで判断されます。$descriptionは下記の図の青い部分になります。

description

ほかにもいろいろ条件を指定して判断することもできます、わかりやすい属性を選ぶと良いでしょう。

Windows Server 2012 Hyper-V Cookbook

新品価格
¥4,330から
(2012/12/20 20:55時点)

Windows PowerShellクックブック

新品価格
¥4,200から
(2012/12/20 21:06時点)

サーバ/インフラエンジニア養成読本 仮想化活用編 [クラウドな現場で役立つ知恵と知識が満載!] (Software Design plus)

新品価格
¥2,079から
(2012/12/20 20:58時点)

WSH オブジェクト

  • このエントリーをはてなブックマークに追加


WSHの基本オブジェクト

 1つ目は、WSHに標準的に付属しているオブジェクトだ。多くのスクリプトは、これらの基本オブジェクトを単独、ないし組み合わせて利用することにより実現されている。

  • WScriptオブジェクト
     ほかのオブジェクトを呼び出したり、標準入出力を扱ったり、スクリプトの実行を制御したり、コマンドライン引数を読み込んだりできるWSHのトップレベル・オブジェクト。

  • FileSystemObjectオブジェクト
     ファイルやフォルダのコピー、移動、削除などを自由自在に行えるオブジェクト。サイズや更新日時などのプロパティの値も取得できる。
     またこのオブジェクトを使うことで、テキスト・ファイルに文字列を書き込んだり、読み出したりすることができる。

  • WshShellオブジェクト
     アプリケーションを起動させたり、終了させたりするためのオブジェクト。また、実行中のアプリケーションに対し、任意のキー・コード(キーを押したという情報)を送出することができる。つまり、このオブジェクトを使えば、キーボード操作を自動化できる。コンソール・アプリケーションでは、その出力内容も取得できる。
     ほかにも、レジストリの操作や、ショートカットの作成などが可能である。

  • WshNetworkオブジェクト
     ネットワーク・ドライブやネットワーク・プリンタをリストアップしたり、作成、削除したりできるオブジェクト。

  • WshControllerオブジェクト
     ネットワーク上のほかのPC上でスクリプトを実行することができるオブジェクト。

WSH Objects

2011年10月28日金曜日

Subversionサーバー シェルスクリプトでデータをバックアップ

  • このエントリーをはてなブックマークに追加


フルバックアップ

#!/bin/bash

FULL_BK_DIR="/usr/local/svnbk/full"
LOGFILE="/var/log/svn-fullbk.`date "+%Y"`"
REPOS_PATH="/var/svn"
DATETIME=`date "+%Y/%m/%d %T"`

if [ ! -d $FULL_BK_DIR ]
then
        mkdir -p $FULL_BK_DIR
fi

echo $DATETIME "****** The full backup of repository is starting!" >> $LOGFILE
FILE=`which svn-backup-dumps`
if [ "$FILE" == "" ]
then
        echo $DATETIME "The svn-backup-dumps script is required!Please install subversion-tools package!" >> $LOGFILE
        echo >> $LOGFILE
        exit 1
fi

svn-backup-dumps -z $REPOS_PATH $FULL_BK_DIR >> $LOGFILE 2>&1
if [ $? -ne 0 ]
then
        echo $DATETIME "◆Error:Failed in full backup!!" >> $LOGFILE
        echo >> $LOGFILE
        exit 1
fi

echo $DATETIME "****** The backup is done" >> $LOGFILE
echo >> $LOGFILE
exit 0

 

差分バックアップ

#!/bin/bash

INCRE_BK_DIR="/usr/local/svnbk/incremental"
LOGFILE="/var/log/svn-incremental.`date "+%Y%m"`"
REPOS_PATH="/var/svn"
DATETIME=`date "+%Y/%m/%d %T"`
CNT_REVISIONS=100

if [ ! -d $INCRE_BK_DIR ]
then
        mkdir -p $INCRE_BK_DIR
fi

echo $DATETIME "****** The incremental backup of repository is starting!" >> $LOGFILE
FILE=`which svn-backup-dumps`
if [ "$FILE" == "" ]
then
        echo $DATETIME "The svn-backup-dumps script is required!Please install subversion-tools package!" >> $LOGFILE
        echo >> $LOGFILE
        exit 1
fi

svn-backup-dumps -c $CNT_REVISIONS -z $REPOS_PATH $INCRE_BK_DIR >> $LOGFILE 2>&1
if [ $? -ne 0 ]
then
        echo $DATETIME "◆Error:Failed in incremental backup!!" >> $LOGFILE
        echo >> $LOGFILE
        exit 1
fi

echo $DATETIME "****** The backup is done!" >> $LOGFILE
exit 0

Hyper-v 親ディスクの容量を拡張してもいいですか?

  • このエントリーをはてなブックマークに追加


今まで、Hyper-vサーバーのローカル領域を節約するのとOS等のインストールの手間を減らすために、検証環境構築時にHypver-vの親ディスク、差分ディスクによる仮想マシンの作成をやっていました。特に問題なく動いていたので、非常に役に立ちました。

しかし、この間、とんでもないことをしてしまいました。その結果、差分ディスクを利用して作った仮想マシンがすべて起動できなくなりました。悔しくてなりません。

とんでもないことって何?それは、多くの仮想マシンのCドライブの空き容量がほとんどなくなり、Cドライブの容量を拡張しようと思って、勝手に親ディスクのサイズを増やしたってことです。何の証拠もなくただ単にうまくいくだろうと思ってやってしまいました。そのため、親ディスクを拡張してはいけないという教訓を得ました。

 

親ディスクを拡張した後に、仮想マシンを起動しようとすると、以下の様なエラーが表示されました。

image

ディスクの検査をしてみると、”差分チェーンが壊れています。”ということがわかりました。

image

 

いろいろ調べみたが、残念ながら、解決法は見つかりませんでした。諦めるしかなかった。。。

しかし、調べている途中で、VhdTool.exeというツールを見つけました。

ディスクの作成や変更、チェーンの修復などができるらしい。

2011年10月12日水曜日

整数のバイナリ表示を取得

  • このエントリーをはてなブックマークに追加


image

ビット演算子を用いて、整数のバイナリ表示を得る

Version 1

void PrintBinary(int x,int d){
    char buffer[33];
    int index=0;
    for(;d>0;d--){
        buffer[index++]='0'+(x&1);
        x>>=1;
    }
    while (index >0 )
        printf("%c",buffer[--index]) ;
    return;
}

 

Version 2

void PrintBinary(int x,int d){
    char buffer[33];
    int index=0;
    while (d >0) {
        if (x & 1)
            buffer[index++]='1';
        else
            buffer[index++]='0';
        x >>= 1;
        d--;
    }
    while (index >0 )
        printf("%c",buffer[--index]) ;
    return;
}

2011年9月14日水曜日

Windows Live Writerからの投稿

  • このエントリーをはてなブックマークに追加


強力になった Writer

Windows Live では、熟練ブロガーのような投稿を簡単に作成できます。美しいブログ記事を作成し、ブログに投稿する前にオンラインでどのように表示されるのかを確認できます。また、お気に入りのブログ サービス プロバイダーに記事を投稿することもできます。

 

ダウンロードはこちら

Windows Live Writer 2011

 

イメージ

writer

2011年8月18日木曜日

NTLM Authentication Scheme for HTTP

  • このエントリーをはてなブックマークに追加


パケットレベルでNTLM認証の仕組みの解説

NTLM Authentication Scheme for HTTP


NTLM認証を実装している.Net Framework用のライブラリ

Mono.Security.Protocol.Ntlm

2011年8月4日木曜日

Powershellで外部プログラムを非同期実行する

  • このエントリーをはてなブックマークに追加


$process = New-Object Diagnostics.Process
$process.StartInfo.FileName = "C:\temp\OpenCalendarHoldConnection.exe"
$process.StartInfo.Arguments = $i
#$process.StartInfo.WindowStyle = [Diagnostics.ProcessWindowStyle]::Hidden
$process.Start() | Out-Null


レファレンス:System.Diagnostics.Process

Windows PowerShellクックブック

新品価格
¥4,200から
(2012/12/20 21:06時点)

2011年7月27日水曜日

Ubuntu よく使われているデスクトップ環境

  • このエントリーをはてなブックマークに追加


Ubuntu Linux では,Gnome が基本ですが、他のデスクトップマネージャーも使ってみてはどうでしょうか?Gnome より軽快に動いたりと比べてみるだけで面白いです。
  • Gnome (ubuntu のデフォルト)
  • KDE (kubuntu のデフォルト)
  • Xfce (xubuntu のデフォルト)
  • fluxbox (Fluxbuntu のデフォルト)
  • icewm (軽いウインドウマネージャー)
  • LXDE (軽いウインドウマネージャー)
  • awesome (タイル型ウインドウシステム 面白いです)

個人的におすすめするのが、awesomeです。タイル型と呼ばれるウインドウシステムなのでウインドウシステム側が賢くウインドウの大きさを決定してくれます。

Windows と同じ感覚で扱いたい場合は、GnomeKDEが定番ではないかと思います。

2011年6月7日火曜日

telnetでメール送信

  • このエントリーをはてなブックマークに追加


telnetでメールを送信する

telnet [smtp server] 25
HELO 自分のメールドメイン(実際に任意の文字列でもいい)
Mail From:test@example.com
Rcpt To:test1@example.co.jp
Data
Subject:件名
This is Data. using . to finish input
.

参考

2011年6月1日水曜日

Powershell フォルダサイズとファイル数を取得

  • このエントリーをはてなブックマークに追加


Get-ChildItem 'C:\temp' -Recurse -Force | Measure-Object -Property Length -sum
Count : 85
Average :
Sum : 1738905280
Maximum :
Minimum :
Property : Length

countはファイル数
sumはフォルダのサイズ(bit単位)

※注意
C:\Program Files、C:\Windowsのようなフォルダ以外のフォルダを指定してください。

VBScript

Public Function GetFileCountRecursive(byVal strFolder)
Dim count 'ファイル数
count = 0
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
call FileCount(fso.GetFolder(strFolder),count)
GetFileCountRecursive = count
End Function

Private Sub FileCount(Folder, byRef count)
count = count + Folder.Files.Count
Dim Subfolder
For Each Subfolder in Folder.SubFolders
call FileCount(SubFolder,count)
next
End Sub

'-------------------------------------------------------------------------------------------
' 指定フォルダ以下のファイルサイズの取得
'-------------------------------------------------------------------------------------------
' strFolder - フォルダ名(文字列)
'-------------------------------------------------------------------------------------------
Public Function GetFolderSize(byVal strFolder)
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")

Dim Folder
Set Folder = fso.GetFolder(strFolder)
Dim Size
Size = Folder.Size
GetFolderSize = Size
End Function

2011年3月31日木曜日

Linux 用語

  • このエントリーをはてなブックマークに追加


MakeFile
Makefileには、ソフトウェアをコンパイルするための手順や インストールするファイルなどが記されています。Makefileの 存在するディレクトリ内でmakeコマンドを実行すると、 Makefileの記述に基づいてソースがコンパイルされ、実行ファイル が生成されます。

Makefileは、configureスクリプトを実行することにより、システム に合ったものが自動的に生成されます。 ソースからソフトウェアをインストールする手順を覚えておきましょう。

(1) tarコマンドでアーカイブを展開
(2) configureスクリプトを実行してMakefileを生成
(3) makeコマンドでコンパイル
(4) make installコマンドで実行ファイルなどをインストール

gccやccコマンドは、単一のソースをコンパイルできるコマンドです。 makeコマンドを実行すると、多数のgcc(cc)コマンドが実行される様子 が表示されるでしょう。lddコマンドは、実行ファイルが必要としている 共有ライブラリを表示するコマンドです。

Samba
Sambaとは、LinuxとWindows間でファイルの共有を行うことができる
ソフトウェアです。Linuxサーバー側のファイルをWindows から
アクセスできるようにするためのサーバー機能と、逆に Windows のファイル
をLinux側から操作することのできるクライアント機能をもっています。
また、ファイル共有の仕組みを用いて、プリンタ共有も行うことができ、
ドメインサーバーとしての機能や、WINSサーバー機能などもあります。

NFS
NFSはNetwork File Systemの略です。離れた場所にあるコンピュータのファイルを、
あたかも自分のコンピュータにあるファイルのように操作することができます。
ファイルを他のコンピュータに提供するコンピュータを「NFSサーバ」、他の
コンピュータにあるファイルを利用するコンピュータを「NFSクライアント」
ともいいます。

ARP
送信先のコンピュータは通常IPアドレスもしくはホスト名によって指定 されます。そのため、なんらかの方法でIPアドレスとMACアドレスを変換 してやる仕組みが必要になります。それを担当するのがARPというプロトコル で、変換テーブルは「ARPキャッシュ」と呼ばれるテーブルに保存されます。 ARPキャッシュはarpコマンドで確認することができます。

ループバックアドレス
マシン内部でのアプリケーション間の通信のことをループバックといいます。 ループバックアドレスはそうした通信を可能にするために容易されているIP アドレスです。Linuxを含む多くのOSでは、通常、ループバックアドレスとして 「127.0.0.1」が使用されています。またこのIPアドレスに対応するホスト名は [localhost」となっています。

2011年3月29日火曜日

Debian cron(クーロン)の設定

  • このエントリーをはてなブックマークに追加


参考:cronの設定ガイド

Debian シェルスクリプトによるシステムアップグレードの自動化

  • このエントリーをはてなブックマークに追加


Debianシステムアップグレードを自動化するために、シェルスクリプトを作成してみました。

#!/bin/sh
#This script is for upgrading automatically

JOBLOG=/var/log/auto-upgrade.log
#the max size of JOBLOG
MAX_SIZE=300000
SIZE=`wc -c $JOBLOG | awk '{print $1}'`

#ログファイルのサイズをチェック
if [ $SIZE -gt $MAX_SIZE ]
then
echo > $JOBLOG
fi

echo "`date "+%Y/%m/%d %T"` ****** $0: Job start at `/bin/hostname` ******" >> $JOBLOG 2>&1
#echo -n "*** $0: Job start at `/bin/hostname` on " >> $JOBLOG 2>&1
#date "+%Y/%m/%d %T" >> $JOBLOG 2>&1

#Debian stable/testing
echo "`date "+%Y/%m/%d %T"` Command:"apt-get update" is running ......" >> $JOBLOG 2>&1
apt-get update >> $JOBLOG 2>&1
echo "`date "+%Y/%m/%d %T"` Command:"apt-get update" is finished ......" >> $JOBLOG 2>&1

echo "`date "+%Y/%m/%d %T"` Command:"apt-get upgrade" is running ......" >> $JOBLOG 2>&1
apt-get -y upgrade >> $JOBLOG 2>&1
echo "`date "+%Y/%m/%d %T"` Command:"apt-get upgrade" is finished ......" >> $JOBLOG 2>&1

echo "`date "+%Y/%m/%d %T"` Command:"apt-get autoclean" is running ......" >> $JOBLOG 2>&1
apt-get autoclean >> $JOBLOG 2>&1
echo "`date "+%Y/%m/%d %T"` Command:"apt-get autoclean" is finished ......" >> $JOBLOG 2>&1

#apt-get update >> $JOBLOG 2>&1 && apt-get upgrade >> $JOBLOG 2>&1 && apt-get autoclean >> $JOBLOG 2>&1

echo "`date "+%Y/%m/%d %T"` ****** $0: Job ended at `/bin/hostname` ******" >> $JOBLOG 2>&1
echo >> $JOBLOG 2>&1

#ログファイルの内容をadministratorにメールツールする
ADMIN_MAIL=administrator@debian.test.local
case "$ADMIN_MAIL" in
*@*)
cat $JOBLOG | mail -s "[cron-log][`/bin/hostname`] APT Upgrade Log" $ADMIN_MAIL
;;
esac
exit 0

スクリプトファイルを実行可能にする。

毎週一回実行したいので、cronに登録する。
方法一:直接/etc/cron.weeklyにコピーする。
方法二:/etc/crontabファイルを編集する
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#毎週の日曜日の朝2時、スクリプトを実行する
0 2 * * 7 root /usr/local/scripts/autoupgrade



2011年3月25日金曜日

Linux grepコマンドで使う正規表現

  • このエントリーをはてなブックマークに追加


grep コマンドは、ファイルの中からデータを検索します。また、パイプ"|" grep とすることで、標準入力から入ったデータに対し検索を行うことも可能です。

書式
grep [オプション] 検索条件 [指定ファイル]

指定ファイルの部分は、1つでもかまいませんし、*のようなワイルドカードを利用した複数ファイルの指
定でも可能です。 ワイルドカードとは、不特定の文字列を表現するのに利用される記号のことです。
検索条件として、正規表現が用いられます。正規表現は、grepのみならずUNIXで用いられるパター
ンマッチや、他のプログラミング言語でも利用されている、非常に重要な機能です。

正規表現で主に用いられる記号は次の通りです。
記号 意味
^ 行頭を表す
$ 行末を表す
. 任意の一字を意味する
* 直前文字の0回以上の繰り返しを意味する
[...] ...の中の任意の一字を意味する
[^...] ...の文字が含まれないことを意味する。
\ 正規表現の記号をエスケープする。

■利用例
^abc abcで始まる文字列
abc$ abcで終わる文字列
a.b aとbの間に一文字入っている
[ab]ab a もしくはbで始まるab(aab, bab)
[^ab]ab a もしくはbで始まらない(not)で、abが続くもの(例:xab, zab等)


2011年3月7日月曜日

Debian,Ubuntu Subversionのリポジトリデータの移行

  • このエントリーをはてなブックマークに追加


前回は、Debianでサブバージョンサーバーの構築を紹介しました。
今回は、サブバージョンサーバーのデータ移行について、メモを書きます。

シナリオ:
旧SVNサーバー
OS:Debian squeeze
ユーザー:user1
ホスト名:host1
リポジトリ:/var/svn

新SVNサーバー 
OS:Ubuntu 10.10
ユーザー:user2
ホスト名:host2
リポジトリ:/home/repos

新サーバーで前回で紹介した手順で、Subversionに必要なパッケージをインストールし、必要な設定を行う。


新サーバーで構築を終了したら、移行作業に入る。

①旧サーバー上でリポジトリをバックアップする
svnadmin dump /var/svn > /home/user1/backfile

②旧サーバー上でSCPコマンドを実行し、backfileを新サーバーに転送する
scp /home/user1/backfile user2@host2:/home/user2

③新サーバー上でbackfileをリストアする
svnadmin load /home/repos < /home/user2/backfile

これで終了。

2011年2月25日金曜日

Debian squeezeにSubversionサーバーを構築

  • このエントリーをはてなブックマークに追加


Subversionの構築手順を記述する。

①subversionパッケージをインストールする
debian:~# apt-get install apache2(事前にインストールされてない場合)
debian:~# apt-get install subversion

②リポジトリディレクトリを作成する。ここで/var/svnとする
debian:~# svnadmin create /var/svn
作成したら、svnディレクトリに以下のファイルやディレクトリが生成される。
debian:/var/svn# ls README.txt conf db format hooks locks

③/var/svnに対して、権限設定をする
debian:/var# chown -R www-data:www-data svn
debian:/var# chmod -R 777 svn
debian:/var# ls -l
......
drwxrwxrwx 6 www-data www-data 4096 2011-02-25 18:14 svn
......

④Apache subversion用のモジュールをインストール
debian:~# apt-get install libapache2-svn

libapache2-svnをインストールしたら、/etc/apache2/mods-availableの下に下記二つのモジュールファイルが追加される
/etc/apache2/mods-available/dav_svn.conf
/etc/apache2/mods-available/dav_svn.load
後ほどdav_svn.confに対して編集を行う。


⑤Apacheのモジュール(/dav_svn)を構成
/etc/apache2/mods-available/dav_svn.confを下記のように編集する。初期状態は全部コメントされているので
必要な行にコメント記号を外すだけでいい。
< Location /svn>
# Uncomment this to enable the repository
DAV svn
# Set this to the path to your repository
SVNPath /var/svn

# Basic Authentication......
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd  dav_svn.passwdは後でhtpasswdコマンドで作成する
Require valid-user
< /Location>

⑥認証情報を保存するファイル/etc/apache2/dav_svn.passwdを作成し、SVNサーバーを利用するユーザー(user1)の
パスワードをセットする
debian:~# htpasswd -c /etc/apache2/dav_svn.passwd user1
New password:
Re-type new password:
Adding password for user user1

⑦Apacheサービスを再起動
debian:~# /etc/init.d/apache2 restart
Restarting web server: apache2 ... waiting .

再起動したら、設定が反映され、user1の情報でhttp://サーバー名/svnにアクセスできるはず。

※追記
subversion単体で動かしたい場合は
上記①②③の作業を実施し、以下の作業を追加する必要があります。
④/var/svn/conf/svnserve.conf
/var/svn/conf/passwd
二つファイルを編集します。
svnserve.confで以下行のコメントを外す
anon-access = read 匿名ユーザーへ読み込み権限を与える
auth-access = write 認証されたユーザーへ書き込み権限を与える
password-db = passwd ユーザー情報を保存するファイル名を指定

passwdファイル下記のように書く
[users]
testuser = testpassword

最後に
⑤#svnserve -d -r /var/svnを実行する。

svn://サーバー名の形でアクセスできるようになります。
subversionサーバ上に書き込む時にユーザー名とパスワードの入力が求められるので、testuserの情報を入力すればいいです。

Debian 完全にApache2をアンインストールし、再インストールする

  • このエントリーをはてなブックマークに追加


Apacheの設定ファイルや必要なモジュールが正しく動作しない、誤って削除された場合に、Apacheサーバーが動かないことは当然のことです。下記のようなエラー(一例)が出てくる。

Can't open /etc/apache2/envvars

ここで、Apache2関連のパッケージをアンインストールし、再インストールコマンドをメモします。

①インストール済みのApache2関連のパッケージの一覧を表示
debian:~# dpkg --get-selections | grep apache
apache2 install
apache2-mpm-worker install
apache2-utils install
apache2.2-bin install
apache2.2-common install
libapache2-mod-dnssd install
libapache2-svn install

②すべてのパッケージをDeleteする ポイントとしては オプション--purgeを使うこと
debian:~# apt-get remove --purge apache2 apache2-mpm-worker apache2-utils apache2.2-bin apache2.2-common libapache2-mod-dnssd libapache2-svn

③Apache2を再インストールする
debian:~# apt-get install apache2

インストール完了したら、/etc/apache2フォルダおよび必要なファイルが再作成される。
debian:~# ls /etc/apache2/
apache2.conf envvars magic mods-enabled sites-available
conf.d httpd.conf mods-available ports.conf sites-enabled

2011年2月18日金曜日

Debian パーティションの縮小と拡張

  • このエントリーをはてなブックマークに追加



参考:パーティションの設定

2011年2月16日水曜日

Hyper-V上のDebian 5.0で画面の解像度を変更

  • このエントリーをはてなブックマークに追加



Hyper-V上でDebianの仮想マシンを作成してみた。デスクトップ環境も入れた。
画面の解像度を変更しようとするところ、GUIで変更できない状態になってしまう。何でだろうって思って、原因は未だに分かってない。Hyper-Vがきちんとサポートしてないかもしれない。
仕方ないから、設定ファイルを編集することによって、解像度をへんこうするやり方を試してみた。

/etc/X11/xorg.confファイルの中身。
太字の部分をファイルに追加しました。

# xorg.conf (X.Org X Window System server conf
iguration file)
#
# This file was generated by dexconf, the Debian X Configuration tool, using
# values from the debconf database.
#
# Edit this file with caution, and see the xorg.conf manual page.
# (Type "man xorg.conf" at the shell prompt.)
#
# This file is automatically updated on xserver-xorg package upgrades *only*
# if it has not been modified since the last upgrade of the xserver-xorg
# package.
#
# If you have edited this file but would like it to be automatically updated
# again, run the following command:
# sudo dpkg-reconfigure -phigh xserver-xorg

Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "XkbRules" "xorg"
Option "XkbModel" "jp106"
Option "XkbLayout" "jp"
EndSection

Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
EndSection

Section "Device"
Identifier "Configured Video Device"
EndSection

Section "Monitor"
Identifier "Configured Monitor"
EndSection

Section "Screen"
Identifier "Default Screen"
Monitor "Configured Monitor"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "800x600" "640x480"
EndSubSection
EndSection


1回再起動して、変更が反映されるが、デスク
トップ全体の文字のサイズが前より小さくなってしまった。
これを解決するには、下記の操作を実施
①【システム】⇒【設定】⇒【外観の設定】の順で【外観の設定】を開く
②「フォント」タブをクリックし、画面の右下にある「詳細」をクリックする。
③「レンダリングの詳細」の「解像度」に適当な値を設定する。(96とか)




(update)Debian 5.0 lennyをDebian 6.0 squeezeにupgradeしたら、解像度をGUIで変更できるようになった。
Hypver-Vはまだまだだね、VMwareより。実感しました。



2011年2月15日火曜日

Debianで文字コード確認、変更

  • このエントリーをはてなブックマークに追加


Debianで文字コードを確認、変更する時、環境変数LANGに対して操作します。

文字コードの確認
debian:~# echo $LANG
ja_JP.UTF-8 ⇒日本語文字コードUTF-8

debian:~# date
2011年 2月 16日 水曜日 00:22:07 JST ⇒出力は日本語で表示される


英語文字コードに変更
debian:~# export LANG=en_US.UTF-8

再確認
debian:~# echo $LANG
en_US.UTF-8

debian:~# date
Wed Feb 16 00:23:21 JST 2011 ⇒英語で表示される。

2011年2月14日月曜日

Debianでデスクトップ環境(GNOME)をインストールするコマンド

  • このエントリーをはてなブックマークに追加


GNOME(グノーム)とは、GNU Network Object Model Environmentで、Windowsのように使いやすさを追求したLinuxのGUIです。

GNOMEをインストールするには、あらかじめX Window Systemを入れる必要があります。

Install:
# apt-get install x-window-system

x window systemを再起動
# startx

x window systemのインストールが終わったら、GNOMEのインストールに入ります。

# apt-get install gnome gdm gdm-themes
※三つのパッケージ

再起動
# startx

コマンドを実行すると、必要なパッケージがダウンロードされ、インストールされる。

2011年1月24日月曜日

Hyper-VにDebian 5をインストール時に「インタフェースが検出されません」

  • このエントリーをはてなブックマークに追加


Hyper-VにDebianをインストールする途中で「インタフェースが検出されません」というような警告メッセージが表示されました。
仮想マシンの「設定」で【ネットワークアダプター】を削除し、【レガシネットワークアダプター】を追加すれば、インストール時にネットワークインタフェースがちゃんと検出されることになる。

残りは特に注意することはなく、ウィザードに従って続けるだけです。

2011年1月20日木曜日

Debian/Ubuntu ネットワーク設定方法

  • このエントリーをはてなブックマークに追加


Ubuntu Linuxシステムでネットワーク設定方法を書いておきます。
UbuntuではIPの設定情報は/etc/network/interfaces設定ファイルに記載されています。

UbuntuをVMware Playerで動かしているので、インストール直後、既定でDHCPサーバーからIPアドレスを取得する状態になっている。下記のコマンドを実行し、確認できます。

cye@ubuntu:~$ less /etc/network/interfaces
......
# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

そして、/etc/network/interfacesファイルを編集することによって、固定IPを設定することができます。編集する前に、ひとつコピーを保持したほうがいいと思います。このファイルを編集するには、rootの権限が必要です。

cye@ubuntu:~$ sudo vi /etc/network/interfaces
......
# The primary network interface
#auto eth0 →コメントにする
#iface eth0 inet dhcp →コメントにする

次の行を追加する。
auto eth0 →起動時にアドレスを自動設定するインタフェース名
iface eth0 inet static →静的(Static)か動的(dhcp)かループバック(loopback)
address 192.168.31.100
netmask 255.255.255.0
gateway 192.168.31.2
network 192.168.31.0
broadcast 192.168.31.255

編集が終わったら、ファイルを保存し終了します。
ネットワークサービスを再起動し、設定が反映されます。networkingスクリプトを実行します。
cye@ubuntu:~$ sudo /etc/init.d/networking restart

またifconfigコマンドを使って、IPを設定することもできます。(※一時的に有効のようです。再起動したら、/etc/network/interfacesファイルの設定に戻る)
cye@ubuntu:~$ sudo ifconfig eth0 192.168.31.100 netmask 255.255.255.0 broadcast 192.168.31.255

routeコマンドでルーティングテーブルを設定します。
cye@ubuntu:~$ sudo route add default gw 192.168.31.2

DNSの設定はファイル/etc/resolv.confに記述されています。
cye@ubuntu:~$ less /etc/resolv.conf
nameserver 192.168.31.2
domain localdomain
search localdomain

名前解決には/etc/hostsファイルも利用できるので、DNSとhosts、どちらを優先して利用するのかを/etc/nsswitch.confファイルに記述します。
cye@ubuntu:~$ less /etc/nsswitch.conf
......
hosts: files dns
......
→通信時にまずはhostsファイルを参照し、名前解決できなければDNSに問い合わせる。

Debian Linuxでも同じ設定方法だそうです。

※備考
ネットワークインタフェースを有効、無効
#ifconfig eth0 up
#ifconfig eth0 down
ネットワークインタフェース無効、有効をした後に、ブラウザからインタネットにアクセスできない可能性が高いので、ネットワークサービスを再起動したほうがいい。
#/etc/init.d/networking restart


2011年1月18日火曜日

Windows 7のインストール - マルチブート環境の構築

  • このエントリーをはてなブックマークに追加


http://journal.mycom.co.jp/special/2009/windows7/023.html

2011年1月6日木曜日

Linux コマンドでタイムゾーンを変更

  • このエントリーをはてなブックマークに追加


ubuntu Linux Systemのタイムゾーンを変更する方法をメモにしておきます。
rootユーザーモードに切り替える。

1:/etc/localtimeファイルを変更
#echo "Asia/Tokyo" | tee /etc/localtime

2:dpkg-reconfigureコマンドを実行し、変更をコミットする
#dpkg-reconfigure --frontend noninteractive tzdata
Current default time zone: 'Asia/Tokyo'
Local time is now: Thu Jan 6 15:34:47 JST 2011.
Universal Time is now: Thu Jan 6 06:34:47 UTC 2011.

これで、変更が反映されます。"date"を実行して確認してみる。
#date
Thu Jan 6 15:40:20 JST 2011
タイムゾーンがJSTになっていることが確認できます。