プロフィール

島田圭二

Author:島田圭二
Follow shimanp on Twitter

カレンダー
06 | 2017/07 | 08
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 - - - - -
読断と変見内検索
訪問ありがとうございます
最近のコメント
最近のトラックバック
関連リンク
カテゴリー
月別アーカイブ


スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


スポンサー広告 | 【--------(--) --:--:--】 | Trackback(-) | Comments(-)
Fedora9 - Apache経由でSubversionを使用する
何日か前、失敗したsubversionの設定のリベンジ
おそらくスーパーサーバxinetdが入ってなかったからだと思われる。
てかfedora9ってデフォルトインストールで入ってこないのか?
もしくはインストール時にチェックをはずしてたとか???
まーそれはさておき、xinetdを使用するのはやめた。
Apache経由で使用することにした。以下設定メモ。

インストール


1.Subversion
インストールされているか確認
# rpm -qi subversion

インストールされていなければ、インストール
# yum install subversion


2.mod_dav_svn
Apacheからsvnを操作するモジュールをインストールする
インストールされているか確認
# rpm -qi mod_dav_svn

インストールされていなければ、インストール
# yum install mod_dav_svn


Subversionのレポジトリ作成


#mkdir /data/svn
#svnadmin create /data/svn/rep
#chown -R apache.apache /data/svn

ここでは、Subversion用のディレクトリを作成して、そこにレポジトリを作成している
ディレクトリの場所は任意。
そして、ディレクトリの所有をapacheユーザ、apacheグループへ変更しているのだが、
rootのままでも僕はいけた。たぶん、/data/svn/rep/にあるformatが読めれば大丈夫なのかと。

subversion.confの設定


Apacheからsubversionを使用するための設定ファイルの設定を行う。
/etc/httpd/conf.d/subversion.conf を以下のように設定。
LoadModule dav_svn_module     modules/mod_dav_svn.so

<Location /svn>
DAV svn
SVNPath /data/svn/rep
</Location>

