Home > Debian

Debian Archive

Red5 install to Debian GNU/Linux etch

Installation

$ ./jdk-6u6-linux-i586.bin<sup>*1</sup>
$ wget http://apache.mirror.transip.nl/ant/binaries/apache-ant-1.7.0-bin.tar.gz
$ tar zxvf apache-ant-1.7.0-bin.tar.gz
$ sudo mv ./apache-ant-1.7.0 /usr/local/ant
$ sudo cp /usr/local/ant/* /usr/bin
$ vim ./bash_profile

export PATH=/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/local/jdk1.6.0_06/bin/$PATH:/usr/local/ant/bin
export ANT_HOME=/usr/local/ant

$ svn co http://svn1.cvsdude.com/osflash/red5/java/server/trunk red5-trunk
$ cd red5-trunk
$ ant
$ dist/red5.sh &

起動できると [INFO] [main] org.red5.server.Standalone – Startup done in: ほげほげ などと出てくる。

Caution

*1 – http://java.sun.com/javase/ja/6/download.html
/usr/bin の java が gij (GNU libgcj) のもの (1.4.0) かもしれないので注意。1.4.0 の場合は「ソースがだめ」とかなんとか出てきて make が通らない。
/usr/bin/java, /usr/bin/javac ともに削除するか別の名前に変更して新しい java のシンボリックリンクを貼るかコピー。

$ sudo mv /usr/bin/java /usr/bin/java.1.4.0
$ sudo mv /usr/bin/javac /usr/bin/javac.1.4.0
$ sudo ln -s /usr/local/jdk1.6.0_06/bin/java /usr/bin/java
$ sudo ln -s /usr/local/jdk1.6.0_06/bin/javac /usr/bin/javac

みたいな。

See also.

Debian GNU/Linux etch に Trac をインストールしてみたよ

Debian GNU/Linux etch に Trac をインストールしたので、そのときのメモ。

インストール

リポジトリ管理は subversion で行いましたので、まずは subversion と trac をインストール。
python で動くので Apache の mod_python もインストール。

$ sudo aptitude install subversion trac trac-ja-resource libapache2-mod-python

mod_python がロードされてなかったら

$ sudo a2enmod mod_python

として下さい。

trac-ja-resource は Trac のテンプレートやドキュメントを日本語化したリソースになります。「俺は英語のままでいい!」という向きはインストールされなくても問題ありません。

リポジトリの作成

今回は testproject という名前のリポジトリを作成します。

$ svnadmin create /home/user/testproject

Trac プロジェクトの作成

testproject リポジトリ用の Trac プロジェクトを作成します。
Trac プロジェクトとして作成したディレクトリは web ページとして公開します。

$ sudo trac-admin /var/www/trac/testproject initenv
Creating a new Trac environment at /var/www/trac/testproject

Trac will first ask a few questions about your environment
in order to initalize and prepare the project database.

 Please enter the name of your project.
 This name will be used in page titles and descriptions.

Project Name [My Project]> # プロジェクト名 例)testproject

 Please specify the connection string for the database to use.
 By default, a local SQLite database is created in the environment
 directory. It is also possible to use an already existing
 PostgreSQL database (check the Trac documentation for the exact
 connection string syntax).

Database connection string [sqlite:db/trac.db]> # DSN 例)規定値

 Please specify the type of version control system,
 By default, it will be svn.

 If you don't want to use Trac with version control integration,
 choose the default here and don't specify a repository directory.
 in the next question.

Repository type [svn]> # リポジトリのタイプ 例)規定値

 Please specify the absolute path to the version control
 repository, or leave it blank to use Trac without a repository.
 You can also set the repository location later.

Path to repository [/path/to/repos]> # リポジトリのパス 例)/home/user/testproject

 Please enter location of Trac page templates.
 Default is the location of the site-wide templates installed with Trac.

Templates directory [/usr/share/trac/templates]> # プロジェクトのテンプレート 例)規定値
# /usr/share/trac-ja-resource/templates を指定するとメニューが日本語化されます。

2008/9/16 追記
この方法でメニューを日本語化するとリポジトリブラウザが正常に表示されなくなるので注意。

これで Trac プロジェクトが作成できました。
HTTP でアクセスするため、作成したプロジェクトのオーナーを Apache の実行ユーザに変更します。

$ sudo chown www-data -R /var/www/trac/testproject

ユーザ管理

Trac では Apache の認証を利用してユーザ管理を行います。
プロジェクト作成直後は anonymous ユーザに色々な権限が与えられていますので、まずは anonymous ユーザの権限を変更します。

$ sudo trac-admin /var/www/trac/testproject permission remove anonymous  REPORT_DELETE WIKI_CREATE WIKI_MODIFY REPORT_SQL_VIEW TICKET_APPEND TICKET_CHGPROP TICKET_CREATE TICKET_MODIFY

これで anonymous ユーザは閲覧しか出来なくなりました。

ユーザに与えられている権限を確認したい場合には以下のコマンドを使います。

$ sudo trac-admin /var/www/trac/testproject permission list anonymous

次に、testproject に新しいユーザを追加し、権限を設定します。

$ sudo trac-admin /var/www/trac/testproject permission add nic BROWSER_VIEW CHANGESET_VIEW CONFIG_VIEW FILE_VIEW LOG_VIEW MILESTONE_ADMIN MILESTONE_CREATE MILESTONE_DELETE MILESTONE_MODIFY MILESTONE_VIEW REPORT_ADMIN REPORT_CREATE REPORT_DELETE REPORT_MODIFY REPORT_SQL_VIEW REPORT_VIEW ROADMAP_ADMIN ROADMAP_VIEW SEARCH_VIEW TICKET_ADMIN TICKET_APPEND TICKET_CHGPROP TICKET_CREATE TICKET_MODIFY TICKET_VIEW TIMELINE_VIEW TRAC_ADMIN WIKI_ADMIN WIKI_CREATE WIKI_DELETE WIKI_MODIFY WIKI_VIEW

これで全ての権限を持ったユーザ nic が追加されました。

次に、認証に使うパスワードファイルを作成します。

$ htpasswd -c /var/trac/.htpasswd nic

これでユーザ管理の設定はおしまいです。

参考 URI

Apache の設定

単一のホストで複数の Trac プロジェクトを管理する場合、mod_rewrite などを使ってプロジェクトに応じて環境変数を振り分ける必要があります。
例えば trac.example.com というバーチャルホストに対して複数の Trac プロジェクトを割り当てる場合、下記のような設定を行います。

<virtualHost *>
        ServerName trac.example.com
        DocumentRoot /var/www/trac

        RewriteEngine on
        RewriteRule ^/([[:alnum:]]+)(/?.*)      /trac.cgi$2 [S=1,E=TRAC_ENV:/var/www/trac/$1]

        <directory "/var/www/trac">                AllowOverride None
                Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
                AddHandler cgi-script .cgi
                Order allow,deny
                Allow from all
        </directory>
        <locationMatch "/[[:alnum:]]+/login">
                AuthType Basic
                AuthUserFile /var/trac/.htpasswd
                Require valid-user
        </locationMatch>
</virtualHost>

trac.examle.com 配下のディレクトリ名を環境変数に渡しているため、この設定により http://trac.examle.com/testproject で testproject の Trac にアクセスが出来るようになります。
また、この設定を行うためには /usr/share/trac/cgi-bin/trac.cgi のシンボリックリンクかコピーを /var/www/trac/trac.cgi に置く必要があります。

参考 URI

以上で設定は完了です。

ドキュメントの日本語化

既定では作成した Trac プロジェクトの wiki ドキュメントは英語です。trac-ja-resource をインストールしているならばこのドキュメントを日本語化することも可能です。

$ sudo trac-admin /var/www/trac/testproject wiki load /usr/share/trac-ja-resource/wiki-default

詳しくは /usr/share/doc/trac-ja-resource/README.ja を確認して下さい。

Debian/GNU Linux etch に mod_chxj をインストールしたよ

携帯電話向けにコンテンツを変換する Apache モジュールの mod_chxj が約1年半ぶりにバージョンアップしていたのでインストールしてみました。

deb パッケージだと Apache2.2 に対応していないのでソースからビルドします。

mod_chxjをインストールする前に、下記のものを用意する必要があります。

  1. Apache2.0のヘッダーファイル群
  2. Apache2.0用のapxs
  3. apr(Apache Portable Runtime)ライブラリとそのヘッダファイル郡(apu含む)
  4. automake、autoconf、libtool1.3.X
  5. ImageMagick(MagickWand)
  6. libiconvまたはlibiconv_hook
  7. Linux

と、ありますので、libapr や libmagick を aptitude でインストールしておきます。

libconv は http://ftp.gnu.org/pub/gnu/libiconv/
libconv の日本語パッチは http://www2d.biglobe.ne.jp/~msyk/software/libiconv-patch.html にありますので、それぞれ wget して gzip -dc libiconv-1.12-ja-1.patch.gz | patch -p1 とパッチをあててからインストールします。

$ wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.12.tar.gz
$ tar xvzf libiconv-1.10.tar.gz
$ cd libiconv-1.10
$ wget http://www2d.biglobe.ne.jp/~msyk/software/libiconv/libiconv-1.12-ja-1.patch.gz
$ gzip -dc libiconv-1.10-ja-1.patch.gz | patch -p1
$ ./configure
$ make
$ sudo make install

という感じ。

次に mod_chxj のダウンロードとインストール。

$ wget http://osdn.dl.sourceforge.jp/modchxj/28979/mod-chxj_0.8.1p1.src.tar.gz
$ tar vxzf mod-chxj_0.8.1p1.src.tar.gz
$ cd mod-chxj_0.8.1p1

こんな感じで解凍したら、エディタで ./src/chxj_cookie.c を開きます。
120行辺りに下記のコードがありますので、ap_run_http_method(r), をコメントアウトして下さい。

if (! has_refer) {
    apr_uri_parse(r->pool,r->uri, &parsed_uri);
    refer_string = apr_psprintf(r->pool,
                                "%s://%s%s",
#if AP_SERVER_MAJORVERSION_NUMBER == 2 && AP_SERVER_MINORVERSION_NUMBER == 2
                                ap_run_http_scheme(r),
#else
                                ap_run_http_method(r),
#endif
                                r->hostname,
                                apr_uri_unparse(r->pool,
                                                &parsed_uri,
                                                APR_URI_UNP_OMITSITEPART));
    if (r->args && strlen(r->args)) {
      refer_string = apr_pstrcat(r->pool, refer_string, "?", r->args, NULL);
    }
    apr_table_setn(new_cookie_table, REFERER_COOKIE_KEY, refer_string);
    DBG1(r, "ADD REFER[%s]", refer_string);
    has_cookie++;
  }

次にコンパイル&インストール。

$ ./buildconf.sh
$ ./configure --prefix=/usr --with-apache-header=/usr/include/apache2 --with-apxs=/usr/bin/apxs2 --with-iconv=/usr/bin/iconv --with-apr-config=/usr/bin/apr-config --with-apu-config=/usr/bin/apu-config
$ make
$ sudo make install

こんな感じです。

インストールできたらソースパッケージの中にある etc ディレクトリの xml ファイルを /etc/apache2/chxj などという名前のディレクトリを作成してコピーします。
インストール時にモジュールをロードする設定ファイルが Apache のモジュール設定ファイルのディレクトリにコピーされているはずですが、されていなかった場合にはソースパッケージの debian ディレクトリにある chxj.load を適時コピーして下さい。

設定は http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/modchxj/mod_chxj/doc/modchxj.html?rev=1.20#doc1_102 を参考にして下さい。

僕は試しに mb サブドメインでバーチャルホストを立てて

<virtualHost *>
      ServerName mb.example.com
      DocumentRoot /var/www/mb/httpdocs
	<directory /var/www/mb/httpdocs>
		Options FollowSymLinks MultiViews ExecCGI
		AllowOverride All
	</directory>
	ChxjLoadDeviceData  /etc/apache2/chxj/device_data.xml
	ChxjLoadEmojiData   /etc/apache2/chxj/emoji.xml
	ChxjConvertRule "^/chxj.+$" "EngineOn" "UTF-8" "PC"
	<location /images>
		ChxjImageEngine On
		ChxjImageCacheDir /tmp
	</location>
</virtualHost>

という風にしました。
絵文字や画像のキャリアごとの差異を web プログラム側で気にしなくても良いのはとても素晴らしいことですね。

Debian GNU/Linux etch に Tritonn をインストールしなおしてみたよ

先日、Debian GNU/Linux に Tritonn をインストールしてみたよDebian GNU/Linux etch の PHP で Tritonn に接続するTritonn のインストールをお伝えしてきましたが、どうにも PHP がセグメンテーション違反を起こし、それがもうどうにもさっぱりなので気を取り直して Tritonn のインストール場所を Debian のパッケージにあわせてインストールしなおしてみました。

$ wget http://jaist.dl.sourceforge.jp/tritonn/28541/mysql-5.0.51-tritonn-1.0.8-linux-i686.tar.gz
$ tar zxvf mysql-5.0.51-tritonn-1.0.8-linux-i686.tar.gz
$ sudo mv mysql-5.0.51-tritonn-1.0.8-linux-i686 /var/lib/mysql
$ sudo groupadd mysql
$ sudo useradd -g mysql mysql
$ cd /var/lib/mysql
$ sudo chown -R root:root .
$ sudo chown -R mysql:root data
$ sudo scripts/mysql_install_db -umysql
$ sudo cp support-files/mysql.server /etc/init.d/mysql
$ sudo cp /var/lib/mysql/support-files/my-small.cnf /etc/my.cnf
$ sudo vim /etc/my.cnf

[client]
socket = /var/run/mysqld/mysqld.sock
[mysqld]
socket = /var/run/mysqld/mysqld.sock
basedir = /var/lib/mysql

$ sudo mkdir /var/run/mysqld
$ sudo chown mysql /var/run/mysqld

$ sudo update-rc.d mysql defaults
$ sudo ln -s /usr/include/mysql /var/lib/mysql/include
$ sudo cp -r /var/lib/mysql/lib/* /usr/lib

こんな感じで Apache と MySQL を再起動すると正常に動作しました。

ためしに「郵便番号と住所の対応表を「郵便番号データダウンロード – 日本郵便」からダウンロードして以下の様なテーブルを作って、そこに郵便データを登録するスクリプト」を作ってデータベースにガシガシ登録して全文検索を試してみました。

CREATE TABLE `zipcode` (
  `zipcode` varchar(7) default NULL,
  `prefecture_kana` varchar(36) default NULL,
  `city_kana` varchar(255) default NULL,
  `town_kana` varchar(255) default NULL,
  `prefecture` varchar(24) default NULL,
  `city` varchar(255) default NULL,
  `town` varchar(255) default NULL,
  FULLTEXT INDEX USING NGRAM, SECTIONALIZE (`zipcode`,`prefecture_kana`,`city_kana`,`town_kana`,`prefecture`,`city`,`town`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

カラムはそれぞれ

zipcode
郵便番号
prefecture_kana
都道府県(ひらがな)
city_kana
市区町村(ひらがな)
town_kana
町域
prefecture
都道府県
city
市区町村
town
町域

と言う感じです。

ためしに以下の以下のスクリプトを実行してみると

<?php
$DB = new PDO('mysql:host=localhost;dbname=test_db', 'test_user', '******');
$q = $DB->query(
    "SELECT * FROM `zipcode` WHERE MATCH(`zipcode`, `prefecture_kana`, ".
    "`city_kana`, `town_kana`, `prefecture`, `city`, `town`) ".
    "AGAINST('*W1, 2, 3, 4, 5, 6, 7 かわさき' IN BOOLEAN MODE) LIMIT 0, 10");
$r = $q->fetchAll(PDO::FETCH_ASSOC);
var_dump($r);
?>

きちんと結果が返ってきました。

array(10) {
  [0]=>
  array(7) {
    ["zipcode"]=>
    string(7) "0280051"
    ["prefecture_kana"]=>
    string(15) "いわてけん"
    ["city_kana"]=>
    string(9) "くじし"
    ["town_kana"]=>
    string(21) "かわさきちょう"
    ["prefecture"]=>
    string(9) "岩手県"
    ["city"]=>
    string(9) "久慈市"
    ["town"]=>
    string(9) "川崎町"
  }
  [1]=>
  array(7) {
    ["zipcode"]=>
    string(7) "9391553"
    ["prefecture_kana"]=>
    string(15) "とやまけん"
    ["city_kana"]=>
    string(12) "なんとし"
    ["town_kana"]=>
    string(18) "かみかわさき"
    ["prefecture"]=>
    string(9) "富山県"
    ["city"]=>
    string(9) "南砺市"
    ["town"]=>
    string(9) "上川崎"
  }
  [2]=>
  array(7) {
    ["zipcode"]=>
    string(7) "9130025"
    ["prefecture_kana"]=>
    string(15) "ふくいけん"
    ["city_kana"]=>
    string(12) "さかいし"
    ["town_kana"]=>
    string(30) "みくにちょうかわさき"
    ["prefecture"]=>
    string(9) "福井県"
    ["city"]=>
    string(9) "坂井市"
    ["town"]=>
    string(15) "三国町川崎"
  }
  [3]=>
  array(7) {
    ["zipcode"]=>
    string(7) "8720731"
    ["prefecture_kana"]=>
    string(18) "おおいたけん"
    ["city_kana"]=>
    string(9) "うさし"
    ["town_kana"]=>
    string(27) "あじむまちかわさき"
    ["prefecture"]=>
    string(9) "大分県"
    ["city"]=>
    string(9) "宇佐市"
    ["town"]=>
    string(18) "安心院町川崎"
  }
  [4]=>
  array(7) {
    ["zipcode"]=>
    string(7) "9690401"
    ["prefecture_kana"]=>
    string(18) "ふくしまけん"
    ["city_kana"]=>
    string(36) "いわせぐんかがみいしまち"
    ["town_kana"]=>
    string(18) "かわさきまち"
    ["prefecture"]=>
    string(9) "福島県"
    ["city"]=>
    string(18) "岩瀬郡鏡石町"
    ["town"]=>
    string(9) "川崎町"
  }
  [5]=>
  array(7) {
    ["zipcode"]=>
    string(7) "9170081"
    ["prefecture_kana"]=>
    string(15) "ふくいけん"
    ["city_kana"]=>
    string(12) "おばまし"
    ["town_kana"]=>
    string(12) "かわさき"
    ["prefecture"]=>
    string(9) "福井県"
    ["city"]=>
    string(9) "小浜市"
    ["town"]=>
    string(6) "川崎"
  }
  [6]=>
  array(7) {
    ["zipcode"]=>
    string(7) "2050021"
    ["prefecture_kana"]=>
    string(18) "とうきょうと"
    ["city_kana"]=>
    string(12) "はむらし"
    ["town_kana"]=>
    string(12) "かわさき"
    ["prefecture"]=>
    string(9) "東京都"
    ["city"]=>
    string(9) "羽村市"
    ["town"]=>
    string(6) "川崎"
  }
  [7]=>
  array(7) {
    ["zipcode"]=>
    string(7) "2891331"
    ["prefecture_kana"]=>
    string(12) "ちばけん"
    ["city_kana"]=>
    string(12) "さんむし"
    ["town_kana"]=>
    string(12) "かわさき"
    ["prefecture"]=>
    string(9) "千葉県"
    ["city"]=>
    string(9) "山武市"
    ["town"]=>
    string(6) "川崎"
  }
  [8]=>
  array(7) {
    ["zipcode"]=>
    string(7) "8270000"
    ["prefecture_kana"]=>
    string(18) "ふくおかけん"
    ["city_kana"]=>
    string(33) "たがわぐんかわさきまち"
    ["town_kana"]=>
    string(0) ""
    ["prefecture"]=>
    string(9) "福岡県"
    ["city"]=>
    string(18) "田川郡川崎町"
    ["town"]=>
    string(0) ""
  }
  [9]=>
  array(7) {
    ["zipcode"]=>
    string(7) "8270001"
    ["prefecture_kana"]=>
    string(18) "ふくおかけん"
    ["city_kana"]=>
    string(33) "たがわぐんかわさきまち"
    ["town_kana"]=>
    string(9) "あまぎ"
    ["prefecture"]=>
    string(9) "福岡県"
    ["city"]=>
    string(18) "田川郡川崎町"
    ["town"]=>
    string(9) "安眞木"
  }
}

Senna はよく知らないのでこれからお勉強です。

Debian GNU/Linux etch の PHP で Tritonn に接続する

2008/1/12 追記:このエントリの通りに行うとまずい可能性があります。詳しくはDebian GNU/Linux etch に Tritonn をインストールしなおしてみたよをご覧下さい

Debian の aptitude はとても便利なのですが、Tritonn みたいに手作業でインストールしているものがひとつでもあると大概やり直しという羽目になりがちです。
先日インストールした Tritonn の MySQL のバージョンは 5.0.51 で、PHP が参照している MySQL クライアントは 5.0.32 。
これを Tritonn のクライアントに向けるためにリビルドしてインストールしなおしましたメモ。

$ pear download pecl/mysql
$ tar xvzf mysql-1.0.tgz
$ cd mysql-1.0
$ ./configure --with-mysql=/usr/local/mysql
$ make
$ sudo make install
$ cd ..
$ pear download pecl/pdo_mysql
$ tar xvzf PDO_MYSQL-1.0.2.tgz
$ cd PDO_MYSQL-1.0.2
$ phpize
$ ./configure --with-pdo-mysql=/usr/local/mysql
$ make
$ sudo make install

これで PHP の MySQL は Tritonn のクライアントを見に行きました。

ホーム > Debian

Search
Feeds
Meta

Return to page top