2011年12月23日金曜日

ブログの移転

自宅サーバーでブログを始めました。

少年から大人へ
↑こっちでメインに書いていきます。

2011年9月13日火曜日

ディレクトリごとの設定ファイルを使う(.htaccessファイル)

Apacheを利用して、ユーザごとの公開ディレクトリを用意することができます。さらに、/home/user/public_html といったユーザの公開ディレクトリに対して、各々の設定をしたい。例えば、あるユーザの公開ディレクトリに対して、特定のディレクトリで SSI を有効にしたい、ということがあるでしょう。.htaccessファイルを使って実現することができます。

① Apacheの設定ファイル(httpd.con)から下のように ”AllowOverride All” を追加する
<Directory /home/*/public_html>
AllowOverride All
# Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec                   
# <Limit GET POST OPTIONS>
# Order allow,deny
# Allow from all
# </Limit>
# <LimitExcept GET POST OPTIONS>
# Order deny,allow
# Deny from all
# </LimitExcept>
</Directory>

② Apacheの設定ファイルから、デフォルトの設定ファイル名(.htaccess)を確認しておく
AccessFileName .htaccess                           
 
③ 設定したいユーザ(hoge)の公開ディレクトリに移動して、設定ファイルを作成
[hoge@www~]$ cd ~/public_html/
[hoge@www public_html]$ vi .htaccess

④ .htaccessファイルに利用したい設定を記述する


しかし、AllowOverrideの設定を有効にする場合、サーバへの負荷が増加します。
そのことから、.htaccessファイルの使用は極力避けた方がよいです。
http://httpd.apache.org/docs/2.2/ja/howto/htaccess.html

Apacheの設定ファイルをいじれる(rootアクセス権限を持っている)のであれば、その設定ファイルに、設定を変更したいディレクトリを指定してあげるのがベストです。実際、.htaccessファイルに書くことで実現する設定は、Apacheの設定ファイルの<Directory> セクションを使って実現することができるし、その方が良い設定方法みたいです。

HTML::Templateを使って認証プログラムを作成

HTML::Templateを使用することで、外部に用意してあるHTMLをCGIスクリプトの中に読み込むことができます。HTMLデザインとスクリプトを明確に分離することで、メンテナンス性が高まります。ただし、HTML::Templateは標準モジュールではないので、CPANを使ってインストールする必要があります。

今回はHTML::Templateを使って、簡単な認証プログラムをかきました。
ID/PWに guest/guestと入力してログインボタンをクリックすれば、ログイン後のhtmlページを表示します。

%2525E3%252582%2525B9%2525E3%252582%2525AF%2525E3%252583%2525AA%2525E3%252583%2525BC%2525E3%252583%2525B3%2525E3%252582%2525B7%2525E3%252583%2525A7%2525E3%252583%252583%2525E3%252583%2525882011-09-1321.59.13-2011-09-13-21-05.png


enter.tmpl
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; charset=shift_jis">           
</head>
<body>
<div align="center">
<form action="login.cgi" method="post">
<b>認証</b></br>
ID : <input type="text" name="id" ><br><br>
PW : <input type="password" name="pw" ><br><br> 

<div align="center">
<input type="submit" name="login" value="ログイン">
</div>
</form>
</body>
</html>

login.cgi
#!/usr/bin/perl

# モジュール宣言
use strict;
use warnings;
use CGI;
use CGI::Carp qw(fatalsToBrowser);
use HTML::Template;

# ユーザのID/PW
my %user = ( "guest" => "guest" );

# CGIオブジェクトの生成
my $cgi = new CGI();

# ログイン処理
if ($cgi->param('login')) {       
        &login;
}
&enter_form;

#---------------------------------------------------------------------
# ログイン認証
sub login {
        # idのパラメータ取得
        my $id = $cgi->param('id');
        # pwのパラメータ取得
        my $pw = $cgi->param('pw');
       
        # id/pwがguest/guestならば、test.htmlを表示
        if ($id eq "guest" and $pw eq "guest") {
                print "Content-type: text/html\n";
                print "Location: ./test.html\n\n";
               
        }
}

# HTML::Templateを使用してログイン画面表示
sub enter_form {
        # HTML::Templateオブジェクトを作成
        my $tmpl = HTML::Template->new(filename => 'enter.tmpl');               
        # HTMLの出力
        print "Content-type: text/html\n\n";
        print $tmpl->output;
}        

今回は同ディレクトリに、HTMLテンプレートとCGIスクリプトを実装しましたが、テンプレートファイルはWebクライアントが直接アクセスできないディレクトリに配置するのが普通みたいです。

それと、CGIスクリプトの中にID/PWを記述するのではなく、隠しファイル等を使って、Webクライアントがアクセスできないディレクトリに配置しておかないとダメです。

2011年8月30日火曜日

Tomcatのスレッドダンプを取得する(Windows)

スレッドダンプは、実行中のスレッドスタックを取得できるため、解析するのに最適です。
Tomcatのスレッドダンプの取得方法は色々ありますが、Windowsだと、Tomcat管理用のアイコンを右クリックして、”Thread Dump”を選択するのが簡単です。

PastedGraphic-2011-08-30-22-56.jpg


- Tomcatをexeファイルでインストールした場合
右下のタスクトレイにTomcat管理用アイコンが現れますが、無い場合は、
スタート>全てのプログラム>Apache Tomcat>”Monitor Tomcat” を選択すると、右下にTomcat管理用アイコンが現れます。

- zipファイルを使ってインストールした場合
${Tomcatのディレクトリ}/bin に移動して、下記のコマンドで、Tomcat管理用アイコンが現れます。
> tomcat7w.exe //MS//


スレッドダンプは、${Tomcatのディレクトリ}/logs の下の “”tomcat7-stdout.{年月日}.log の中に出力されます。

2011-08-30 22:58:58 Commons Daemon procrun stdout initialized2011-08-30 23:01:37
Full thread dump Java HotSpot(TM) Server VM (20.0-b11 mixed mode):

"http-8080-2" daemon prio=6 tid=0x1854c400 nid=0x2d04 in Object.wait() [0x1a54f000]               
java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x03ee2648> (a org.apache.tomcat.util.net.AprEndpoint$Worker)
        at java.lang.Object.wait(Object.java:485)
        at org.apache.tomcat.util.net.AprEndpoint$Worker.await(AprEndpoint.java:1621)
        - locked <0x03ee2648> (a org.apache.tomcat.util.net.AprEndpoint$Worker)
        at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1646)
        at java.lang.Thread.run(Thread.java:662)

・・・省略・・・

2011年8月27日土曜日

VNCサーバのインストール

VNCを導入すること、ネットワークで接続された別の機器のグラフィカル画面を利用できます。例えば、WindowsからLinuxをCUIで操作することや、オフィスでの作業をそのまま自宅で引き継ぐといった利用もできます。

実際に、CentOSにVNCサーバをインストールして、WindowsからCentOSに接続してみます。


VNCサーバ (CentOS) の設定
① VNCサーバをインストール
# yum install vnc-server

サービスの設定ファイルは、/etc/sysconfig/vncservers
サービスの制御スクリプトファイルは、/etc/init.d/vncserver

インストールした時点では、サービスの自動起動はされていないので、VNCサービスを自動起動したい場合には設定しておきましょう。
# chkconfig --level 2345 vncserver on


② VNCサーバの設定
- ディスプレイ番号とユーザの設定
VNCサーバを利用するに、どのディスプレイ番号で、どのユーザのアクセスを許可するかを設定します。

/etc/sysconfig/vncservers
VNCSERVERS=“1:user”
VNCSERVERARGS[1]=“-geometry 1024x768 -nolisten tcp -localhost"       

VNCSERVERSには、ディスプレイ番号とユーザのリストを設定します。
ディスプレイ番号は、起動するXサーバのディスプレイ番号と関連付けられています。

オプション
-name <string>       VNCクライアントで表示される表示名<string>を指定  
-geometory <width>x<height> 横<width>と縦<height>の画面
-depth <depth> 表示ピクセル<depth>の設定
-pixelformat <format> サーバが使用するpixelフォーマットの指定
-cc 3 PseudoColorを使用
-nolisten tcp TCP経由でVNCサーバにアクセスを禁止
-nohttpd WebベースのVNCクライアントの禁止
-nolocalhost リモート接続で、セキュアトンネルを利用していないものを禁止

VNCサーバとXサーバは多くのメモリを使用するので、不要なVNCサーバを起動すると、システムの利用可能なメモリを圧迫するので注意。


③ ユーザ環境の設定
VNCサーバを接続するには、接続用のパスワードが必要です。サービスの起動の前に、必ず各々のユーザでパスワードを設定しおきましょう。

# su - user
$ vncpasswd
Password:
Verify:


④ サービスの起動
# service vncserver start


VNCクライアント (Windows XP) から接続
⑤ Windows XP にVNCをインストールする 
http://whzat.dyns.net/textbook/vnc/ を参考に、WindowsへVNCをインストール

⑥ビューワを起動
サーバを指定する

WS000008-2011-08-27-09-04.JPG


⑦ VNCサーバであるCentOSのデスクトップ画面が見れることを確認

WS000009-2011-08-27-09-04.JPG


2011年8月22日月曜日

hostsによる名前解決

ダイナミックDNSを利用して、自宅のサーバの名前解決を行っている場合、外部からのアクセスをNAT+IPマスカレードを利用して実現していることが多いことでしょう。NAT+IPマスカレードは、自宅サーバのサブネットのWAN側のIPアドレスに対する外部からのアクセスを処理しています。

しかし、NAT+IPマスカレードの特性上、同じサブネットでは名前解決で問題が起こることがあります。どんな問題かというと、
①同じサブネットにあるクライアント機で、稼働しているサーバ(hoge.com)にアクセスしようとする
②外部のDNSサーバから 「“hoge.com”のIPアドレスは、”200.100.100.10”だよ」と名前解決情報がクライアント側に渡される
③そのIPアドレスで再度アクセスを試みる

ここで問題が起こります。教えられた”200.100.100.10” はそのサブネットのWAN側のIPアドレスなので、アクセスできません。同じサブネット内のサーバにアクセスするには、プライベートIPアドレスの”192.168.11.10”でアクセスしなければなりません。

つまり、WANに設置されたDNSサーバを利用すると、同じサブネット内のパソコンからはアクセスすることができないのです。

この問題における解決策はいくつかあります。
・WAN空間のプロキシサーバを利用する
・LAN内では常にプライベートIPアドレスを利用する
・hostsファイルを利用する
・LAN専用のDNSサーバを構築する

今回は、hostsファイルを利用した名前解決を紹介します。


hostsファイルを利用する
hostsファイルは、FQDNとIPアドレスとの対照を記述したテキストファイルです。通常、hostsファイルは、外部のDNSサーバよりも先に参照されます。

サーバ情報
ホスト名:hoge.com
IPアドレス:192.168.11.10

■MacOS(クライアント)から、サーバ(hoge.com)への名前解決
1. MacOSのターミナルを起動
2. 下のコマンドをたたいて、記述
$ vi /etc/hosts
192.168.11.10   hoge.com                            


■Windows XP(クライアント)から、サーバ(hoge.com)への名前解決
1. C:¥windows¥system32¥drivers¥etc¥hosts を開く
2. 下記を追加
192.168.11.10   hoge.com                            

WS000007-2011-08-22-02-17.JPG


これでhostsの設定は終わりです。

注意すべきことは、hostsファイルを設定したPCをサブネットマスクの外へ持ち出すときは、設定を無効にしておくことです。外部からhoge.comにアクセスしても、名前解決としてプライベートアドレスが渡されるので期待通りのアクセスができなくなります。


参考)
自宅内DNSサーバーの構築
http://www.obenri.com/_dnsserver/index.html

2011年8月14日日曜日

パスワードファイルを使ったユーザ認証

あるWebページを特定のユーザにだけ公開することができます。流れは下記の通りです。
①認証が必要なページを見せるようにWebサーバへリクエストを送る
②Webサーバは、WWW-Authenticateヘッダを含むレスポンスを返す
③ユーザ側のブラウザがそれを検知して、ユーザ名とパスワードを入力するダイアログボックスを表示
④ユーザがユーザ名とパスワードを入力して、Webサーバに再びリクエストを送信
⑤Webサーバはパスワードファイルを参照して、認証成功ならページをユーザへ送る


■パスワードファイルを作成する
下のコマンドを使います。
# htpassed ${オプション} ${ファイル名} ${ユーザ名}

例)
# htpasswd -c /etc/httpd/.htpasswd user1
New password: ****                                   
Re-type new password: ****
Adding password for user user1


■ページ(secret.html)にユーザ認証の設定をする
Apacheの設定ファイル(httpd.conf)に下記を追加する
<Files secret.html>                                 
# 認証タイプの指定
AuthType Basic
# パスワードファイルの場所
AuthUserFile /etc/httpd/.htpasswd
# ダイアログボックスのメッセージの指定
AuthName "Certification"
#アクセス制御の指定
require valid-user
</Files>


Apacheを再起動した後、ブラウザからsecret.htmlにアクセスすると、下の画面のようにユーザ認証します。

%2525E3%252582%2525B9%2525E3%252582%2525AF%2525E3%252583%2525AA%2525E3%252583%2525BC%2525E3%252583%2525B3%2525E3%252582%2525B7%2525E3%252583%2525A7%2525E3%252583%252583%2525E3%252583%2525882011-08-1421.50.45-2011-08-14-21-26.png

パスワードファイルの作成で、追加したユーザとパスワードを入力して、ページが見れることを確認しました。

2011年8月13日土曜日

Cygwinを使って、Linuxサーバにsshコマンドで接続する

WindowsでUnix系のコマンドを使うのにCygwinはとても便利です。
さて、Cygwinを使って、Linuxサーバにssh接続したい。

$ ssh [ホスト名]
ssh: connect to host [ホスト名] port 22: Connection refused

けられた・・・

下のコマンドを実行すればいいです。
$ ssh-host-config -y

これで無事Linuxサーバへssh接続できます。

参考)
http://osksn2.hep.sci.osaka-u.ac.jp/~naga/miscellaneous/winssh/winssha-4.html

2011年8月11日木曜日

BINDをインストール

CentOSでは、DNSを実装した代表的なソフトウェアのBINDが使えます。
BINDは用途が広く、マスターターバ・スレーブサーバのいずれでも動作します。またローカルなDNSサーバとしても機能することができます。


■パッケージのインストール
# yum -y install bind
# yum -y install bind-chroot
# yum -y install caching-nameserver

bindパッケージは、DNSサーバを構築するために必要です。
サービス名はnamed。インストールした時点では、自動起動されない設定になっています。

bind-chrootパッケージは、BINDが参照するファイルシステムのルートが、/var/named/chroot にあるように見せることで、悪意のある第三者に攻撃されても、システムのファイルに影響が及ばないようにします。

chaching-nameserverパッケージは、自ホスト内で発生する様々な名前参照の問い合わせ結果を、DNSサーバのシステム内にキャッシュするためのものです。


■bind-chroot
bind-chrootパッケージをインストールすることで、nameedが使用するファイル全てが、/var/named/chroot以下にコピーされます。これまで標準的に存在していたファイル(ex. /etc/named.conf)は、/var/named/chroot以下のファイルのシンボリックリンクとして残されます。
例)初期設定ファイル : /etc/named.conf ⇒ /var/named/chroot/etc/named.conf


■サービスの起動
# /etc/init.d/named start
もしくは
# service named start

デフォルトでは自動起動される設定になっていません。
# chkconfig --list named
named 0:off 1:off 2:off 3:off 4:off 5:off 6:off

自動起動の設定
# chkconfig --level 345 named on


■初期設定ファイル
bind-chrootをインストールしたものとして話を進めます。
BINDは、/etc/named/chroot/etc/named.confを初期設定ファイルとして使用します。BINDにおいて、ステートメントとして定義されているのは12個あります。logging, options, zone, acl, key, trusted-keys, server, controls, include, masters, lwres, viewです。そのうち、重要となるのは、optionsとzoneです。

named.conf
# cat named.conf
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

# namedの動作に関する基本的な設定を行うoptionsステートメント
options {
 # namedがどのアドレスとポートでリクエストを受け付けるかの指定
        listen-on port 53 { 127.0.0.1; };
        # namedがどのアドレスとポートでリクエストを受け付けるかの指定(IPv6用)
        listen-on-v6 port 53 { ::1; };
        # マスターファイルの置き場所の指定
        directory         “/var/named”;
        # rndcコマンドのdumpdb命令で、namedがキャッシュしているデータをダンプする場合に出力されるファイル名
        dump-file         “/var/named/data/cache_dump.db”;
        # rndcコマンドのstats命令で、統計情報を出力する場合に出力されるファイル名
        statistics-file “/var/named/data/named_stats.txt”;
        # namedが終了時にメモリの使用統計を出力されるファイル名
        memstatistics-file “/var/named/data/named_mem_stats.txt”;
        # DNSサーバに問い合わせできるクライアントを限定する指定
        allow-query { localhost; };
        # 再帰的なクエリの許可
        recursion yes;

        # DNSSECの有効の許可
        dnssec-enable yes;
        dnssec-validation yes;
        dnssec-lookaside auto;

        /* Path to ISC DLV key */
        bindkeys-file “/etc/named.iscdlv.key”;
};

