2011年6月1日水曜日

CentOSのインストール

はじめに

自宅サーバもしくは検証用環境としてCUIのLinuサーバーを立てたい。

  • 自宅サーバ
  • Windows環境での懸賞やウェブプログラミング用
ここでは、最もよく利用されてると思われるCentOSのオレオレインストール方法をメモしておく。

VMWareのインストール

WindowsでLinux環境を構築する場合、候補としてVMWareとCygwinがある。 経験的にCygwinでのウェブプログラミングはトラブルが多い。 なのでプログラミング目的であれば素直にVMWareを選択するのが良い。 ただし、どちらがいいというわけでなく、併用するのが一番良いと思う。

  • Web系プログラミングをするときはVMWare
  • その他DOSを補完する意味合いでのLinuxコマンドを利用するときにCygwin

VMWare

  • メリット
    • linuxそのものなので、環境周りの不具合は発生しづらい。
    • システムをスナップショットで保存できる。だから環境をまるごと移動するのが楽ちん。
    • 直接Linuxをインストールした場合ドライバがないためにうまく動かない場合があるが、VMWareならWindowsのドライバが動いてれば多分動く。
    • Windoowsでしか対応していないソフトがどうしてもあるため、直接インストールするとそれらを利用することが面倒になる。
    • Windowsのキーバインド(caps-ctrlの入れ替え)などがそのままLinux上で使える。
  • デメリット
    • マルチモニタとかが使えない。
    • 3Dデスクトップが使えない。
    • 動作が重い
    • パフォーマンスが落ちる。
    • IPアドレス周りで不具合が出るかも
    • ファイルの共有が面倒
    • メモリを食う

Cygwin

  • 長所
    • 早い
    • ファイルの共有が簡単
    • Windows用のファイルにコマンドが適用できる
  • 短所
    • linuxの連携で度々不具合が起きる(パスの指定など)

準備

  • VMWarePlayerをインストールしておく
  • DVDのisoイメージをダウンロード
  • VMWareイメージをメモリ1GBで作成
  • isoイメージをセットして起動する。

VMWareのネットワークアダプタについて

下記でそれぞれのIPアドレスを確認できる。 このIPアドレスはポートフォワードなどをするときに必要になる。

  • VMNet1 - ホストオンリー接続用
  • VMNet8 - NAT接続用

windowsのhosts設定

あらかじめゲストOS側でIPアドレスを確認しておく。 ゲストOSのIPを控えておき、Windowsからアクセスに使用する。

$ /sbin/ifconfig

バーチャルホスト用にローカルドメインをhostsファイルに記述する。

C:/WINDOWS/system32/drivers/etc/hosts
127.0.0.1       localhost.localdomain
192.168.10.x    vmware.localdomain

hotsファイル編集後、下記を実行

dos> nbtstat -R

puttyのインストール

  • ごった煮版をインストールする。
  • winscpもインストールしておく

まずやっておくこと

  • とりあえずシステムを最新にする。

ビープ音を消す。

  • [システム]-[管理]-[ハードウェア]-[サウンド]-[効果音の設定]-[サウンドタブ]
  • [警告音と硬化オウンを鳴らす]をチェックする
  • 残りのチェックを外す。

iptablesの設定

  • [システム]-[管理]-[セキュリティレベルとファイヤウェールの設定]
  • HTTP,HTTPS,SSHにチェックを入れる。

ユーザ周りの設定

rootで作業する。

// ユーザの作成
# useradd miki
# passwd miki

// root権限を許可するグループを作成
# groupadd sysadmins
# usermod -G sysadmins miki ;; グループ追加
# usermod -g sysadmins miki ;; プライマリグループを指定

// sudoを使えるようにする。
// visudoでsudersファイルの末尾にグループを追加する。%を忘れないように。
# visudo
%sysadmins ALL=(ALL) ALL

sshd周り

CENTOSはsshdは初めからあるので、rootの権限周りだけ設定する。

$ sudo vi /etc/ssh/sshd_config

## rootでのログインを禁止
PermitRootLogin no

## パスワード認証の有無
## 外部から接続しないのであれば(vmware)、yesにしても問題なし。
## yesの場合、鍵は必要なし。
PasswordAuthentication yes

$ sudo /sbin/service sshd restart

## ssh経由でログインしたユーザがsuでrootユーザになるのを禁止する。
## wheelグループに所属しているユーザだけがsuコマンドを使ってrootになれるようにする。
$ sudo vi /etc/login.defs
SU_WHEEL_ONLY yes # 追加

$ sudo vi /etc/pam.d/su
auth required /lib/security/pam_wheel.so group=wheel   # 追加

時刻同期の設定

  • これは会社ではやめておいたほうがよいかも
  • ntp:時刻サーバ。これに接続することで時刻を合わす。
  • ntpdate:ntpのクライアント。ntpに接続するらしい。
    $ sudo yum install ntp
    $ sudo vi /etc/cron.hourly/ntpdate
    $ sudo chmod 755 /etc/cron.hourly/ntpdate
    
    # -B は徐々に時刻を合わせるという意味
    #!/bin/sh
    /usr/sbin/ntpdate -B ntp.nict.jp > /dev/null
    
    # 最初の一発目だけ実行
    $ sudo /usr/sbin/ntpdate ntp.nict.jp
    
  • 参考

dagリポジトリの追加

$ sudo vi /etc/yum.repos.d/CentOS5-Base.repo

# enable=1にすると常用する。常用は不安なので0にしておく
[dag]
name=Dag RPM Repository for Redhat EL5
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
enabled=0
gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt

開発用ツール

