debian Apache2 で.htaccess を有効にする

久しぶりにメモメモ

.htaccess を利用するために必要な物は2つ
1.mod_rewriteを有効にする
2.AllowOverride All にすること

1は a2enmod コマンドにより有効化できる
2の AllowOverride の場所でハマった

“<Directory /var/www/>”の設定箇所を変更する必要がある

	<Directory /var/www/>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride All
		Order allow,deny
		allow from all
	</Directory>

■参考ページ
Debianで.htaccessを使用する

Debianでデーモンを登録する

debianでデーモンを作成する方法がネットを調べても古い情報やらいろいろ混じって分かりにくかったのでメモメモ

Debianのデーモンに関係するディレクトリとコマンド
/etc/init.d        /etc/rc?.d        update-rc.d        sysv-rc-conf
の4つ

簡単な流れ
1. /etc/init.d/ に起動スクリプトを配置する
 ※ /etc/init.d/skelton が起動スクリプトのサンプル
2. update-rc.d コマンドで、/etc/rc?.d/ にスクリプトのリンクを配置する (ls -t コマンドで確認可)
 ※ コマンドを実行すると、”SNoName”の形式で /etc/rc?.d/にリンクが配置される
 ※ “SNoName”
  ”S”起動”K”停止の略
  ”No”は二桁の数字で優先度
  ”Name”はスクリプト名
3. sysv-rc-conf コマンドで runlevel ごとのスクリプトの起動停止を設定
 ※ update-rc.d でも設定可能。 sysv-rc-conf の方が直感的で使いやすい。
 ※ 具体的には、”SNoName” の S と K を変更してる
4. 再起動して確認
 ※ システムの起動時に /etc/rc?.d/ の中のリンクされたスクリプトが実行される
 ※ /etc/rc?.d/ の “?” は現在のrunlevel

SoftEtherVPNで実際に設定してみる

$ sudo cp skelton vpnserver
$ sudo nano vpnserver
# Provides: vpnserver
  NAME=vpnserver
  do_start()
  {
    $DAEMON start
  }
  do_stop()
  {
    $DAEMON stop
  }

※ 基本的にファイルの上の方(LSBヘッダー)を少し書き換えるだけでOK
   参考URL http://d.hatena.ne.jp/paraches/20060403
※ start や stop の中で start-stop-daemon が使われてますが使わなくてもOK
※ 戻り値は気にしなくてOK…今のところ..
※ スクリプトファイル名とNAMEは一致させておく

$ sudo chmod +x vpnserver         // 実行可能
$ sudo ./vpnserver start          //開始確認
SoftEther VPN Server Service Started.
$ sudo ./vpnserver stop          //停止確認
Stopping SoftEther VPN Server Service...
SoftEther VPN Server Service Stopped.
$ sudo update-rc.d vpnserver defaults  //設置
$ sudo sysv-rc-conf             //設置内容確認変更
$ sudo shutdown -r now
$ pstree

Raspberry Pi + SoftEtherVPN で マイVPN構築

selogo
Raspberry Pi で VPN構築ができます
ライフハッカーで Raspberry Pi + Hamachi でマイvpn の紹介がありましたが
ここでは SoftEtherVPN を利用した構築方法メモメモ

SoftEtherVPN も ARM版のビルドを公開しているので簡単に利用できます。
ここで SoftEtherVPN(旧UT-VPN) がダウンロードできます。
http://www.softether-download.com

インストール方法

$ wget http://www.softether-download.com/files/softether/v1.00-9029-rc2-2013.03.16-tree/Linux/SoftEther%20VPN%20Server/32bit%20-%20ARM%20EABI/softether-vpnserver-v1.00-9029-rc2-2013.03.16-linux-arm_eabi-32bit.tar.gz
$ tar xzvf softether-vpnserver-v1.00-9029-rc2-2013.03.16-linux-arm_eabi-32bit.tar.gz
$ cd vpnserver/
$ make

するとライセンスに同意するか聞いてくるので 1. で同意する
makeが終わるとカレントディレクトリに

vpnserver
vpncmd

の2つのバイナリが置かれます
設置とかデーモンの設定は行なってくれないので、その辺は自分で設定します

sudo ./vpnserver start

で起動させたら vpncmd での設定は分かりにくいので Windows 版のサーバー管理マネージャー で設定するのが手っ取り早いと思います

softether-servermgr

ほかのVPNクライアントとの互換性もあって
たった$25でVPN専用サーバーが作れるのは良い感じです

※ UT-VPNプロジェクトはSoftEtherVPNプロジェクトに移行されたようです

Raspberry Pi で node.js + WebSocket.io

logo
普通にaptで入れた node では WebSocket.io が動かないようなのでメモメモ

$ apt-cache search node | grep node

でnodeを探す。

nodejs - Node.js event-based server-side javascript engine
nodejs-legacy - Node.js event-based server-side javascript engine (legacy symlink)

それらしい nodejs と nodejs-legacy の2つが見つかるので新しい方を入れる

$ sudo apt-get install nodejs

npmでパッケージを入れる

$ npm install websocket.io

すると

npm WARN This failure might be due to the use of legacy binary "node"

どうもnodeが古くてwebsocket.ioが利用出来ないよう(nodejs v0.6.19)
これもlegacyかいっ

というわけで新しいnodeを入れる
Node.js v0.8.11 – Installation now easy
こちらに書いてあるように簡単そうなので v0.10.0 でも

$ wget http://nodejs.org/dist/v0.10.0/node-v0.10.0.tar.gz
$ tar xzvf node-v0.10.0.tar.gz
$ cd node-v0.10.0/
$ ./configure
$ make
$ make install

コンパイルに凄く時間がかかったのでバイナリを置いておきます
binary
node-v0.10.0-raspberrypi.tar

Raspberry Pi で mongodb

mongoDB
mongodbのコンパイルに凄く時間がかかったのでバイナリを置いておきます

コンパイル中にSDカード(4G)の容量が足りなくなるとかありました
ネットでmongodbの使い方を調べると、Raspberry Pi[ARMv6]用に用意された、
“mongo-nonx86” と “mongopi” の2つが見つかりますが mongopiの方が新しいです(MongoDB 2.1.1)
コンパイル方法
$ sudo apt-get install git-core build-essential scons libpcre++-dev xulrunner-dev libboost-dev libboost-program-options-dev libboost-thread-dev libboost-filesystem-dev
$ git clone git://github.com/RickP/mongopi.git
$ cd mongopi
$ scons
$ sudo scons --prefix=/opt/mongo install
デーモンの終了方法
mongod の起動方法は –dbpath オプションだけで起動しますが、
デーモンで起動している場合は kill -2 か kill -15 で終了させます
一番下辺り “Sending a UNIX INT or TERM Signal”

プロセスIDの探し方はこんな感じで紹介されてます

ps -ef | grep 'mongod' | grep -v grep | awk '{print $2}'
binary
mongopi2.1.1.tar.gz

※ /opt/mongo/bin/の中身ではなく strip結果です