JS/CSSファイルをControllerごとに分離する

Rails3.1以降では全てのJS/CSSが結合+圧縮されますが、それぞれのControllerに属するJSファイル内でjQueryのセレクタを使用した場合に、意図しない挙動が発生することがあったため、Controllerは結合の対象外とすることにしました。以下に行ったことをメモし…

Fluentdのログを消失させたくない話

fluentdのリトライ処理に失敗した場合に、ログを消失させたくない+処理に失敗したログを復旧させたいという話です。fluentdのBufferedOutput系のpluginは、retry_limitに記載されているリトライ回数を消費してしまった場合、"throwing away old logs."のwar…

in_tailの正規表現をテスト

in_tailのformatに正規表現を書く時は、 (修正→設定ファイル読み込み→確認) x nとしてましたが、 もっと簡単にテストしたかったので、formatで使用する正規表現のテスト方法を調べてみました。ソースを見てみると、どうやらfluent/parserの"RegexpParser"ク…

RubyのCassandraクライアントでバッチ処理。

大量データの読み込み, 書き込みのバッチ処理を効率よく行うため、Cassandraクライアントにはバッチ処理用の仕組みが用意されています。環境 cassandra (0.12.1)読み込み 大量データを処理するバッチ処理では、Cassandra内のデータを意識せずに読み込むと メ…

RubyのCassandraクライアントで分散カウンタの削除。

Cassandraクライアントから分散カウンタの削除ができなくてハマったのでメモ。環境 cassandra (0.12.1)対策 Cassandraの0.8から分散カウンタが追加されていて、Cassandraクライアントにも"add"というメソッドが追加されています。 これは分散カウンタ用のメ…

RubyのCassandraクライアントで指定したIPに接続できない怪現象。

rubyのcassandraクライアントから別サーバのcassandraに接続する場合に、指定したIPに接続されずローカルホストに接続してしまう怪現象が発生してハマったのでメモ。 (正直、Forkwellのパブリケーションに追加したい衝動に駆られて書きましたw)環境 ○サー…

サロゲートペア文字列の操作

目的Vistaが世に出てから、サロゲートペア文字列の扱いに頭を悩ませているエンジニアの方々も多いと思うのですが、「java サロゲートペア substring」とかで検索しても、なぜかそれっぽい記事が出てきません。 毎回実装するたび忘れて再実装しちゃうので、作…

ircd-hybridをssl通信で通信内容暗号化

irc

■ 目的 ircは通信内容が平文で流れるので、パケット解析ツールなどを使えば簡単に盗聴されてしまう。 通信内容をsslで暗号化して、セキュリティ向上をはかる。 ircd-hybridでのssl設定がどうしても見つからなかったため、stoneで、規定ポートへのパケットをs…

ircd-hybridのサーバーパスワード設定

irc

■ パスワード生成 ircに付属しているmkpasswdを使用(exceptのmkpasswdではない)して、md5でパスワードをエンコードする。# md5でエンコード(最後のexampleはsaltなのでなんでもよい) [root@example ~]# /usr/libexec/ircd/mkpasswd -m -s example plainte…

ircd-hybrid

irc

■ ircとは リアルタイムでチャットが出来るチャットサーバーです。 ircサーバーは複数ありますが、設定ファイルが読みやすいことからircd-hybridをインストールします。■ インストール epelのリポジトリからインストールします。 [root@example ~]# yum --en…

EPEL

■ EPELとは Fedora用に開発されたパッケージをCentOS(またはRHEL)のリポジトリを追加するパッケージ。■ インストールRPMをダウンロード [root@example tmp]# wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpmインストー…

prototype.jsのnew Ajax.UpdaterでIEのみエラー

HTML内にjavascriptを記述する場合、javascriptに対応していないブラウザのために、scriptタグ中にHTMLコメントを埋め込む事がある。しかし、new Ajax.Updaterでページの一部を書き換えた場合、ScriptタグにHTMLコメントを書くのは厳禁。 Firefoxでは正常に…

Basic認証

■ Basic認証とは 指定したディレクトリ以下にアクセスする場合に、ユーザー名とパスワードの入力を施す認証方式のことです。 ただし、パスワードを送信する際に暗号化されないので、機密性が高いディレクトリに対する認証としては適していません。 「見られ…

typo

■ typoとは RubyOnRailsで作られたオープンソースのweblogです。 # いずれこのブログも移転してみる予定。■ 事前準備 rubyのインストール(1.8.7) railsのインストール(2.2.2 mysqlのインストール(5.0.45) passengerのインストール(2.2.3) ※ 括弧内はno…

passenger