$ sudo yum -y install wget
$ sudo yum install subversion
$ sudo yum install w3m
$ sudo yum --enablerepo=dag install git
$ sudo yum --enablerepo=dag install tmux

# コンパイルに必要
$ sudo yum groupinstall "Development Tools"

# GUIの開発するなら以下もインストールする。
$ sudo yum groupinstall "GNOME Software Development"

emacs

  • 以下のページを開き、「Obtaining/Downloading GNU Emacs」という見出しを探す。
  • ダウンロード用のページのリンクがあるのでそこをクリックし、最新版のtarボールのリンクをコピー
    $ cd ~/src
    $ wget http://ftp.gnu.org/pub/gnu/emacs/emacs-23.3.tar.gz
    $ tar xvfz emacs-23.3.tar.gz
    $ cd emacs-23.3
    $ ./configure --without-x
    

apacheのインストール

$ sudo /sbin/chkconfig httpd on
$ sudo /etc/init.d/httpd start

# 必要に応じて。
#$ sudo yum install httpd mod_perl


# ログの確認
$ sudo tail -f /var/log/httpd/access_log

# 確認用URL
http://vmware.localdomain/

# 設定ファイル
/etc/httpd/conf/httpd.conf

# html
/var/www/html

# pid
/var/run

Basic認証

llow = 許可する
deny = 拒否する

allowoverride FileInfo AuthConfig # FileInfo, AuthConfigオプションを許可する
authtype basic      # basic認証を使用する
authName "hoge"     # 認証領域。ダイアログに表示される
order allow,deny    # デフォルトとして許可する
allow from all      # すべてを許可
deny from 128.0.0.1 # 指定アドレスを拒否
<limit get post>
 require valid-user  # POST, GET には認証が必要
</limit>
satisfy any         # IPアドレス、認証のいずれかを通ったユーザを許可する
authuserfile /usr/hoge/.htaccess # パスワードファイルのありか

jdkのインストール

# 環境変数の追加
$ sudo vi /etc/profile.d/java.sh

[java.sh]
export JAVA_HOME=/usr/local/jdk1.6.0_24/
export PATH=$JAVA_HOME/bin:$PATH

# 有効化
$ sudo chmod +x /etc/profile.d/java.sh
$ . /etc/profile.d/java.sh

# alternativesに追加する。
$ sudo /usr/sbin/alternatives --install /usr/bin/java java /opt/jdk1.6.0_24/bin/java 3

# 確認
$ sudo /usr/sbin/alternatives --config java
$ java --version

PHPインストール

# # 以下は必要なかったかも。
# sudo yum -y install gcc*
$ sudo yum -y install flex libxml2-devel
$ sudo yum -y install zlib-devel libpng-devel
$ sudo yum -y install libjpeg-devel
$
sudo yum install -y git

#
# 以下で必要なパッケージを確認できる
#
# yum list '*php*'|less

# 今回は以下をインストール
$ sudo yum install -y php php-mbstring php-mysql php-gd
php-xml php-mcrypt
$ sudo yum install -y php-pear

webdav

CentOSにははじめから入っている。

$ sudo mkdir /var/www/share
$ chown -R apache:apache /var/www/share
$ sudo cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.org
$ sudo vi /etc/httpd/conf/httpd.conf
$ sudo htpasswd -cm /var/www/.htpasswd miki

$ sudo vi /etc/httpd/conf/httpd.conf
<IfModule mod_dav.c>
    DAVMinTimeout 600
    Alias /share/ "/var/www/share/"
    <Directory "/var/www/share">
        DAV On
        Options Indexes MultiViews
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from all
        AuthType Basic
        AuthName "Authorization Realm"
        AuthUserFile /var/www/.htpasswd
        Require valid-user
    </Directory>
</IfModule>

# 再起動
$ sudo /etc/rc.d/init.d/httpd reload

windowsXPからのアクセスする方法

  • エクスプローラを起動し、ネットワークを開く。
  • ネットワークプレイスの追加で下記を追加する。
  • 以後、このURLにドラッグアンドドロップで追加できる。

なぜポート番号も追加するのか

  • 普通にネットワークプライスから追加すると重い。
  • これは、windowsクライアントがhttp以外のリクエストを飛ばし、リトライとタイムアウトが発生することが原因とのこと。
  • これを回避するには、上述したようにネットワークプレイスを追加時にポートも一緒に指定して荒れれば良い。

Subversion

webdav経由のsvnリポジトリを作成する。

# まず、リポジトリの作成
$ sudo svnadmin create --fs-type=fsfs /home/svnroot
$ sudo htpasswd -cm /home/svnroot/.htpasswd miki
$ sudo chown -R apache:apache /home/svnroot

# webdav用のsvnモジュールをインストールする。
$ sudo yum -y install mod_dav_svn

# WebDavの設定ファイルを編集
$ sudo vi /etc/httpd/conf.d/subversion.conf

<Location /svn>
   DAV svn
   SVNPath /home/svnroot

   # Limit write permission to list of valid users.
   <LimitExcept GET PROPFIND OPTIONS REPORT>
      # Require SSL connection for password protection.
      # SSLRequireSSL

      AuthType Basic
      AuthName "svn"
      AuthUserFile /home/svnroot/.htpasswd
      Require valid-user
   </LimitExcept>
</Location>


# httpd を再起動
sudo /sbin/service httpd restart

リポジトリへインポートする。

$ mkdir work
$ cd work
$ mkdir trunk
$ mkdir branches
$ mkdir tags

$ svn import http://192.168.10.2/svn -m 'Initila imoprt.'

脚注のテスト

脚注1てすとしてみる

注釈

Footnotes:

1 脚注されるかな。

0 件のコメント: