CentOS5.3にSubversion+Tracを入れてみた

前回、Apacheをインストールしたので次にSubversionTracを入れてみる。

SELinuxの無効化

# setenforce 0
# vi /etc/sysconfig/selinux

#SELINUX=enforcing
SELINUX=disabled

ファイヤーウォールの無効化

# chkconfig iptables off

Subversionのインストール

mod_dav_svnにはSubversionをhttp経由で使うのに必要なパッケージが入っている

# yum install mod_dav_svn

subversionリポジトリを作成。ここでは、プロジェクト名は"project"とする

# mkdir -p /home/svn
# svnadmin create /home/svn/project

トランク、タグ、ブランチ用のディレクトリを作成

# svn mkdir file:///home/svn/project/trunk file:///home/svn/project/tags file:///home/svn/project/branches -m "init repository layout (trunk,tags,branches)"

apacheからファイルの読み書きができるようにパーミッションを変更

# chown -R apache.apache /home/svn/project

BASIC認証の設定

# htpasswd -c /home/svn/.htpasswd greennoah

apacheの設定変更

# vi /etc/httpd/conf.d/subversion.conf

<Location /svn>
   DAV svn
   SVNParentPath /home/svn

   # Limit write permission to list of valid users.
   #<LimitExcept GET PROPFIND OPTIONS REPORT>
      # Require SSL connection for password protection.
      # SSLRequireSSL

      AuthType Basic
      AuthName "Authorization Realm"
      AuthUserFile /home/svn/.htpasswd
      Require valid-user
   #</LimitExcept>
</Location>

apacheの再起動と自動起動設定

# /etc/rc.d/init.d/httpd restart
# chkconfig httpd on

apacheを再起動

# /etc/rc.d/init.d/httpd restart

ブラウザで http://サーバのIPアドレス/svn/project でリポジトリにアクセスできるか動作確認をする。

Tracのインストール

DAGリポジトリの追加

# wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
# rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.i386.rpm

DAGリポジトリは標準でOFF。必要なときのみONとする

# vi /etc/yum.repos.d/rpmforge.repo
・・・
#enabled = 1
#enabled = 0
・・・

Tracが依存しているライブラリをDAGからインストール

# yum --enablerepo=rpmforge install -y python-clearsilver

mod_pythonとeasy_installをインストール

# yum install -y mod_python
# wget http://peak.telecommunity.com/dist/ez_setup.py
# python ez_setup.py

日本語化のTracをインストール。最新版はTrac0.11.4

# wget wget http://www.i-act.co.jp/project/products/downloads/Trac-0.11.4.ja1.zip
# unzip Trac-0.11.4.ja1.zip
# cd Trac-0.11.4.ja1
# python setup.py install

Tracプロジェクト用ディレクトリの作成

# mkdir /home/svn/trac

Tracプロジェクト用ディレクトリの作成。ここでもプロジェクト名は"project"とする

# trac-admin /home/svn/trac/project initenv

Project Name [My Project]> project
Database connection string [sqlite:db/trac.db]> 
Repository type [svn]> 
Path to repository [/path/to/repos]> /home/svn/project

Tracパーミッションを変更する

# chown -R apache:apache /home/svn/trac/project

Trac用のapache設定ファイルを作成

# vi /etc/httpd/conf.d/trac.conf

<Location /trac>
   SetHandler mod_python
   PythonDebug On
   PythonHandler trac.web.modpython_frontend
   PythonOption TracEnvParentDir /home/svn/trac
   PythonOption TracUriRoot /trac
</Location>
 
<LocationMatch "/trac/.*/login">
   AuthType Basic
   AuthName "trac"
   AuthUserFile "/home/svn/.htpasswd"
   Require valid-user
</LocationMatch>

最後にapacheを再起動

# /etc/rc.d/init.d/httpd restart

ブラウザで http://サーバのIPアドレス/trac/project でTracにアクセスできるか動作確認する。


参考
http://www.cafechantant.com/blog/2007/08/27/centos5-%E3%81%A7-subversiontrac/

CentOS5.3にapacheをインストールしてみた

VMware Serverで構築したCentOSapacheをインストールしたのでメモ。

apachePHPのインストール

apache(httpd)のインストール
# yum -y install httpd

PHPのインストール
# yum -y install php

apacheの設定

設定ファイルの編集
# vi /etc/httpd/conf/httpd.conf

エラーページ等でOS名を表示させない
ServerTokens Prod