# BINDのログ出力方法の設定を行うloggingステートメント
logging {
channel default_debug {
file “data/named.run”;
severity dynamic;
};
};

# ルートドメインに相当するゾーンの設定を行うzoneステートメント
zone “.” IN {
        type hint;
        file “named.ca”;
};

# includeで指定されたファイルの情報を設定として読み込む
include “/etc/named.rfc1912.zones”;


■named.rfc1912.zone
RFC1912で定められたDNSサーバとして必要最小限のDNSレコードを設定するための設定ファイルです。

named.rfc1912.zone
# cat named.rfc1912.zones
// named.rfc1912.zones:
//
// Provided by Red Hat caching-nameserver package
//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
// and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt
// (c)2007 R W Franks
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

# localhost.localdomain というホスト名を参照するための設定
zone “localhost.localdomain” IN {
        type master;
        file “named.localhost”;
        allow-update { none; };
};

# localhost というホスト名を参照するための設定
zone “localhost” IN {
        type master;
        file “named.localhost”;
        allow-update { none; };
};

# ローカルループバックゾーンのIPv6用の逆引き
zone “1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa” IN {
        type master;
        file “named.loopback”;
        allow-update { none; };
};

# ローカルループバックゾーンの逆引き
zone “1.0.0.127.in-addr.arpa” IN {
        type master;
        file “named.loopback”;
        allow-update { none; };
};