■ passengerとは Apacheのモジュールで動くRailsのWebコンテナです。 個別にデーモンを起動することなく、Apacheを起動するとpassengerも起動します。■ インストール # gemでインストール [root@example ~]# gem install passenger# Apacheのビルドとインス…

ntfsでmount

■ 目的 WindowsNT系のファイルシステムである"ntfs"でフォーマットされたhddをCentOSでマウントする。 しかし、標準ではマウント出来ないため、マウントできる環境を構築する。■ RPMforgeの導入 ココを参照してRPMforgeを導入する。■ インストール ntfsをマ…

RPMforge

■ RPMforgeとは CentOSのリポジトリには存在しないRPMもyumで導入できるようにするもの。 例)openvpn fuse 等■ yum-prioritiesをインストール CentOSリポジトリからの取得に影響を与えないために、リポジトリの優先度を決めるプラグインを導入する。 [root@…

Railsプロジェクトの階層表現

■ 目的Railsでプロジェクトを作成していくと、Controllerクラスなどが肥大化する傾向にある。 そこで、プロジェクト構成を分かりやすくするために、プロジェクトに階層を持たせる。■ 構成試しに、「admin」ディレクトリ以下にコントローラーを作成する場合。…

RubyからMySQLへの接続

■ RubyからMySQLへの接続 Rubyからmysqlへ接続するためにアダプタをインストールします。 ですが、通常にgemでインストールしようとしても、以下のようなエラーが発生する場合があります。 例) [root@example ~]# gem install mysql Building native extens…

フックスクリプト

フックスクリプトとは Subversionには、フックスクリプトという機構が用意されています。 クライアントがリポジトリに対して、なんらかのアクションを起こした際に起動するスクリプトです。 リポジトリのhooksディレクトリにあるスクリプトファイルが実行さ…

mongrel

