2011年12月11日日曜日

CentOS 6.1でまだまだLAMP環境 OSインストール編



Webサービスを構築するソフトウェアは、LAMP(Linux, Apache, MySQL, Perl or PHP or Python)がよく使われていますが、最近は、LAMP以外のプログラミング言語、データベース、KVS、キャッシュなどの様々な技術を用いることも多くなり、ここ数年で選択肢がかなり広がった印象があります。

nginxやnode.jsのように、イベント駆動やノンブロキッキングの処理に注目があつまっていたり、
HTML5を用いたリアルタイムWebなど新しい技術なしでは実装が難しいというのも理由かもしれません。

そんな状況で、LAMPという言葉自体はもう古いものですが、中身は古くなったというよりは、安定してかつ新しい機能やライブラリーも増えてより便利になったという印象です。また、他が注目されているとはいえ、まだまだ多くのWebサービスを支えている技術はLAMPであるのもまた事実です。これまでのノウハウが活用できるというのもメリットですぐにやめられない理由の1つだと思います。

そんな当たり前の技術となったLAMPですが、CentOS 6.1がリリースされたタイミングなので、
最近のバージョンで、LAMP構成のサーバを作成してみようと思います。
これからWebエンジニアを目指す人でも、クラウドの時代でも、最低限知っておいて損はないと思います。

まずは、CentOS 6.1のインストールから


  • CentOS 6.1 インストール事前準備

  • CentOS 6.1 インストール(最小構成)

  • よく使うコマンドのインストールと環境構築

  • sshの鍵作成

  • LAN以外からの22番ポート(ssh)へアクセスを不可にする

  • この手順でインストールしたモジュール(依存関係も含む)




CentOS 6.1 インストール事前準備



▼ファイルをダウンロードする
http://ftp.jaist.ac.jp/pub/Linux/CentOS/6.1/isos/x86_64/CentOS-6.1-x86_64-bin-DVD1.iso
http://ftp.jaist.ac.jp/pub/Linux/CentOS/6.1/isos/x86_64/CentOS-6.1-x86_64-bin-DVD2.iso
※以下の作業で必要なのは、CentOS-6.1-x86_64-bin-DVD1.isoのみ

▼ダウンロードしたファイルをDVD-Rに焼く
Macの場合は、標準のディスクユーティリティで作成可能
1. [アプリケーション]→[ユーティリティ]→[ディスクユーティリ]を開く
2. [ディスクを作成]をクリック
3. ダウンロードした[CentOS-6.1-x86_64-bin-DVD1.iso]を選択して[ディスクを作成]ボタンをクリック
4. DVD-Rをセットする
5. [ディスクを作成]ボタンをクリック

しばらく待てばできあがり。
必要であれば、[CentOS-6.1-x86_64-bin-DVD2.iso]も同様の手順で焼く



CentOS 6.1 インストール(最小構成)




▼インストールメディアから起動
1. サーバ電源ON
2. 先ほど焼いたメディア(DVD)をサーバにセットする
3. DVDから起動したら[Enter]キーを押す
※DVDで起動しない場合は、BIOSの設定変更が必要

4. Install or upgrade an existing systemを選択して[Enter]キーを押す
5. [SKIP]を選択して[Enter]キーを押す
※事前にDVDをチェック済みなので。メディアをチェックしたい場合はそのまま[OK]をクリック
6. [Next]を選択してクリック

▼インストールする言語の選択
7. [Japanese]を選択して[Next]をクリック
8. [日本語]を選択して[次へ]をクリック

▼インストールするストレージデバイスの選択
9. [基本ストレージデバイス]を選択して[次へ]をクリック
10. [新規インストール]を選択して[次へ]をクリック

▼ホスト名の設定(適宜変更してください)
11. ホスト名を入力して同じ画面の[ネットワークの設定]をクリック
例 sv.example.local

▼ネットワークの設定(適宜変更してください)
12. [有線]タブの[System eth0]を選択して[編集...]ボタンをクリック
13. [自動接続する]にチェックをつける

サーバ用途なのであまりないと思いますが、[DHCP]を使用する場合は14-16の手順は不要

14. [IPv4のセッティング]タブをクリックする
15. 方式を[自動(DHCP)]から[手動]に変更する
16. [追加]ボタンをクリックして次の項目を入力する


設定例 (環境にあわせて変更してください)
アドレス : 192.168.1.100
ネットマスク : 24 (または255.255.255.0)
ゲートウェイ : 192.168.1.1
DNSサーバ : 8.8.8.8 (例 Google Public DNS)
ドメインを検索:example.local


17. [適用]ボタンをクリック
18. [閉じる]ボタンをクリック
19. [次へ]をクリック

▼時間の設定(適宜変更してください)
20. [アジア/東京]を選択する
21. [システムクロックでUTCを使用]のチェックを外す
22. [次へ]をクリック