# 0.0.0.0 に対する逆引き処理のための設定
zone “0.in-addr.arpa” IN {
        type master;
        file “named.empty”;
        allow-update { none; };
};


■設定の反映
# service named reload


参考)
・『CentOS5 で作るネットワークサーバ構築ガイド』
・自宅内DNSサーバーの構築 http://www.obenri.com/_dnsserver/named_conf.html

2011年8月10日水曜日

smbclientを使ってフォルダごとダウンロード

■ファイルをダウンロード
getを使うことでサーバのファイルをローカルへダウンロードできます。
スクリプトとして実行することを考慮して、下のコマンドが使えます。

# smbclient ‘\\サーバのホスト名\共有フォルダ’ [アクセスパスワード] -U [アクセスユーザ] -D [ディレクトリの移動] -c "prompt;recurse;mget [フォルダ名]”

例)
# smbclient '\\shindowsxp\tmp' “guestpass” -U guest -D "\20110810" -c "prompt;get test.txt"
Domain=[SHINDOWSXP] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
getting file \20110810\test.txt of size 12 as test.txt (5.9 KiloBytes/sec) (average 5.9 KiloBytes/sec)


■フォルダをダウンロード
では、フォルダごとダウンロードするにはどうすれば良いのでしょうか。
prompt;get を prompt;recurse;mget とすれば実現できます。
スクリプトとして実行することを考慮して、下のコマンドが使えます。