管理者のメールアドレスを設定する
ServerAdmin webmaster@greennoah.com

サーバ名を設定する
ServerName greennoah.com:80

ドキュメントルートの指定
DocumentRoot "/var/www/html"

ドキュメントルートの設定(ここから)
<Directory "/var/www/html">

SSIの許可(コマンドExec含む)、CGIの許可、シンボリックリンク許可
Options Includes ExecCGI FollowSymLinks

.htaccessの許可
AllowOverride All

URLの最後が「/」でアクセスされた時の優先表示ファイル名(左から優先され表示される)
DirectoryIndex index.shtml index.html index.htm index.html.var

CGIスクリプトを実行できるようにする
AddHandler cgi-script .cgi

CGIを実行するPerlシンボリックリンクを貼る(FreeのCGIを使用する際の対応)

現在のPerlの位置
# which perl
/usr/bin/perl

シンボリックリンク設定
# ln -s /usr/bin/perl /usr/local/bin/perl

変更後のPerlの位置
# which perl
/usr/local/bin/perl

apacheの起動

apache(httpd)を起動する
# /etc/rc.d/init.d/httpd start

OSの再起動を行ったときにapacheを自動的に起動するように設定する

起動時にapache(httpd)を起動する
# chkconfig httpd on
httpd を起動中:                                            [  OK  ]

設定内容を確認
# chkconfig --list httpd
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off


なお、CentOS5.3のデフォルトではFirewallの設定が「有効」になっているようです。
「無効」にしてあげることで、アクセスできるようになります。

# system-config-securitylevel-tui
Firewall 無効
SELinux 無効

apacheの動作確認する

http://CentOSのIPアドレス


参考
はじめての自宅サーバ構築 - Fedora/CentOS - Webサーバの構築(apache)

Bullzip PDF Printerの文字化け

先週から友人の会社で購入したノートPC Compaq6710bを借りて個人的に使わせてもらっています。
私が所有しているPCで一番スペックの高いものがThinkpadX31をメモリ512MB、HDDを80GBに換装したものなので、それと比較すると快適さが半端なく良いです。(当たり前か。。。)
このCompaq6710bはメモリを4GB積んでいるのでVMwareLinuxもさくさくです。(ホストOSがWindowsXP 32bit版なので3GBしか認識しませんが。)

そのCompaq6710bでWordの文書をPDF Completeというプリインストール済みのソフトを使用してPDFファイルを作成したところ、ヘッダ部分に広告がはいっていました。プライベートで使用する分には広告が入っていても問題ないのですが、ビジネスでの利用はできないなということでアンインストール。代わりBullzip PDF Printerという仮想プリンタドライバとして使用するソフトをインストールしました。

このソフトですが、インストール後に起動するとGUIが文字化けします。文字化けしていても直感でなんとなく使えるのですが、どうせなら直したいなという気持ちで調べてみると文字化けの直し方が公開されていました。

以下、既知情報ですがメモとして残しておきます。

Bullzip PDF Printer文字化けの直し方
「コンピューター」→「Program Files」→「Bullzip」→「PDF Printer」から「Labels.txt」の先頭に以下を追加するだけです。

WindowsLanguage=JPN
CultureID=1041
CultureName=ja-JP
CultureNativeName=日本語 (日本)
MissingTranslations=0

文字化けを直さないといけないので多少面倒臭いですが、うっとうしい広告が入らないのでPDFファイルを作成するときには大変便利なソフトです。

参考
http://e-freesky.info/article/107110632.html


DataGridViewのRowヘッダー、Columnヘッダーを表示させない

久しぶりにC#を触りました。DataGridViewを使ってRow、Columnヘッダーを表示させたくない場合、どうするのだろうと思って調べてみましたのでメモしておきます。

シンプルにプロパティ値をTRUE or FALSEにするだけでいけちゃいました。

サンプルコード

public Form1()
{
    InitializeComponent();
    // DataGridViewのセットアップ
    setupDataGridView();
}

private void setupDataGridView()
{
    // Rowヘッダーを表示させない
    dataGridView1.RowHeadersVisible = false;
    // Columnヘッダーを表示させない
    dataGridView1.ColumnHeadersVisible = false;
    //奇数行にカラーを設定
    dataGridView1.AlternatingRowsDefaultCellStyle.BackColor = Color.LightBlue;
    //Row数をセット
    dataGridView1.RowCount = 13;
    //Column数をセット
    dataGridView1.ColumnCount = 3;
 }

