2011年3月11日金曜日

3/11覚書

1時間目
いよいよサーバー構築。
まずは準備

★Firewall設定
SELinux( エスイーリナックス)解除。
ELinuxとは強制アクセス制御 (MAC) 機能を付加するモジュールの名称。
Linuxデフォルトのセキュリティソフト。
これがあるとサーバーの動作、つか学習の邪魔なので無効化して止めます。

VMWare player起動→PuTTYをrootでログイン
◎vi /etc/sysconfig/selinuxを実行。
◎6行目にSELINUX=enforcing(有効)とあるので

◎SELINUX=disabled(無効)に変更。
行数は:set numberでわかるよ!

◎rebootでCent OS再起動を命令。これをしないと設定が反映されない。
PuTTYいったん終了
Cent OSでログイン画面が出たらPuTTYでrootログイン。
getenforceを実行してdisabledと出れば成功。違ってたら◎やり直し。

以下から1行ずつコピペでEnter。一文字でも間違えるとサーバー機能喪失で大変なのでコピペ。

iptables -P INPUT ACCEPT
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

#ルールクリア
iptables -F

#icmp(ping) と自端末からの入力を許可
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT

#Web、FTP、POP、smtp による接続を許可
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 110 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -j ACCEPT

#ssh による接続を許可
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

#TCP の接続開始と応答、FTP データなどを許可
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#ルールをセーブする
/etc/init.d/iptables save

vi /etc/sysconfig/iptablesを開いて
INPUT ACCEPT [51:3934](数字は各自異なる)になっていればおk
INPUT DROPの場合はACCEPTに変更

2時間目
★Apacheの設定

Apacheとはhttpを利用するために必要なプログラム。
yum -y install httpd
でインストール。
yum →インストール用コマンド
-y →確認メッセージをすべてYESにするオプション。
httpd →Apacheソフトウェアのインストーラー

Complete!で終了。

RUNレベル設定 →Linuxの動作モードレベルのこと。
Windowsスタータップと捉えておk。たいていは7つ設定。
基本は2-5に切り替えるが、実行させたら自動で割り当ててくれるので気にしなくていい。

/sbin/chkconfig httpd on
/sbin/chkconfig --list httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
ってなってればおk
できたら
/etc/init.d/httpd start
/etc/init.d/httpd restart
の順で実行。OKが出れば大丈夫。

★MySQLインストール

yum -y install mysql-serverを実行。
completeまで待つ。
出たら
vi /etc/my.cnfで設定ファイルを開く。
[mysqld]の下に下記追加。
default-character-set = utf8
skip-character-set-client-handshake
character-set-server = utf8
collation-server = utf8_general_ci
init-connect = SET NAMES utf8
さらに[mysqld_safe]の項目の下に追加。

[client]
default-character-set = utf8
[mysql]
default-character-set = utf8
[mysqldump]
default-character-set = utf8

そしてRUNレベル設定。
/sbin/chkconfig mysqld on
/sbin/chkconfig --list mysqld

mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
ってなってればおk。
そんでMySQLサーバー起動。
/etc/init.d/mysqld start
MySQL を起動中: [ OK ]
mysqldのdはdemon、裏側で実行するプログラム、プロセスと同意義。
MySQLの動作を支える縁の下の力持ち

そしたらプロンプトと同じように
mysql -u root
rootで入る。パスワードはまだ決めてませんので、ていうか
いままでのMySQLと動いている場所が違うので、既存ユーザーは使えません。
データもありません。これから作ります。


★vsftpdのインストール
サーバーにFTPプロトコルのリクエストを受け取るためのプログラム
HTTPとは別にアップロードに必要。
yum -y install vsftpd
completeで完了。

/sbin/chkconfig vsftpd on
/sbin/chkconfig --list vsftpd

vsftpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
こうなってたらおk

3時間目
★FFFTPにVMWareの接続設定を保存。
接続名はVMWare。IPアドレスはPuTTYのifconfigで確認だよ。
ユーザー名はPuTTYで決めた一般ユーザーとパスワードを使うよ。


☆うまく接続できなかった場合☆
vfftpdの設定不備かSElinuxの設定不備のどちらかの可能性高し。


★PHPインストール
yumで入れるとVer5.1になってしまうので、手動インストールで最新Verへ。
取得先のGPG-KEY 取得
rpm --import http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka
DL先の設定
vi /etc/yum.repos.d/utterramblings.repo
を実行し、開いたら中は何も無いので下記コピペ
内容はDL先をローカルからサーバーに変更する。
[utterramblings]
name=Jason's Utter Ramblings Repo
baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka
保存したらつぎ~

yum -y install php
でphpインストール。下も続けて1行ずつ
yum -y install php-devel
yum -y install php-common
yum -y install php-gd php-mbstring php-pdo php-mcrypt php-mysql php-ncurses php-xml

php -vでVer確認
PHP 5.2.16 (cli) (built: Dec 17 2010 14:09:03)
でおk

★Symfonyインストール
yum -y install php-pear
pear channel-discover pear.symfony-project.com
pear install symfony/symfony-1.0.20

symfony -V(大文字)で
symfony version 1.0.20と出れば完了

開発環境準備ここまで

PuTTY、VMWare、FFFTP終了。
VMWare再起動したらCent OSを削除。
自力でCent OS再インストールして。
今日やったこと全部自力でやり直せ。と。

4時間目

再インストール続き。
面倒だから工程省略。
IP変わらなかったんでPuTTY設定生きるよ。
PuTTYセキュリティ警告。出たらここははいで通した。めんどいから。

ここから地震のため混乱;

5時間目
2回目reboot忘れたからFTPログインできなかった・・・reboot2回目後正常。
作業完了。

6時間目
再インストール一通り終わったら、自分のIPをブラウザで入れてApacheが出るか確認。
出たら

cd /var/www/html/
でhtmlフォルダに移動。
vi index.html
作成したらhello! world!と入れて保存。
ls -al
でファイル確認。
IP開きなおすと、index.htmlで保存した文字が出てくる。

以上をゆっきー&ばおさんへレクチャーして終了。
バーミッションの設定とかどうなるのかなー。