# smbclient //サーバのホスト名/共有フォルダ [アクセスパスワード] -U [アクセスユーザ] -D [ディレクトリの移動] -c "prompt;recurse;mget [フォルダ名]”

例)
# smbclient '\\shindowsxp\tmp' “guestpass” -U guest -D "\20110810" -c "prompt;recurse;mget test"
Domain=[SHINDOWSXP] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
getting file \20110810\test\test.txt of size 12 as test.txt (5.9 KiloBytes/sec) (average 5.9 KiloBytes/sec)


■参考
- smbclientコマンド - 管理者必見(コマンドのオプションが詳しくかかれています)
http://itpro.nikkeibp.co.jp/article/COLUMN/20070618/275055/
- WindowsサーバをUnixから使う(smbclientをスクリプトとして使いたい人向き)
http://renchan.dyndns.tv/itblog/306

smbclientを使ってWindowsの共有フォルダへアクセス

Windows上の共有フォルダにLinuxクライアントからアクセスします。
smbclientが便利です。

WIndows側の設定
① 共有フォルダの作成

② テストのために共有フォルダのしてにtest.txtをおいておく

Linux側の設定
③ smb-clientをインストール
# yum install samba-client

④ smbclientコマンドを使って、WIndowsの共有フォルダへアクセス
smbclient ‘\\WindowsのIPアドレス\共有フォルダ’
        例) smbclient ‘\\192.168.11.4\tmp’
