2013年5月25日土曜日

やってみようメモ

こんなことをやってみようというメモ(備忘録)。

・いま、CentOS+apahce+WebDAV+SSL+日本語をやってみているので、同じことをnginxで
 やってみる。

・CentOS上のシンボリックリンクがWebDAVで見れない!ことなので、apache2のソースをいじって
 みる。nginxだとどうるのか?試してみる。

・自宅環境では、Windows8 + (仮想)CentOSなので、インターネットから自宅のWindows8上
 のファイルを触れるように、WebDAV + sambaをやってみる。(日本語とか大丈夫かなー)

WebDAV絡みでした~

(2014/4/18追加)
・sarのソースを見てみる(出力される値がinterval間の平均なのか?直近の1秒の平均なのか?瞬間値なのか?疑問に思ったので、勉強がてら)

・lsのソースも見てみる。そういう本があったから。

2013年5月23日木曜日

apacheのインストール(2)

ということで、apacheインストールのつづき。

1.自動起動設定

毎回PC落とすと落ちるのも面倒なので、自動起動設定を仕込む。

# cp /usr/local/apache2/bin/apachectl /etc/rc.d/init.d/httpd
# vi /etc/rc.d/init.d/httpd
>>
#!/bin/sh
#
# chkconfig:345 85 15
#
# Licensed to the Apache Software Foundation (ASF) under one or more
<<

起動シェルの先頭に追加して、、

# chkconfig --add httpd
# chkconfig --list httpd
httpd           0:off   1:off   2:off   3:on    4:on    5:on    6:off

これでばっちり。

次に、、前回の積み残しの、server-statusを解決する。

2.httpd.confの確認

# vi /usr/local/apache2/conf/httpd.conf
>>
LoadModule status_module modules/mod_status.so



Include conf/extra/httpd-info.conf
<<

3.httpd-info.confの確認

# vi /usr/local/apache2/conf/extra/httpd-info.conf
>>
<Location /server-status>
    SetHandler server-status
    Require ip 127.0.0.1
</Location>
<<

4.IPv6の無効化

変なところで引っかかるので無効に。手順はここ

5.ステータスの確認


# service httpd status
               Apache Server Status for localhost (via 127.0.0.1)

   Server Version: Apache/2.4.4 (Unix)
   Server Built: May 23 2013 00:41:30
     __________________________________________________________________

   Current Time: Thursday, 23-May-2013 01:52:09 JST
   Restart Time: Thursday, 23-May-2013 01:52:05 JST
   Parent Server Config. Generation: 2
   Parent Server MPM Generation: 1
   Server uptime: 3 seconds
   Server load: 0.00 0.03 0.01
   Total accesses: 0 - Total Traffic: 0 kB
   CPU Usage: u0 s0 cu0 cs0
   0 requests/sec - 0 B/second -
   1 requests currently being processed, 74 idle workers

   PID    Connections    Threads      Async connections
        total accepting busy idle writing keep-alive closing
   1194 0     yes       0    25   0       0          0
   1195 0     yes       1    24   0       0          0
   1196 0     yes       0    25   0       0          0
   Sum  0               1    74   0       0          0

_________________________W______________________________________
___________.....................................................
................................................................
................................................................
................................................................
................................................................
................

   Scoreboard Key:
   "_" Waiting for Connection, "S" Starting up, "R" Reading Request,
   "W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup,
   "C" Closing connection, "L" Logging, "G" Gracefully finishing,
   "I" Idle cleanup of worker, "." Open slot with no current process


みれた!ふぅ。。次回は目的のWebDAVにチャレンジ。

tips:CentOS 6.4 でIPV6の無効化

何かと気が付かないところで問題を起こしそうなIPv6を無効化しておく。


1. /etc/sysconfig/networkに以下を追加。

NETWORKING_IPV6=no

2. /etc/modprobe.d/disable-ipv6.confファイルを作成して以下を書く。

options ipv6 disable=1

3. iptablesの停止

chkconfig ip6tables off

4. OS再起動。

これで無効か!

apacheのインストール

お仕事で、apacheでwebdavを実装することになったので、せっかくなので記録を残しつつ。

1.apache実行ユーザの作成

# sudo su -
# useradd -s /sbin/nologin apache
# passwd apache

2.ツールのインストール

# yum install make
# yum install gcc

3.apacheのモジュール入手&展開

