Server: 2007年8月アーカイブ

PostgreSQLの設定

| | コメント(0)

 先月のMT4検証で気になっていたのがデフォルトのPostgreSQLはローカルマシンでDBに接続するときは誰でも入れてしまうなーっと。これはpg_hba.confの設定でローカルマシンからの接続は無条件に許可しているからでした。

 共用サーバになるといろいろな人が利用するのではこれではマズいと設定の見直し。

# TYPE DATABASE USER CIDR-ADDRESS METHOD

# "local" is for Unix domain socket connections only
local all all password
# IPv4 local connections:
host all all 127.0.0.1/32 password
# IPv6 local connections:
host all all ::1/128 password

localはコマンドラインで通常接続するときに使用しているUNIXドメインソケット、hostがTCP/IPで接続するときの設定です。デフォルトではMETHODがtrustになっていますがこれをpasswordに変えることでDB接続時にPostgreSQL内で設定したユーザパスワードが必要になります。但しパスワード未設定のユーザは接続できなくなるので事前に設定の確認をしてください。(特にpostgresは忘れがち)

 まだ使用したこと無いので開発や運用の方法についてテスト環境で検討しなければいけないのですが、MySQLだとライセンスはともかく規模が大きくなるにつれて負荷分散が面倒になってくるしISAMで調子に乗ってるとデータの整合性で痛い目にあうし、PostgreSQLはバキュームとの付き合いが大変なんだよな…。自分としてはメンテでサービス停止するよりデータの安全性を重要視しているので、C言語で開発するときはPostgreSQL/Firebird両対応で検討しようかな。

適材適所のデータベース選択が重要--Firebird日本ユーザー会 CNETニュース ネット&デジタル YOMIURI ONLINE(読売新聞)
http://www.yomiuri.co.jp/net/cnet/20070820nt02.htm

 あとはWeb-DBとして利用する場合にPerlとPHP用のコネクタをどうするかです。
CPANで検索するとDBD-InterBase-0.47が検索されました。元がInterBaseだから使えるみたいですね。

Perl用モジュール:CPAN
DBD-InterBase-0.47

 PHPの方はインストール時に--with-interbase=ディレクトリ指定でInterBase関数を組み込みできるようです。PHPの和書でFireBird(InterBase)を取り上げたものを見たことないので関数仕様などはネットで探すしかなさそうですね。PEAR派の人は特に苦労なかったりして。

PHP から Firebird をアクセス(セットアップ編) - Firebird Wiki

php Firebird-InterBase 関数 - Manual
http://jp.php.net/manual/ja/ref.ibase.php

SSH接続の効率化

| | コメント(0)

 この前からTeraTermMenuの古い日本語版をカスタマイズしてコンパイルし使っていましたが、UTF版TeraTermには英語版の最新TeraTerm Menuが入ってました。それだけなら特に他の方法でやってみようという気にならなかったのですが、多段ログインのマクロを組んでいるときにヘルプを見たら…。普通にマクロの拡張子をTeraTermMacroに登録して利用できるようです。つまりマクロファイルダブルクリックでOKということなのでこれをスタートメニューとかクイック起動バーに登録すればTeraTermMenuは使わなくても良かったということです。

まずはwheelグループに属しているユーザでログインしsuでルートになる方法
username = 'username'
hostname = '192.168.100.100'
password = 'userpassword'
supass = 'supassword'
ini = 'black_euc.ini'
timeout = 30
msg = hostname
strconcat msg ':22 /ssh /auth=password '
strconcat msg '/user='
strconcat msg username
strconcat msg ' /passwd='
strconcat msg password
strconcat msg ' /f='
strconcat msg ini
connect msg
pause 2
sendln 'su -'
wait 'Password:'
sendln supass

iniの項目でカスタマイズしたiniファイルを定義します。これはサーバーによって扱っているロケールの文字コードが違う為文字コード別にiniファイルを作成しています。あとはDevelop/Staging/Publicで背景色と文字色を変えてサーバの取り違いミスを予防します。接続の後のpauseはサーバーの応答を待たずにsuコマンドを発行しないようにマクロ側を一時停止します。その後のwaitはサーバーからの応答を待ってパスワードを送信します。timeoutはwait用の値です。

上記はパスワード認証用ですが、次は公開鍵を使って1台目のサーバに接続しさらに他のサーバへsshへログインする方法です。(これはグローバルIPを持たないデータベース専用サーバ等でよく利用します)