enter root's password: ← 共有フォルダのパスワードをいれる                
Domain=[SHINDOWSXP] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
smb: \>

⑤ get を使って、test.txtをコピー
smb: \> get test.txt
getting file \test.txt of size 12 as test.txt (0.5 KiloBytes/sec) (average 0.5 KiloBytes/sec)  

2011年8月9日火曜日

Samba を導入(最短の設定)

Samba を使うことで、WindowsのクライアントからLinuxサーバ上のファイルを共有したりすることができます。例えば、LinuxサーバをWindowsのファイルサーバにすることができます。

では、Sambaを導入して、WindowsクライアントからLinuxサーバにアクセスするまでの最短の設定を解説します。

■Sambaを使うまで
サーバ側での作業
① yumを使ってインストール
# yum install samba

② ユーザを作成
# useradd samba

③ パスワードを設定
# passwd samba
ユーザー samba のパスワードを変更。                            
新しいパスワード:
新しいパスワードを再入力してください:
passwd: 全ての認証トークンが正しく更新できました。

④ samba用のパスワード作成
# pdbedit -a -u samba
new password:                                       
retype new password:
Unix username: samba
NT username:
Account Flags: [U ]
User SID: S-1-5-21-3714191954-3507369016-540958060-1000
Primary Group SID: S-1-5-21-3714191954-3507369016-540958060-513
Full Name:
Home Directory: \\shindows7\samba
HomeDir Drive:
Logon Script:
Profile Path: \\shindows7\samba\profile
Domain: SHINDOWS7
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time: 9223372036854775807 seconds since the Epoch
Kickoff time: 9223372036854775807 seconds since the Epoch
Password last set: 水, 10 8月 2011 22:10:42 JST
Password can change: 水, 10 8月 2011 22:10:42 JST
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

⑤ Sambaを起動する
# service smb start

クライアント側での作業
⑥ エクスプローラで、“¥¥” のあとに サーバ側のIPアドレスを指定すると、ID/PWを聞かれるので④で聞かれた内容を入力して、下の画面のようにサーバ側に接続できれば成功。

WS000000-2011-08-9-21-41.JPG


sambaフォルダを開いて、適当にファイルを保存すれば、サーバ側の /home/samba/ にそのファイルが保存されていることを確認できます。

Apacheを複数動かす(linux)