# cd /usr/local/src/
# wget http://ftp.kddilabs.jp/infosystems/apache//httpd/httpd-2.4.4.tar.gz
# tar xvfz httpd-2.4.4.tar.gz

4.apacheインストール1回目

# cd httpd-2.4.4
# ./configure --enable-dav-fs --enable-dav --enable-mods-shared=most



configure: error: APR not found.  Please read the documentation.

ありゃ。モジュールが足りんかったか。

5.aprモジュールのインストール

# cd srclib/
# wget http://ftp.jaist.ac.jp/pub/apache//apr/apr-1.4.6.tar.gz
# tar xvfz apr-1.4.6.tar.gz
# mv apr-1.4.6 apr
# cd apr
# ./configure
# make
# make install

# wget http://ftp.jaist.ac.jp/pub/apache//apr/apr-util-1.5.2.tar.gz
# tar xvfz apr-util-1.5.2.tar.gz
# mv apr-util-1.5.2 apr-util
# cd apr-util
# ./configure



configure: error: APR could not be located. Please use the --with-apr option.

arpが見つからないってエラー。気を取り直して、

# ./configure --with-apr=/usr/local/apr
# make
# make install

6.apacheインストール2回目

さぁ、再度apacheをインストール。

# cd /usr/local/src/httpd-2.4.4
# ./configure --enable-shared=max --enable-module=all


configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/


おっとまた足りないものが。

7.pcreのインストール

# cd /usr/local/src/
# wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.31.tar.gz
# tar xvfz pcre-8.31.tar.gz
# cd pcre-8.31
# ./configure
# make


