./configure

make

make install

 

./configure で以下が出た

PAM enabled but headers or library not found

以下で回避

yum install pam-devel

http://qiita.com/takoba/items/0b50f6f33d7c44a85bef

 

cp system/startup/rc.monit /etc/init.d/monit

chmod a+x /etc/init.d/monit

MONIT=/usr/local/bin/monit

 

cp monitrc /etc/.

jsdoc3、yuidoc, esdocを試した三田

jsdoc3がシンプル。UIが貧弱

yuidocは、UIはいいけど、@method の追加とかが手間

esdocはエラーになったので、ちゃんと確認していない。

 

ひとまず、jsdocのままとしている

UIテンプレートで変えられると思い、探したけど、意外となかった。

 

生成されたHTML

http://dev.furoom.net/jsdoc3/jsdoc3/index.html

 

以下を参考に

http://usejsdoc.org/

http://www38.atwiki.jp/aias-jsstyleguide2/pages/14.html

 

つけとくものは、以下

 

ファイル

@fileoverview

 

モジュール

@exports or @module

 

クラス

@constructor

@extends

→リンクにならない・・。

 

@interface

@implements

あたりも

 

メソッド

@public

@protected

@private

@abstract ※googleに無し

@override

@param

@return

@callback {RedisClient~onSubscribe} ※googleに無し

 

定数

@const

 

ちょっと試したもの

@see

@link

@fires ※googleに無し

 

@fileoverviewと@exportsは別のコメントブロックにしないと正しく表示されない

@callback の後は、クラス名を入れないと正しく表示されない

@linkは、反映されない。ul li の書き方は試してない。

@seeも、リンクは貼られない。。

 

https://github.com/nilesflow/prototype-node.js-jsdoc

foreverをサービスとして起動

CentOS6.6、CentOS7.1

 

init.dの起動スクリプト+logrotate設定

https://github.com/nilesflow/centosetc

 

ログは、/var/log/foreverd.log

Node.jsログは、指定の場所に。

start の2重起動防止。

注意点は、foreverのHOMEディレクトリ。

HOME=xxxxxx

daemonの場合、ログインユーザでないため、/var/forever/.forever

ログインユーザの場合、/home/xxxxx/.forever

となる。

 

コマンドラインからの場合は、以下で参照可能。

HOME=xxxxxx forever list

※通常ユーザの場合、不要。

 

起動ユーザは、ログインユーザとdaemonに対応

forever-service はログ出力が制御できなかった。

initd-forever は、少し不足

 

以下のスクリプトを流用させてもらった

http://multix.jp/daemon-nodejs/

サーバ側

var https = require(‘https’);

var fs = require(‘fs’);
var ssl_server_crt = ‘/etc/pki/CA/certs/せrヴぇr-ca.crt’;
var ssl_server_key = ‘/etc/pki/CA/private/せrヴぇr.key’;
var ssl_ca_crt = ‘/etc/pki/CA/cacert.pem’;
var port = 443;

var options = {
key: fs.readFileSync(ssl_server_key),
cert: fs.readFileSync(ssl_server_crt),
ca: [fs.readFileSync(ssl_ca_crt)],
requestCert: true,
rejectUnauthorized : true,
};

var servers = https.createServer(options, function (req,res) {
fs.createReadStream(“index.html”).pipe(res);
}).listen(port);

var wss = new WebSocketServer({server:servers});

 

クライアント側

var fs = require(‘fs’);
var https = require(‘https’);
var WebSocket = require(‘ws’);

var ssl_client_crt = ‘/etc/pki/CA/client/certs/client.crt’;
var ssl_client_key = ‘/etc/pki/CA/client/private/client.key’;
var ssl_ca_crt = ‘/etc/pki/CA/cacert.pem’;
var ssl_client_pfx = ‘/etc/pki/CA/client/private/client.pfx’;

var options = {
ca : fs.readFileSync(ssl_ca_crt),
agent: false,

// key&certの指定
key : fs.readFileSync(ssl_client_key),
cert : fs.readFileSync(ssl_client_crt),
passphrase : ‘xxxxx’,

// 又は、pfxの指定
// passphrase : ‘xxxx’,
// pfx : fs.readFileSync(ssl_client_pfx),
};

var ws = new WebSocket(‘wss://xxxxx:443/’, null, options);

クライアント証明書にパスフレーズが含まれていると、

curlがエラーとなる

openssl pkcs12 -in client.pfx -out client.cert.pem -clcerts

curl https://xxxxx/ –cacert /etc/pki/CA/cacert.pem -E /etc/pki/CA/client/private/client.cert.pem
curl: (58) Unable to load client key -8178

curl https://xxxxx/ –cacert /etc/pki/CA/cacert.pem –cert /etc/pki/CA/client/certs/client.crt
curl: (58) Unable to load client key -8178.

curl https://xxxxx/ –cacert /etc/pki/CA/cacert.pem –cert /etc/pki/CA/client/certs/client.crt –key /etc/pki/CA/client/private/client.key
curl: (58) Unable to load client key -8178.

 

以下参照。

http://hogem.hatenablog.com/entry/2015/09/28/233000

http://stackoverflow.com/questions/20969241/curl-58-unable-to-load-client-key-8178

 

パスフレーズを外すと成功した

openssl rsa -in myclient.dev.furoom.net.key -out client.key.nopass
curl https://xxxxx/ –cacert /etc/pki/CA/cacert.pem –cert /etc/pki/CA/client/certs/client.crt –key /etc/pki/CA/client/private/client.key.nopass
→OK

 

wgetはパスフレーズ有りで成功した

wget -O – https://xxxxx/ –ca-certificate /etc/pki/CA/cacert.pem –certificate /etc/pki/CA/client/private/client.cert.pem