以前、WindowsでApacheを複数のプロセスとして動かす方法を紹介しました。
http://t12488mac.blogspot.com/2011/05/apache.html

簡単にまとめると、Windowsだと下の流れで実現できます。
①Apacheのディレクトリをまるまるコピー&ペースト(名前は変えておく)
②httpd.confの書き換え(ポートがかぶらないように)
③サービスに登録


さて、linuxだとどうすれば良いでしょうか。
yumを使ってのインストールではなくて、ソースのコンパイルとインストールで実現できそうです。
http://httpd.apache.org/docs/2.0/ja/install.html


■ソースのコンパイルとインストールの手順
Cコンパイラgccをyumでインストールしておく
        # yum install gcc

http://httpd.apache.org/download.cgi から最新のUnix SourceのファイルのURLを取得する

② ダウンロード
        # cd /tmp/
        # wget http://ftp.jaist.ac.jp/pub/apache//httpd/httpd-2.2.19.tar.gz

③ ファイルを展開
        # tar zxvf httpd-2.2.19.tar.gz

④ ソースをシステムに合わせて設定(--prefixオプションは重要です。各自の環境に合わせること)
        # cd httpd-2.2.19
        # ./configure --prefix=/usr/local/apache2.2 --enable-rewrite=shared --enable-speling=shared

⑤ ビルド
        # make

⑥ インストール(--prefixオプションで指定したディレクトリにパッケージをインストールされます)
        # make install

⑦ httpd.confを書き換えます(ポートがかぶらないように注意して)
        # vi /usr/local/apache2.2/conf/httpd.conf

        最低限の設定として下だけ変更した(サーバのIPアドレスは各自の環境に合わせて)
        Listen 80         ⇒ Listen 81
        ServerName www.example.com:80 ⇒ ServerName [サーバのIPアドレス or ホスト名]:81

⑧ 起動
        # /usr/local/apache2.2/bin/apachectl start

⑨ ブラウザを起動して81ポートで接続されているかの確認をする
        http://[サーバのIPアドレス or ホスト名]:81/

2011年8月8日月曜日

telnetでサーバにログインする

WindowsやMacOSからサーバにログインする手段の一つに、telnetコマンドがあります。

Windows Vista と Windows 7 はデフォルトでtelnetコマンドが無効になっているので、設定を変える必要があります。
コントロールパネル>プログラム>プログラムと機能>Windowsの機能の有効化または無効化で、telnetクライアントを使えるようにしておきます。

■サーバ側での設定
① telnetサーバをインストール
# yum -y install telnet-server

② telnetを使えるように設定ファイルを下の赤字のように書き換え
# vi /etc/xinetd.d/telnet
# default: on                                     
# description: The telnet server serves telnet sessions; it uses \
# unencrypted username/password pairs for authentication.
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
# disable = yes
}


③ telnetサーバの再起動
# /etc/init.d/xinetd restart


■クライアント側
> telnet [サーバのIPアドレス or ホスト名]
CentOS Linux release 6.0 (Final)                             
Kernel 2.6.32-71.el6.x86_64 on an x86_64

login: shindo_t
Password:
Last login: Tue Aug 9 21:49:14 from 192.168.11.2
[shindo_t@shindows7 ~]$

telnetコマンドを使ってログインできることを確認しました。


■ログインできない場合
- telnetのポート番号(23番)が解放されていない


■ポート番号を指定してTelnetで接続
> telnet [サーバのIPアドレス or ホスト名] [ポート番号]


参考)
はじめての自宅サーバ構築
http://kajuhome.com/telnet.shtml
@IT Telnetクライアントの使い方
http://www.atmarkit.co.jp/fwin2k/win2ktips/231telnetcmd/telnetcmd.html

2011年8月7日日曜日

vSphereClient で CentOS 6.0 をインストール②

vSphereClient で CentOS 6.0 をインストール①の続きです。
vSphereClient で CentOS 6.0 をインストールする手順を説明します。


1. http://ftp.riken.jp/Linux/centos/6.0/isos/x86_64/ からisoイメージをダウンロード

CentOS-6.0-x86_64-bin-DVD1.isoとCentOS-6.0-x86_64-bin-DVD2.isoをダウンロードして、DVDに焼いておく。

2. パワーオンをクリック

WS000059-2011-08-7-19-14.JPG


3. CD/DVDのアイコンを選択して、CD/DVDドライブ1>”E: に接続” をクリック
isoイメージを焼いたDVDをPCにセット。
サマリ>”コンソールを開く” をクリック

WS000060-2011-08-7-19-14.JPG


4. コンソール画面が開かれて、CentOSインストール画面が表示されます。
インストールを選択すると、下の画面が表示されます。 今回は”Skip” を選択

WS000027-2011-08-7-19-14.JPG


5. CentOS 6.0 のセットアップ画面が立ち上がります。Nextを選択。

WS000028-2011-08-7-19-14.JPG