▼管理者パスワードの設定
23. [rootのパスワードと[確認]にパスワードを入力する
24. [次へ]をクリック

▼ディスク構成(適宜変更してください)
25. [すべての領域を使用する]を選択する
26. [パーティションのレイアウトをレビューまたは修正]を選択する
27. [次へ]をクリック
28. [lv_home]を選択して[削除]ボタンをクリック
29. [削除]ボタンをクリック
30. [lv_root]を選択して[編集]をクリック
31. サイズにし最大値を入力して[OK]ボタンをクリック
32. [次へ]ボタンをクリック
33. [変更をディスクに書き込む]ボタンをクリック
34. [次へ]をクリック

▼インストールオプションの選択(最小構成)
35. [Minimal]を選択して[次へ]をクリック
36. インストールが完了したら[再起動]ボタンをクリックする



よく使うコマンドのインストールと環境構築




ここからは外部(インターネットなど)からこのサーバへアクセスできない環境での作業を前提とする
▼セットアップ
ここからはリモートで作業する
ssh root@192.168.1.100
管理者用パスワードを入力してログインする

▼モジュールアップデート


yum -y update


▼SELinuxの無効化


setenforce 0

vi /etc/sysconfig/selinux
#SELINUX=enforcing
SELINUX=disabled

完全に無効化するには再起動が必要
reboot

再起動後にgetenforceコマンドでDisabledと表示されればOK


▼シェルをzshに変更する(zsh好きなら)


yum -y install zsh
chsh -s /bin/zsh

変更可能なシェル確認
chsh --list-shells


▼コピー関連コマンド(rsync, scp)のインストール


yum -y install \
rsync.x86_64 \
openssh-clients.x86_64


▼圧縮・解凍関連コマンド(unzip)のインストール


yum -y install \
unzip.x86_64


▼ネットワーク関連コマンド(dig, nslookup, whois, traceroute, tcpdump, telnet)のインストール


yum -y install \
bind-utils.x86_64 \
jwhois.x86_64 \
traceroute.x86_64 \
tcpdump.x86_64 \
telnet.x86_64


▼ソースのコンパイルに使用するモジュールのインストール


yum -y install \
autoconf.noarch \
automake.noarch \
cmake.x86_64 \
gcc.x86_64 \
gcc-c++.x86_64 \
make.x86_64 \
libtool.x86_64


あとはお好みで追加する。 wgetとか



sshの鍵作成




1. ssh-keygenコマンドを実行する
ssh-keygen -t rsa

下記のメッセージが表示される
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): [Enterキーを押す]
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): [パスフレーズを入力してEnterキーを押す]
Enter same passphrase again: [再度パスフレーズを入力してEnterキーを押す]
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.

秘密鍵 : /root/.ssh/id_rsa
公開鍵 : /root/.ssh/id_rsa.pub

※scpコマンドなどで秘密鍵をリモートアクセスするPCに保存します。

3. 公開鍵authorized_keysに登録する
cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys

4. アクセス権を変更する
chmod -R 700 $HOME/.ssh
chmod -R 600 $HOME/.ssh/*

5. 鍵のみの認証に変更(パスワード認証を許可しない)
vi /etc/ssh/sshd_config
PasswordAuthentication no

6. sshdを再起動する
/etc/init.d/sshd restart

以後、秘密鍵を使用してログインします。



LAN以外からの22番ポート(ssh)へアクセスを不可にする




vi /etc/sysconfig/iptables

次のように修正して保存する
修正前
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

修正後
-A INPUT -s 192.168.1.0/24 -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

iptablesを再起動する
/etc/init.d/iptables restart



この手順でインストールしたモジュール(依存関係も含む)




▼シェルをzshに変更する(zsh好きなら)


  • zsh-4.3.10-4.1.el6.x86_64



▼コピー関連コマンド(rsync, scp)のインストール


  • libedit-2.11-4.20080712cvs.1.el6.x86_64

  • openssh-clients-5.3p1-52.el6_1.2.x86_64

  • rsync-3.0.6-5.el6_0.1.x86_64



▼圧縮・解凍関連コマンド(unzip)のインストール


  • unzip-6.0-1.el6.x86_64



▼ネットワーク関連コマンド(dig, nslookup, whois, traceroute, tcpdump, telnet)のインストール


  • libpcap-1.0.0-6.20091201git117cb5.el6.x86_64

  • bind-libs-9.7.3-2.el6_1.P3.3.x86_64

  • bind-utils-9.7.3-2.el6_1.P3.3.x86_64

  • tcpdump-4.0.0-3.20090921gitdf3cb4.1.el6.x86_64

  • traceroute-2.0.14-2.el6.x86_64

  • jwhois-4.0-19.el6.x86_64

  • telnet-0.17-47.el6.x86_64

▼ソースのコンパイルに使用するモジュールのインストール


  • xmlrpc-c-1.16.24-1200.1840.el6_1.4.x86_64

  • mpfr-2.4.1-6.el6.x86_64

  • cpp-4.4.5-6.el6.x86_64

  • xmlrpc-c-client-1.16.24-1200.1840.el6_1.4.x86_64

  • perl-Pod-Escapes-1.04-119.el6_1.1.x86_64

  • perl-libs-5.10.1-119.el6_1.1.x86_64

  • perl-Pod-Simple-3.13-119.el6_1.1.x86_64

  • perl-Module-Pluggable-3.90-119.el6_1.1.x86_64

  • perl-version-0.77-119.el6_1.1.x86_64

  • perl-5.10.1-119.el6_1.1.x86_64

  • autoconf-2.63-5.1.el6.noarch

  • automake-1.11.1-1.2.el6.noarch

  • libgomp-4.4.5-6.el6.x86_64

  • kernel-headers-2.6.32-131.21.1.el6.x86_64

  • glibc-headers-2.12-1.25.el6_1.3.x86_64

  • glibc-devel-2.12-1.25.el6_1.3.x86_64

  • ppl-0.10.2-11.el6.x86_64

  • cloog-ppl-0.15.7-1.2.el6.x86_64

  • gcc-4.4.5-6.el6.x86_64

  • libstdc++-devel-4.4.5-6.el6.x86_64

  • gcc-c++-4.4.5-6.el6.x86_64

  • libtool-2.2.6-15.5.el6.x86_64

  • cmake-2.6.4-5.el6.x86_64

  • make-3.81-19.el6.x86_64



次回は、MySQLをインストールします。




0 件のコメント:

コメントを投稿