username = 'username'
hostname = '192.168.100.100'
password = 'userpass'
key = 'id_rsa'
rlhost = '192.168.100.101'
rluser = 'rluser'
rlpass = 'rlpass'
ini = 'black_euc.ini'
msg = hostname
strconcat msg ':22 /ssh /auth=publickey '
strconcat msg '/user='
strconcat msg username
strconcat msg ' /passwd='
strconcat msg password
strconcat msg ' /keyfile='
strconcat msg key
strconcat msg ' /f='
strconcat msg ini
connect msg
pause 2

msg = 'ssh -l '
strconcat msg rluser
strconcat msg ' '
strconcat msg rlhost
sendln msg
wait 'Password:'
sendln rlpass

そして作成したマクロファイルをダブルクリックで起動できるように定義します。

WindowsXPでの登録方法
1.エクスプローラーの[ツール(T)]-[フォルダ オプション(O)]からファイルの種類タブをクリック。
2.[新規(N)]をクリック。
3.ファイル拡張子(F)の欄に「.ttl」と入力して[OK]をクリック
4.TTLファイルが登録されたら、「拡張子'TTL'の詳細」グループ内の[詳細設定(V)]ボタンをクリック。
5.一番上のテキスト入力は拡張子の種類に入る説明なので「Tera Term macro files
」と入力。
6.[アイコンの変更(I)]をクリックして好きなアイコンを選択。TeraTerm系のアイコンにしたい場合は[参照(B)]よりTeraTermのインストールされているフォルダへ参照しTeraterm実行ファイルの中から選択する。
7.[新規(N)]をクリックしアクションに「接続」と入力。実行するアプリーションは[参照(R)]でTeraTermマクロ実行ファイルを選択。この時%1が追加で挿入されるがダブルクォートで囲んで[OK]をクリック。
例) "C:\Program Files\teraterm\ttermpro.exe" "%1"
8.ついでに[新規(N)]でもうひとつ登録。アクションは「編集」でアプリケーションはTTLEditを選択する。
9.既定は「接続」になっていることを確認して[OK]をクリック。最後に[閉じる]をクリックして終了。

TTLEditはTeraTermマクロに特化したエディタで色分けもされているのでとても便利です。

専用サーバ到着

| | コメント(0)

 さて9月稼動に向けて構築します。開発環境にかなり近い構成だったのでこれまでの構築方法でできそうです。

米SNSのソースが流出

| | コメント(0)

 ウェブサーバの設定ミスでソースが見れる状態だったそうですがThttpdなんてウェブサーバ初めて聞いた。AN HTTPDみたいな軽いサーバーなのかな?mime-typeの設定忘れ等でスクリプトがポロッと流出するので気をつけたいですね。

米人気SNS、誤ってソースコード流出 - ITmedia News
http://www.itmedia.co.jp/news/articles/0708/14/news036.html

 リンクの記事を見るとEnterprise版もGPLらしい。別パッケージでもデュアルライセンスでも無いのか、RHELとfedoraみたいなモデルに近いですね。最近本家の方は登録前提にしているとか古いソースが無い(見つけにくいだけかも)とかでかなり不便になってきているのでソースを確保するのなら今のうちですね。

Open Tech Press MySQL Enterprise版ソースコードのtarボール配布が終了
http://opentechpress.jp/opensource/07/08/13/0127200.shtml

専用サーバ申し込み

| | コメント(0)

 とうとう申し込みました。今のサーバでもスペック的には余裕なのですが、まぁいろいろと用途が増えるので1台まるごとです><

 一台丸ごと借りるとなると今までウェブページで設定していたメールアドレス等を自前で用意しないといけない。(別に個人では不要なんですが一部分を再リースするので必要になった)

 ということで専用サーバの設定が完了したらこのサイトもドメインはそのままで移設(多分今月中に)します。ブログに関してはMT4にバージョンアップしてBerkeley DBとおさらばです。

 あとはProject MMOの方でオープンテスト用の物が出来た時にも専用サーバを利用する予定です。

 今日はグリッドコンピューティングや分散型ネットワーク・OS自作関係の本で5冊も買ってしまった。グリッドコンピューティングに関しては構想や目標とするものは知っていましたがまだ発展途上で今現在何ができて何が不可能なのかを確認する為と、これがオンラインゲームの負荷分散にはどのように活用できるかの検討等。OS自作は、まぁ学生時代に何故そこまでするのかと疑問でしたがOSを外国製品に頼ることのライセンスリスクを考えたら必要な基礎勉強だと思えてきました。

 でも全部読み物みたいな間隔で読んでいるのでw 実際に手を出すのはまだ先の話…。

このアーカイブについて

このページには、2007年8月以降に書かれたブログ記事のうちServerカテゴリに属しているものが含まれています。

前のアーカイブはServer: 2007年7月です。

次のアーカイブはServer: 2007年9月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

Powered by Movable Type 4.1