6. jaopaneseを選択して、Next。

WS000029-2011-08-7-19-14.JPG


7. 日本語を選択して、次へ

WS000030-2011-08-7-19-14.JPG


8. 基本ストレージデバイスを選択して、次へ

WS000032-2011-08-7-19-14.JPG


9. ホスト名を指定して、”ネットワークの設定”を選択

WS000035-2011-08-7-19-14.JPG

10. System eth0 をダブルクリック

WS000036-2011-08-7-19-14.JPG


11. ネットワークの設定後、適用を選択して、System eth0 の編集画面を閉じ、次へ

WS000038-2011-08-7-19-14.JPG



11. 全てを再初期化を選択して、次へ

WS000034-2011-08-7-19-14.JPG


12. アジア/東京を選択して、次へ

WS000039-2011-08-7-19-14.JPG


13. rootユーザのパスワードを指定して、次へ

WS000040-2011-08-7-19-14.JPG



14. “すべての領域を使用する”を選択して、次へ

WS000041-2011-08-7-19-14.JPG


15. “変更をディスクに書き込む” を選択

WS000042-2011-08-7-19-14.JPG


16. “Minimal Desktop” を選択して、次へ

WS000046-2011-08-7-19-14.JPG


17. インストールが始まります

WS000047-2011-08-7-19-14.JPG


18. インストールが完了しました。再起動を選択

WS000048-2011-08-7-19-14.JPG


19. CentOSの基本設定をします。進むへ

WS000050-2011-08-7-19-14.JPG


20. “ライセンスに同意する”を選択して、進むへ

WS000051-2011-08-7-19-14.JPG
      

21. ユーザーを作成して、進むへ

WS000052-2011-08-7-19-14.JPG


22. 日付と時刻を設定して、進むへ

WS000054-2011-08-7-19-14.JPG


23. メモリーが足りないといわれたら、諦めてOKをクリック

WS000055-2011-08-7-19-14.JPG


24. CentOSのログイン画面です。ひとまず設定は終わりです。

WS000056-2011-08-7-19-14.JPG

WS000057-2011-08-7-19-14.JPG


CentOS 5.6 とはGUIなりが多少変わってますね。

vSphereClient で CentOS 6.0 をインストール①

vSphereClient で CentOS 6.0 をインストールしました。

『vSphereClient で CentOS 6.0 をインストール①』では、vSphereClientで新規仮想マシンを作成するまでの手順を説明します。

『vSphereClient で CentOS 6.0 をインストール②』で、作った仮想マシンにCentOS 6.0をインストールします。

■新規仮想マシンを作成
1. vSphereClientを立ち上げて、右クリック>新規仮想マシンを選択します。

WS000001-2011-08-7-18-31.JPG


2. 標準にチェックを入れて、次へ

WS000019-2011-08-7-18-31.JPG


3. 仮想マシンの名前を指定します

WS000021-2011-08-7-18-31.JPG


4. データストアを選択して次へ

WS000022-2011-08-7-18-31.JPG


5. ゲストOSを選択。今回はLinuxにチェックを入れて、バージョン”CentOS 4/5 (64ビット)” を選択

WS000058-2011-08-7-18-31.JPG


6. 今回は、仮想ディスクサイズを70GBに。

WS000025-2011-08-7-18-31.JPG


7. 設定に問題なければ、終了を選択

WS000000-2011-08-7-18-31.JPG


8. 仮想マシンが新しく作られています。
メモリの設定をしたいので、作成した仮想マシン>サマリ>”設定の編集”を選択

WS000002-2011-08-7-18-31.JPG


9. メモリを割り当てる。

WS000003-2011-08-7-18-31.JPG


完成。
次は、CentOS 6.0 をインストールします。
http://t12488mac.blogspot.com/2011/08/vsphereclient-centos-60_07.html

MacOSのコピー&ペーストのショートカットキーを変える

WindowsとMacでは、コピー&ペーストのショートカットキーが違います。
Windowsだと、コピーはCtrl+C、ペーストはCtrl+V
MacOSだと、コピーはcommand+C、ベースとはcommand+V

commandの位置が微妙な点を考えると、MacOSでも、コピーはCtrl+C、ペーストはCtrl+Vにしたいものです。

便利なアプリがありました。”KeyRemap4MacBook”です。
http://pqrs.org/macosx/keyremap4macbook/index.html.ja

インストールして再起動すると、システム環境設定にKeyRemap4MacBookのアイコンがあらわれます。

%2525E3%252582%2525B9%2525E3%252582%2525AF%2525E3%252583%2525AA%2525E3%252583%2525BC%2525E3%252583%2525B3%2525E3%252582%2525B7%2525E3%252583%2525A7%2525E3%252583%252583%2525E3%252583%2525882011-08-0717.28.32-2011-08-7-17-57.png

選択すると、下の画面が表示されます。