上記のコードを実行すると、次のようなフォームが作成されました。


それにしても、VisualStudioはあいかわらず重い。.NET以前まではそれほど重いと思わなかったのですが.NETになってからは最悪です。業務で使用している人がちょっとかわいそうになるくらいです。

あと、Express Editionにも単体テスト機能をつけてください > MSさん

Ubuntu9.0.4にEclipseをインストールしてみた

職場の先輩からNECのノートPC(Lavie)を頂いたので、それにUbuntu9.0.4をいれたついでにEclipseもインストールしたので、メモしておきます。

  • Ubuntu9.0.4のisoイメージをダウンロードしてCDに焼く
  • 作成したCDを使ってUbuntuをインストール
  • EclipseEclipse.orgからJavaEE用のパッケージをダウンロード
  • ダウンロードしたファイルを展開

   展開先はホームフォルダに展開しました。> /home/greennoah/eclipse

  • Eclipseを日本語化するためPleiadesをダウンロードし、展開してできたpluginsとfeaturesとeclipse.ini.sampleを/home/greennoah/eclipseにコピー
  • eclipse.ini.sampleをeclipse.iniにリネームし中身を編集

   jarファイルのパスを絶対パスに変更してやります。

--launcher.XXMaxPermSize
256M
-framework
/home/greennoah/eclipse/plugins/org.eclipse.osgi_3.4.3.R34x_v20081215-1030.jar
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms256m
-Xmx256m
-Declipse.cvs.anon=true
-javaagent:/home/greennoah/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/plei
ades.jar

ここまでの手順でとりあえず、/home/greennoah/eclipse/eclipseを実行すると起動することができますが、端末からeclipseと実行したかったので、以下もあわせて行いました。

sudo ln -s /home/greennoah/eclipse /opt/eclipse
sudo vi /usr/bin/eclipse

/usr/bin/eclipseの中身に以下を書きます。

#!/bin/sh
export ECLIPSE_HOME="/opt/eclipse"

$ECLIPSE_HOME/eclipse $*

で、実効権限をつけてやります。

sudo chmod +x /usr/bin/eclipse

これで、端末からeclipseとコマンドを実行すれば起動するので、わざわざEclipseディレクトリにあるeclipseを実行しなくてもOKです。

Windowsで1ヶ月の日付ファイルを作成する

システムの運用監視をしていると1ヶ月の日付ファイルを作成したいケースがあります。

例えば、'200905'というフォルダに'20090501.txt'というような日付ファイルを1ヶ月分作成したい場合、効率的にファイルを作成するためにはどういった方法があるのでしょうか。

ここではテキスト形式の空ファイルを前提にします。

LinuxUnixではtouchコマンドというファイルを新規作成するコマンドが用意されています。
Windowsでは残念ながら、それに当たるコマンドが存在しませんがコマンドプロンプトでecho offをリダイレクトすることで空ファイルが作成できます。また、プログラミング言語を使用して空ファイルを作成することも可能です。

前者のほうはEXCELなどの表計算ソフトを使えば、1ヶ月分のファイル名がすぐ作れるので、それにecho offを組み合わせてやります。

例)

echo off > 20090501.txt
echo off > 20090502.txt
echo off > 20090503.txt
echo off > 20090504.txt
:

これをコピーしてコマンドプロンプトに貼り付けるだけです。簡単ですね。

次にプログラミング言語を使う場合ですが、たくさんあるプログラミング言語の中でもスクリプト言語のほうがコンパイルが不要なため、こうしたツール類を作る場合は向いているのではないでしょうか。

今回は引数に作成したい月を渡すと、その月のファイルが作成されるというスクリプトPythonで書いてみました。

# create_file.py
import sys

for x in xrange(31):
       x += 1
       if(x < 10):
               num = "0" + str(x)
       else:
               num = str(x)

       fname = sys.argv[1] + num + ".txt"
       f = open(fname, 'w')
       f.close()

使い方

python create_file.py 200905

プログラムは色々な書き方ができるため、ここでは深くつっこみませんが、数ヶ月分のファイルを作成するときはプログラムを使ったほうが効率的でしょうね。1ヶ月分くらいであれば、わざわざプログラムを書くまでもないので前者で十分といったところでしょうか。

その他にも考えればもっとたくさんでてくるのでしょうが、ぱっと思いついたところでは上記くらいです。