■ mongrel Railsには標準でWebrickというWebサーバーが導入されていますが、ピュアなRubyのみで作成されていることもあり、少々遅いです。 一方、mongrelは速度的にはWebrickの何倍も早いようです。■ インストール gemでインストールします。 [root@example …

MySQL

■ mysqlとは MySQLとは、フリーのRDBMSです。■ インストール yumでインストールします。 [root@example ~]# yum install mysql-server■ 文字コードの設定 UTF8にする。 設定ファイル:/etc/my.cnf 〜 # サーバーの文字コードをUTF8にする default-character-…

RubyOnRails

■ 前提条件 RubyとRubyGemsがインストールされていること。■ インストール [root@yserver ~]# gem install rails --include-dependencies ■ プロジェクトの作成 [root@yserver ~]# rails sampleproject ■ サーバーの起動 Railsプロジェクトの直下に移動して…

RubyGems

■ RubyGemsとは Ruby関連のパッケージ管理ツールです。(yumみたいなもの)■ 前提条件 Rubyがインストールされていること。■ インストール ここで最新版をチェックします。 ダウンロード [root@yserver tmp]# wget http://rubyforge.org/frs/download.php/4590…

Ruby

■ インストール(yum) yumでインストールします。 [root@example tmp]# yum install ruby ruby-devel rdoc ■ インストール(ソース) ソースからインストールします。 上記のyumでのインストールだと、yumのリポジトリに入っていないバージョンはインストール出…

yum-cron[CentOS5.3]

■ yum-cronとは パッケージの更新情報管理をcronで行ってくれます。 yum-updatesdは常駐型なのでメモリリークを起こしてしまうらしいので、yum-cronを使用してパッケージの更新情報管理を行います。■ インストール CentOS5.3からyum-cronが削除されてしまっ…

Postfix

■ Postfixとは SMTPサーバーの一種です。 CentOSではsendmailがデフォルトで付随してますが、安全性・パフォーマンスの観点からPostfixが使用されることが多くなっているようです。■ インストール postfixがインストールされているか確認 [root@example ~]# …

+ 1 /usr/sbin/sendmail.sendmail

2 /usr/sbin/sendmail.postfixEnter を押して現在の選択 [+] を保持するか、選択番号を入力します:2sendmailを停止 [root@example ~]# service sendmail stop 自動起動しないように設定 [root@example ~]# chkconfig sendmail off☆SMTP-Authの設定 main.cfの…

subversion+ssh

■ 目的 subversionをsshの公開鍵認証経由で安全にアクセスすることを目的とします。■ 設定 当ブログのSSH(公開鍵認証)で紹介した公開鍵認証はopenssh形式なので、subversionではアクセスできません。 putty用の公開鍵と秘密鍵を作成します。まずは、puttyg…

subversion

■ subversionとは バージョン管理ツールの一種です。バージョン管理とは、ファイルを世代管理します。 プログラムソースやドキュメントなどの、常に変更が加わるようなファイルの差分を保持します。■ インストール yumでインストール [root@example ~]# yum …

GRUB起動CDの作成

なんらかの原因でOSのブートローダーが起動しなくなったときのために、GRUB起動CDを作成しておきます。 ※ CentOS5.2がインストールされていて、すでにGRUBの設定が済んでいるものとします。 まだ設定をしていない場合はコチラ。■ ISOイメージの作成 作業ディ…

ネットワーク接続の確認

ネットワークのトラブルが起きた場合に、原因箇所を特定するのに使用します。■ 目的のホストに接続できているかを調べる 接続されているかどうか調べたいコンピュータのIPアドレスを指定すると、相手のコンピュータから返信があるかどうか、返信がある場合は…

SSH(公開鍵認証)

■ 公開鍵認証とは 公開鍵認証は、秘密鍵と公開鍵の2つの鍵を使ってパスフレーズを暗号化/復号化する認証方式です。これにより、利用者とホストの両方を認証することができるため、ユーザ認証段階でのなりすましや盗聴を防げます。 なお、SSHを外部に公開する…

LDAPコマンド

ユーザ・グループの追加 ldapadd [オプション1] [DN] [オプション2] [ファイル名][オプション1] h LDAPサーバを指定する(省略時はローカルホスト) x SASLを使わず簡易認証を用いる D 認証に利用するDNを指定する [オプション2] W 認証時のパスワードを対話…

LDAPでユーザ認証

ログインにLDAPユーザ認証を使用するように設定します。■ 設定設定ファイル:/etc/nsswitch.conf 〜 # 以下のように編集します。 passwd: files ldap shadow: files ldap group: files ldap設定ファイル:/etc/ldap.conf 〜pam_filter objectClass=posixAcco…

LDAP

■ LDAPとは ディレクトリデータベースへアクセスするためのプロトコルで、ネットワークを利用するユーザ名やマシン名などの様々な情報を管理するためのサービスのことで、ユーザ名などのキーとなる値から様々な情報を検索することが可能です。今回はCentOSの…

ブートローダー(GRUB)

■ ブートローダーとは OSを複数インストールしている場合に、起動画面で起動するOSを選択することができる機能です。(ざっくり) 今回はGRUBというブートローダーの設定をしてみます。■ 設定 以下の構成での設定ファイルサンプルです。 HDDの1番目のパーテ…

Java JDK

■ JDKとは Java言語でプログラミングを行なう際に必要な最低限のソフトウェアのセットです。 コンパイラ・デバッガ・JVMなどが含まれます。■ ダウンロード 公式サイトからJDK1.5を入手します。(bin版をダウンロードしてください) http://java.sun.com/j2se/…

OSインストール後のXWindowの導入

初期インストール時にXWindowをインストールしなかった場合に後から追加する方法です。XWindowのインストール [root@example ~]# yum groupinstall "X Window System" "GNOME Desktop Environment" コマンドラインから以下のコマンドで起動する。 [root@exam…

yum

■ yumとは RPMパッケージのインストール・アップデート・アンインストールを一元管理できるツールです。 リポジトリを参照することにより、インストールしたいパッケージと依存関係にあるパッケージもインストールしてくれます。■ yumのコマンド # アップデ…

Tomcat

■ Tomcatとは 世界中で高い利用率を誇るオープンソースのプロジェクトのひとつで、javaのサーブレット/JSPを動作させるためのWebコンテナです。 簡易的なWebサーバ機能を持つことや、ほかのWebサーバとの連携機能が充実していることからも世界中で開発環境…

RootKit Hunter

■ RootKit Hunterとは UNIXシステムの不正アクセス・ファイルの改ざんなどを検知するツールです。■ インストール 公式からダウンロードします。 http://www.rootkit.nl/projects/rootkit_hunter.html ※ 今回のバージョンはrkhunter-1.3.4です。ダウンロード…

Apache

■ Apacheとは 最も人気の高いWebサーバソフトウェアの一つです。 世界でもっとも使用されているHTTPサーバといわれています。 世界でもっともしようされているということは、それだけ実績があるということです。 Apacheを導入することによって強固なHTTPサー…

samba

■ sambaとは UNIXでSMBを使ったサービスを提供するためのソフトウェアです。 ネットワークを通じてWindowsマシンにファイル共有やプリンタ共有などのサービスを提供することを可能にします。つまり、WindowsのエクスプローラからLinux(Unix)上のファイルを見…

ネットワーク

ネットワーク設定にはDHCPで動的にプライベートIPアドレスを設定する方法とIPアドレスを固定する方法があります。ネットワークサービス操作コマンド# 起動 service network start # 停止 service network stop # 再起動 service network restart # 状態表示 …