libtool: compile: unrecognized option `-DHAVE_CONFIG_H'
libtool: compile: Try `libtool --help' for more information.
make[1]: *** [pcrecpp.lo] エラー 1
make[1]: ディレクトリ `/usr/local/src/pcre-8.31' から出ます
make: *** [all] エラー 2

ググると、c++が必要とのこと。

# yum install gcc-c++
# make

おっうまくいった。

# make install

無事終了。

8.apacheインストール3回目(3度目の正直)

# cd httpd-2.4.4
# ./configure --enable-dav-fs --enable-dav --enable-mods-shared=most
# make
# make install


成功!

9.その他の準備&起動テスト

hostnameにFQDN(svr2.hayachi617.com)をつけないとapache起動時に怒られるので、

# vi /etc/hosts
>>
127.0.0.1   svr2.hayachi617.com localhost
<<

に追記し、さらに、

# vi /etc/sysconfig/network
>>
HOSTNAME=srv2.hayachi617.com
<<

で完了。サーバを再起動。次にちょっとapacheの設定を変更する

# vi /usr/local/apache2/conf/httpd.conf
>>

User apache

Group apache

ServerName srv2.hayachi617.com:80
<<

# cd /usr/local/apache2/bin
# ./apachectl start

ブラウザからアクセスしてみると、「It works!」と表示された。ようやく終わったと思ったら・・

# ./apachectl status
./apachectl: line 95: lynx: コマンドが見つかりません

だと。

# yum install lynx



The requested URL /server-status was not found on this server.

まだか。ちょっと疲れたので、また次回・・

2013年5月22日水曜日

Hyper-V上のCentOSでNICが認識しない。を解決

自宅のWindows8Pro環境でHyper-Vを使ってCentOSのテスト環境を構築していた。
VMwarePlayerと似たような感じだけど、目新しくて楽しい。

でCentOSを作っていろいろ触っていたが、クローンを作っておこうと思い立ち、やってみると
とても簡単にできた。が、、クローン元のOSのほうでNICが認識しなくなってしまったったので、
対応メモ。

まず、Hyper-VのManagertで見たところ統合サービスのアップグレードが必要とのメッセージ
がでていたので、統合サービスのアップグレードをしてみた。


1.MSサイトからCDイメージ(ISO)のダウンロード
 以下のサイトから、Ver3.4のインストールイメージ(LinuxICv34.iso)をダウンロード
 http://www.microsoft.com/ja-jp/download/details.aspx?id=34603

2.ダウンロードしたISOファイルを仮想OSのDVDドライブにマウント
 コンソール画面のメディア-DVDドライブ-ディスクの挿入で上記のisoファイルをを選択。
 そのあと
 # mkdir /tmp/dvdrom
  # mount -t iso9660 /dev/cdrom /tmp/dvdrom/
  # cd /tmp/dvdrom/RHEL63
  # ./upgrade.sh

3.再起動
  # cd
  # umount /tmp/dvdrom
  # shutdown -r now

作業自体はうまくいったのだが、、まだNICは認識しない。
次に、NICの認識がうまくいっていないとのことなので、、udevの設定をチェックしてみる

  # vi /etc/udev/rules.d/70-persistent-net.rules

何やら試行錯誤した残骸で、MACアドレスが変わったためにeth1ができていたりした。
この際きれいしようと思い、すべてをコメントアウトし、

  # start_udev

リセット。再度設定を見ると、1行追加されていた。うんうん。
次にeth0の設定ファイルを変更する。

  # vi /etc/sysconfig/network-scripts/ifcfg-eth0

で、HWADDRとUUIDの行を削除し、

 # service network restart

  インターフェース eth0 を終了中:                            [  OK  ]
  ループバックインターフェースを終了中                       [  OK  ]
  ループバックインターフェイスを呼び込み中                   [  OK  ]
  インターフェース eth0 を活性化中:                          [  OK  ]

やたー、つながった。めでたし、めでたし。

==============================
その後isoファイルがマウントできないことに気が付きました。
いろいろ調べると統合サービスが悪さをしている可能性があるとのこと(不確か・・)。

また今回使用しているCentOS6.4ではHyper-Vのドライバが組み込まれているらしい。。

http://wiki.centos.org/Manuals/ReleaseNotes/CentOS6.4

ということで、統合サービスVer3.4のインストールは余計ないことをしたらしい。

  # yum remove `rpm -qa|grep microsoft`

でアンインストールし、再起動したらisoファイルがマウントできた。


2013年5月21日火曜日

node.jsのバージョン管理ツールnaveをインストール

node.jsの複数バージョンを実行するための環境のnaveをインストールしてみた。 環境は、centos 6.4です。

1.実行準備

gitのインストール。

[chika@localhost bin]$ sudo yum install git

でインストール。次に実行アカウントの作成


[chika@localhost bin]$ sudo useradd nave


インストールディレクトリの設定 & githubからclone作成


[chika@localhost bin]$ cd /usr/local/
[chika@localhost local]$ sudo git clone git://github.com/isaacs/nave.git
[sudo] password for chika:
Initialized empty Git repository in /usr/local/nave/.git/
remote: Counting objects: 367, done.
remote: Compressing objects: 100% (210/210), done.
remote: Total 367 (delta 201), reused 312 (delta 154)
Receiving objects: 100% (367/367), 57.55 KiB, done.
Resolving deltas: 100% (201/201), done.
[chika@localhost local]$


[chika@localhost local]$ sudo chown -R nave:nave nave



2.アカウントの設定

[chika@localhost bin]$ sudo su - nave
[nave@localhost ~]$ vi .bashrc

>>
# User specific aliases and functions
export NAVE_DIR=/usr/local/nave
<<



3.naveをインストール


[nave@localhost nave]$ cd /usr/local/nave
[nave@localhost nave]$ ls
AUTHORS  LICENSE  README.md  nave.sh  package.json
[nave@localhost nave]$ ./nave.sh install stable
######################################################################## 100.0%
installed from binary


でインストールされる。ちなみにstableは安定版をインストールするオプションで、latestは最新版をインストールしてくれるらしい。

4.naveを使うための閑居変数を設定する

以下のコマンドで、安定版を利用する環境変数に設定される


[nave@localhost nave]$ ./nave.sh use stable
Already installed: 0.10.7
using 0.10.7

5.サンプルコードを実行


サンプルコードを作成して、、

[nave@localhost ~]$ cd
[nave@localhost ~]$ vi app.js
>>
var sys = require('sys');
var http = require('http');

var server = http.createServer(
    function (request, response) {

        response.writeHead(200, {'Content-Type': 'text/plain'});
        response.write('Hello World!!\n');
        response.end();
    }
).listen(8124);

sys.log('Server running at http://192.168.0.49:8124/');
<<


実行!


[nave@localhost ~]$ node app.js
19 May 13:22:59 - Server running at http://192.168.0.49:8124/


ブラウザからつついてみると、、接続できない・・そうか。iptablesオフにしてなかった。。
オフにして再度実行。



たったこれだけなんだけど、なんだかうれしい・・やっぱり作るのはいいね。
少しづつやってみよー



tips:iptbalesのオフ

自宅でアプリケーションを作成する分には、iptablesは不要。ということで停止。


[chika@localhost ~]$ sudo /sbin/service ip6tables stop
ip6tables: ファイアウォールルールを消去中:                 [  OK  ]
ip6tables: チェインをポリシー ACCEPT に設定中: filter      [  OK  ]
ip6tables: モジュールを取り外し中:                         [  OK  ]
[chika@localhost ~]$ sudo /sbin/service iptables stop
iptables: ファイアウォールルールを消去中:                  [  OK  ]
iptables: チェインをポリシー ACCEPT へ設定中filter         [  OK  ]
iptables: モジュールを取り外し中:                          [  OK  ]

[chika@localhost ~]$ sudo chkconfig iptables off
[chika@localhost ~]$ sudo chkconfig ip6tables off

これでOK。

tips:manの日本語化

CentOS 6.4でmanで日本語が表示されないのでチェック。


[chika@localhost ~]$ echo $LANG
ja_JP.UTF-8



問題ない。



[chika@localhost ~]$ echo $MANPATH

[chika@localhost ~]$



これか。


[chika@localhost ~]$ whereis man
man: /usr/bin/man /etc/man.config /usr/share/man /usr/share/man/man1/man.1.gz
[chika@localhost ~]$ ll /usr/share/man/|grep ja

drwxr-xr-x. 5 root root  4096  2月 22 11:13 2013 ja
[chika@localhost ~]$vi ~/.bashrc
==
MANPATH=/usr/local/man/ja:/usr/local/share/man/ja:/usr/share/man/ja:/usr/X11R6/man/ja
export MANPATH
==

さぁこれでどうだ!

[chika@localhost ~]$ man bash
No manual entry for bash

あれ??

[chika@localhost ~]$ ll /usr/share/man/ja
合計 12
drwxr-xr-x. 2 root root 4096  5月 19 12:12 2013 man1
drwxr-xr-x. 2 root root 4096  5月 19 12:12 2013 man5
drwxr-xr-x. 2 root root 4096  2月 22 11:13 2013 man8
[chika@localhost ~]$

なんか少ない。。日本語ページが少ないみたいなので、、

[chika@localhost ~]$ sudo yum -y install man-pages-ja
[chika@localhost ~]$ ll /usr/share/man/ja
合計 124
drwxr-xr-x. 2 root root 20480  5月 19 12:24 2013 man1
drwxr-xr-x. 2 root root 20480  5月 19 12:25 2013 man2
drwxr-xr-x. 2 root root 53248  5月 19 12:25 2013 man3
drwxr-xr-x. 2 root root  4096  5月 19 12:25 2013 man4
drwxr-xr-x. 2 root root  4096  5月 19 12:25 2013 man5
drwxr-xr-x. 2 root root  4096  5月 19 12:25 2013 man6
drwxr-xr-x. 2 root root  4096  5月 19 12:25 2013 man7
drwxr-xr-x. 2 root root 12288  5月 19 12:25 2013 man8
drwxr-xr-x. 2 root root  4096  9月 23 20:31 2011 man9
[chika@localhost ~]$

ついでに、日本語ページがない場合も考慮して、

[chika@localhost ~]$vi ~/.bashrc
==
MANPATH=/usr/local/man/ja:/usr/local/share/man/ja:/usr/share/man/ja:/usr/X11R6/man/ja:/usr/local/man:/usr/local/share/man:/usr/share/man:/usr/X11R6/man
export MANPATH
==
で修正。

これで一安心(英語読んだほうがよいのかな・・)。


さっそくNode.js

触ってみたい技術の1つにnode.jsがある ふむふむ勉強になる。

いろいろとやってみる

最近はいい歳になって、管理職になって、いまいちモチベーションがあがらない。
やっぱり物を作っているとき、新しいことをしているときって楽しいので、今からでもやりたい
ことをやってみようと思う。

ということでお題目を探してみる。興味のあることといえば、

・なんか最近のWeb技術を使ってアプリを作ってみたい
・負荷テストができるようになってみたい
・WebからDBから一通り自分で触ってみたい

ってところかな。仕事でも使いそうなチャットのシステムを自分で作ってみようかな(できるのか?!)