一番上で先ほどインストールしたmod_dav_svnを読み込む。
その下でSubversionの場所の設定をする。
<Location /svn> → この/svnはブラウザなどからアクセスするときのルート。
例えば、http://ホスト名/svn でブラウザから接続することができる。
SVNPath /data/svn/rep → 作成したレポジトリのパス
実は始め他のサイトなどを参考にして、SVNPathをレポジトリではなく親のパス/data/svn/に
したのだが、エラーとなり/etc/httpd/logs/error_logに以下のようなログがはかれた。
[Fri Dec 05 00:08:08 2008] [error] [client 192.168.11.2] (20014)Internal error: 
Can't open file '/var/www/svn/format': No such file or directory
[Fri Dec 05 00:08:08 2008] [error] [client 192.168.11.2] Could not fetch resource
information. [500, #0]
[Fri Dec 05 00:08:08 2008] [error] [client 192.168.11.2] Could not open the requested SVN
filesystem [500, #2]
[Fri Dec 05 00:08:08 2008] [error] [client 192.168.11.2] Could not open the requested SVN
filesystem [500, #2]

何度、試してもダメだった。ログを見てみると始めに/var/www/svn/formatがないとなっている。
確かにsvnにはformatはない。で、レポジトリのフォルダを見てみたらformatがあった。
なので、レポジトリを指定してみたらうまくいった。でもこれだと別レポジトリを作成したとき
切り替えられないから不便だな。。。なんか間違ってんのかな?

動作確認


ここまでで、とりあえず、最低限の設定は完了。なので、動作確認してみる。
1.アパッチ再起動
# /etc/init.d/httpd restart
2.ブラウザから確認
http://ホスト名/svn

とりあえず今日はここまで。
あと認証とかの設定はまた今度。

スポンサーサイト
linux | 【2008-12-05(Fri) 01:23:21】 | Trackback:(0) | Comments:(1)
linux設定メモ - subversionインストール

インストール


自宅のサーバーはFedora9なのだが確認したらデフォルトでsubversionがインストールされていた。
インストールされているか確認
# rpm -qi subversion

インストールされていなければ、インストール
# yum install subversion


起動設定


subversion起動用ユーザ作成
# useradd svn

レポジトリディレクトリ作成
# mkdir /data/svn

所有者をsvnユーザへ
# chown svn:svn /data/svn/

xinetdから起動するための設定
/etc/xinetd.d配下にsvnserveというファイルを作成して以下を記述
service svnserve
{
disable = no
socket_type = stream
wait = no
user = svn
server = /usr/bin/svnserve
server_args = -i -r /var/repos
log_on_failure += USERID
only_from = 192.168.0.0/24 127.0.0.1
}

svnへの接続設定。/etc/hosts.allowに以下を追記。内部ネットワークのみ許可
svnserve : 192.168.0. 127.0.0.1

svnの使用ポート設定。/etc/servicesの編集。以下のsvnをsvnserveへ変更
svn             3690/tcp                        # Subversion
svn 3690/udp # Subversion

svnがない場合は追加
iptablesなどでファイヤーウォールの設定がされている場合は、3690番のポートを空ける
chkconfigコマンドを使ってsvnserveを起動できるようにする
# chkconfig --add svnserve

設定を確認
# chkconfig --list svnserve

xinetdを再起動
と思ったらここで詰まった。。。
なんか再起動できない
service xinetd restart
もダメだし、/etc/rc.d/init.d/xinetd restart これもファイルなくてダメだし。。。
xinetdを使用してないのかな?と思うけど、/etc/xinetd.dはあるし。。。
よくわからん。
rpm -qi xinetd
と打つと、「パッケージ xinetd はインストールされていません。」となるから
たぶんインストールされてないんだな。。。

てか、いろいろググってたら、どの道以上のsvnの設定の仕方はよくなさそうだ。
いやこれでもいいのだが、セキュリティ的とか、使い勝手があまりよくなさそうだ。
では何がいいのかっていうと、svnとApacheを連動させて使用するのが簡単で良さげだ。
明日、再度この方法で試してみるとする。

追記
試してみた。一応うまくいった。
Fedora9 - Apache経由でSubversionを使用する


linux | 【2008-12-01(Mon) 00:33:40】 | Trackback:(1) | Comments:(0)
Linux - ソフトウェアからRaid5構築
マザーのBIOSですでにRaid5をサポートしているが、
あえてソフトウェアからRaid化してみた。ちなみにディストリビューションはfedora9。

Raid化するハードディスクは全部で4つ
・/dev/sda
・/dev/sdc
・/dev/sdd
・/dev/sde

sdbが抜けているのはsdbをブート用にしてしまったから。
sdaに変更しろって話だけど面倒くさくてやめた。
普通の技術者だときっと気持ち悪いと思うのだろうけど、意外と僕はこの辺のこだわりはないのだ。

各ハードディスクのパーティションを切る


/dev/sda から
以下が実際のログ。赤字が入力
# fdisk /dev/sda
このディスクのシリンダ数は 60801 に設定されています。
間違いではないのですが、1024 を超えているため、以下の場合
に問題を生じうる事を確認しましょう:
1) ブート時に実行するソフトウェア (例. バージョンが古い LILO)
2) 別の OS のブートやパーティション作成ソフト
(例. DOS FDISK, OS/2 FDISK)

コマンド (m でヘルプ): m
コマンドの動作
a ブート可能フラグをつける
b bsd ディスクラベルを編集する
c dos 互換フラグをつける
d 領域を削除する
l 既知の領域タイプをリスト表示する
m このメニューを表示する
n 新たに領域を作成する
o 新たに空の DOS 領域テーブルを作成する
p 領域テーブルを表示する
q 変更を保存せずに終了する
s 空の Sun ディスクラベルを作成する
t 領域のシステム ID を変更する
u 表示/項目ユニットを変更する
v 領域テーブルを照合する
w テーブルをディスクに書き込み、終了する
x 特別な機能 (エキスパート専用)

コマンド (m でヘルプ): p

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0002a0ed

デバイス Boot Start End Blocks Id System

コマンド (m でヘルプ): n
コマンドアクション
e 拡張
p 基本領域 (1-4)
p
領域番号 (1-4): 1
最初 シリンダ (1-60801, default 1):Enter
Using default value 1
終点 シリンダ または +サイズ または +サイズM または +サイズK (1-60801, default 60801):Enter
Using default value 60801

コマンド (m でヘルプ): t
Selected partition 1
16進数コード (L コマンドでコードリスト表示): fd
領域のシステムタイプを 1 から fd (Linux raid 自動検出) に変更しました

コマンド (m でヘルプ): w
領域テーブルは交換されました!

ioctl() を呼び出して領域テーブルを再読込みします。
ディスクを同期させます。


以上で/dev/sdaのパーティション切りは終了
これを/dev/sdc、/dev/sdd、/dev/sde 全てに行う。

Raid5化


Raid化するにはmdadmというソフトを使用する。
fedora9には始めから入っていたけど、ない場合は入れる必要がある。
たぶん
# yum install mdadm.i386
でインストールできると思う。

で次からが実際のログ
# mdadm -C /dev/md0 -l5 -n4 -f /dev/sd[acde]1
mdadm: array /dev/md0 started.

でコマンドは終了。
早すぎ?って思っていたらどうやら実際の処理は内部で行われているようだ。
進捗を確認するには以下コマンド
# cat /proc/mdstat
もう2時間くらいたっているけど、40%程度・・・。5時間くらいかかるのかな?

Raidのコマンドの説明はmdadm日本語マニュアルを参照
簡単に説明すると
-C ・・・ 新規にRaidを作成する
/dev/md0 ・・・ 作成するRaidのデバイス名
-l5 ・・・ Raidのレベル。今回はRaid5だから5
-n4 ・・・ デバイスの数。今回は4つだから4
-f ・・・ よくわからない。強制的にスーパーブロックを作成するということらしい
/dev/sd[acde]1 ・・・ Raidを構成するデバイスの指定

とりあえずこれでRaid化は終了。
後は普通の一つのデバイスとして/dev/md0をフォーマットしてどこかに自動マウントすれば
大丈夫なはず。

追記

ファイルシステム構築


Raid化した仮想デバイス/dev/md0のファイルシステムを構築する。
# mkfs -t ext3 /dev/md0
mke2fs 1.41.3 (12-Oct-2008)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
91578368 inodes, 366287952 blocks
18314397 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
11179 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information:done

This filesystem will be automatically checked every 28 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.

マウント
# mount /dev/md0 /data

自動マウント
# echo 'DVICE /dev/sd[acde]1' > /etc/mdadm.conf
# mdadm -Ds >> /etc/mdadm.conf
# echo '/dev/md0 /data ext3 defaults 0 2' >> /etc/fstab

linux | 【2008-11-24(Mon) 20:06:48】 | Trackback:(0) | Comments:(0)
Linuxでサブフォルダ以下もgrep
また、やっちまったな。。。
それはさておき本題。

Windowsでエディタソフト秀丸の機能grepはとても使える。
この機能は検索したい文字列と検索したいフォルダを指定し、
フォルダ内にあるファイルの中身を検索し、指定した文字列を発見したら、
そのファイル名を表示してくれるというとても便利な機能である。

これをLinuxでもできないものかと思っていたらできた。
てかlinuxはすごいことに秀丸などというツールは必要なし。
デフォルトのコマンドでいける。

結論から言うと次のコマンドでできる
grep abc `find . -name "*.txt"`

左側の単語から順に説明していく
grep ・・・ linuxのコマンド。入力されたデータに対してgrepしてくれる
abc ・・・ 検索したい文字列
` ・・・ バッククォート始め。linuxではバッククォートで囲むと結果が出力されるらしい
    なのでここではfindコマンドの結果がgrepに出力される
find ・・・ ファイル検索コマンド
. ・・・ 検索したいフォルダ。「.」はカレントフォルダ
-name ・・・ findコマンドのオプション。ファイル名で検索するの意味
"*.txt" ・・・ 検索対象ファイル。これだと拡張子がtxtのみを対象に検索
` ・・・ バッククォート終わり。

全体的な説明をすると、findコマンドで検索したファイルに対してgrepをかけるということ。


linux | 【2008-11-12(Wed) 11:54:42】 | Trackback:(0) | Comments:(0)
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。