%2525E3%252582%2525B9%2525E3%252582%2525AF%2525E3%252583%2525AA%2525E3%252583%2525BC%2525E3%252583%2525B3%2525E3%252582%2525B7%2525E3%252583%2525A7%2525E3%252583%252583%2525E3%252583%2525882011-08-0718.04.32-2011-08-7-17-57.png

下の画面のように、Change Keyタブの”For PC Users” の下にあるCopy/Pasteのショートカットの設定にチェックします。(ここでは、ターミナルやEmacsでは、Ctrl+Cでのコピーを無効にしています。)

%2525E3%252582%2525B9%2525E3%252582%2525AF%2525E3%252583%2525AA%2525E3%252583%2525BC%2525E3%252583%2525B3%2525E3%252582%2525B7%2525E3%252583%2525A7%2525E3%252583%252583%2525E3%252583%2525882011-08-0718.07.04-2011-08-7-17-57.png

Ctrl+A(全て選択)やCtrl+Z(取り消し)にもチェックをいれておきました。

%2525E3%252582%2525B9%2525E3%252582%2525AF%2525E3%252583%2525AA%2525E3%252583%2525BC%2525E3%252583%2525B3%2525E3%252582%2525B7%2525E3%252583%2525A7%2525E3%252583%252583%2525E3%252583%2525882011-08-0718.13.17-2011-08-7-17-57.png

Windows用キーボードでMacOSを操作する

Microsoftのワイヤレスキーボードを買いました。

RIMG0278-2011-08-7-17-11.JPG

Windowsでは問題なく使えますが、これでMacOSも動かせるのかな?
MacOSに接続してみます。案の定、Windows用のキーボードだとMacOSで思い通りの操作ができません。

ここでネックになっているのは、Macキーボードのスペースの隣にある”英数”と”かな”に対応するものがWindowsキーボードにないことです。

RIMG0280-2011-08-7-17-11.JPG

解決してくれるフリーソフトがありました。”PCKeyboardHack” です。
http://pqrs.org/macosx/keyremap4macbook/extra.html.ja

Macにインストールして再起動すると、システム環境設定に”PCKeyboardHack” のアイコンが現れます

%2525E3%252582%2525B9%2525E3%252582%2525AF%2525E3%252583%2525AA%2525E3%252583%2525BC%2525E3%252583%2525B3%2525E3%252582%2525B7%2525E3%252583%2525A7%2525E3%252583%252583%2525E3%252583%2525882011-08-0717.28.32-2011-08-7-17-11.png

選択すると、下の画面が立ち上がります。
有効にしたい設定にチェックを入れます。必要に応じてキーボードの変更をします。

%2525E3%252582%2525B9%2525E3%252582%2525AF%2525E3%252583%2525AA%2525E3%252583%2525BC%2525E3%252583%2525B3%2525E3%252582%2525B7%2525E3%252583%2525A7%2525E3%252583%252583%2525E3%252583%2525882011-08-0717.32.37-2011-08-7-17-11.png

上記の設定で下記のことをしています。
・Windowsキーボードだと”a”の左側に”Caps Lock” があります。これを”Ctrl”に割り当て
・Windowsキーボードのスペース左側にある”無変換”を、Macの”英数”に割り当て
・Windowsキーボードのスペース右側にある”変数”と”ひらがな”を、Macの”かな”に割り当て

2011年8月6日土曜日

サクラエディタで開こう ~設定~

Windowsで作業するときに使うエディタは何を使っているでしょうか。
メモ帳で十分という人もいれば、秀丸を使っているという人もいるでしょう。
僕が一番気に入っているエディタは、サクラエディタです。
http://sakura-editor.sourceforge.net/download.html

インストールは上のURLから最新版をダウンロード (例:sinst1-6-6-0.exe) して行います。
インストールに聞かれる内容はデフォルトのまま次に進めれば良いです。

ここからが本題の”サクラエディタで開こう”です。
Windowsだとデフォルトはメモ帳が入っています。
何かテキストを開こうとしても、ダブルクリックではメモ帳で開かれます。
サクラエディタで開くためには、右クリック>プログラムから開く>サクラエディタ を選択する必要があります。

では、ダブルクリックでサクラエディタを使うためにはどうすれば良いでしょうか。
これから説明します。
1. スタート>すべてのプログラム>サクラエディタ>関連づけツール を開きます

WS000002-2011-08-6-12-37.JPG

2. ダイアログを開き、この拡張子だとサクラエディタで開いて欲しいってものを選択します
(ここでは、.txtの拡張子を選択しています)

picture3-2011-08-6-12-37.JPG

3. “標準(ファイルをダブルクリック)でSakura Editor で開く” にチェックを入れておきます。

WS000003-2011-08-6-12-37.JPG

これで、.txtの拡張子のファイルの場合、ダブルクリックをしてサクラエディタで開く設定に変更されました。