#navi(CentOS5で新サーバ構築)
*WWWサーバの立上げ [#z5045a8f]
WWWサーバ構築に必要な主要アプリとしては、この2つである。
-- HTTP:Apache
-- DB:MySQL
まず、HTTPサーバとしてパッケージインストールを行う。
#contents
**httpdのインストール [#he814f03]
- 必要なアプリはひとつずつインストールしていくのが、今回のサーバ構築の基本方針である。
- パッケージ名は注意が必要。HTTPサーバは当然のごとく「Apache」である。ところが、Linuxのパッケージ名は、「Apache」ではなく、「httpd」だった。(こうした情報は、どこに書いてあるのかな? 解説記事がないと迷うことになるのだが。)
- まずパッケージがインストールされているかどうか確認する。
[root@kuraric5 ~]# rpm -qa httpd
- 何も結果表示されないということは、インストールされていないということ(当たり前だが)で、yumでインストールをはじめる。
[root@kuraric5 ~]# yum -y install httpd
Loading "installonlyn" plugin
【中略】
================================================
Package Arch Version Repository Size
================================================
Installing:
httpd i386 2.2.3-7.el5.centos updates 1.1 M
Transaction Summary
=================================================
Install 1 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 1.1 M
Downloading Packages:
(1/1): httpd-2.2.3-7.el5. 100% |=========================| 1.1 MB 00:48
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: httpd ######################### [1/1]
Installed: httpd.i386 0:2.2.3-7.el5.centos
Complete!
**WWWサーバの起動 [#ddada454]
- とりあえずhttpdを起動する。警告がでるが、これは設定が不十分のためで、TEST Page表示は問題なし。
[root@kuraric5 conf]# /etc/rc.d/init.d/httpd start
httpd を起動中: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
[ OK ]
・常時起動にしておく
[root@kuraric5 conf]# chkconfig httpd on
**confファイルの設定 [#u477bc6b]
- 実は、現サーバからhtml等のコンテンツを移してトップページを表示させると、いきなり文字化けする。(実は、この後新サーバでは「文字コードトラブル」の嵐が吹き荒れるのだが、これはほんの序の口)
&ref(top_char_error.jpg,,50%,top_error);
&ref(top_char_error.jpg,,50%,top_error);
- 現サーバの文字コードはEUC-Jである。また、各htmlファイルの先頭には、以下のような文字コードセットの記載がある。
<META http-equiv=Content-Type content="text/html; charset=euc-j">
- パソコンのブラウザは、この文字指定を元にエンコードしている。ところが、新サーバのhttpdの設定ファイル(/etc/httpd/conf/httpd.conf)には、文字指定を「UTF-8」に変更するようになっており、強制的に文字コードセットを書き換えている。
<META http-equiv=Content-Type content="text/html; charset=utf-8">
- 指定だけUTF-8に変えても、ファイル本体の文字コード自体はEUCのままだから、当然文字化けするという仕掛けである。ブラウザの文字コード設定(「表示」→「文字エンコード」)を、強制的にEUCに指定すればちゃんと表示できるから間違いない。
- したがって、httpdは余分なことをしないように、文字指定を削除(コメント化)する
[root@kuraric5 conf]# vi /etc/httpd/conf/httpd.conf
【該当部分行頭に#をつける】
#--2007/7/27 OFF ------------------------------------------------
#AddDefaultCharset UTF-8
- confを書き換えたら、ちゃんと、httpdの再起動して変更内容を有効にしておく必要がある。
[root@kuraric5 conf]# /etc/rc.d/init.d/httpd restart
httpd を停止中: [ OK ]
httpd を起動中: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
**コンテンツファイルの戻し [#f37367e3]
- 話は少し前後するが、現サーバからコンテンツを移行する。方法としては、
-- NFS機能を利用:新サーバに現サーバをmountして、ファイルを直接コピーする
-- 圧縮ファイル化:現サーバのファイルをtar.gz保存、新サーバで解凍展開する &br;
(サーバ間は、WinSCPなど利用してクライアントPC経由とするのが簡単)
- 今回は、後者の方法をとる。あらかじめ/var/www配下を丸ごとパックして、そのファイルをもどす場合の手順である。
【現サーバ側】
[root@kurarin]# cd /var
[root@kuraric5 var]# tar cvf www_cent5.tar www/
【新サーバ側】
[root@kuraric5]# cd /var
[root@kuraric5 var]# cp -arp /home/eizo/www_cent5.tar .
[root@kuraric5 var]# rm -rf www/
[root@kuraric5 var]# tar xvf www_cent5.tar
www/
www/usage/
(以下略)
**追加パッケージのインストール [#h5b83608]
- 掲示板はCGIだが、phpも動いているので、連携のためいくつかのphpパッケージが必要。&br;
①php、php-mbstringインストール
[root@kuraric5 www]# yum -y install php php-mbstring
Loading "installonlyn" plugin
【中略】
================================================
Package Arch Version Repository Size
================================================
Installing:
php i386 5.1.6-12.el5 updates 1.2 M
php-mbstring i386 5.1.6-12.el5 updates 967 k
Installing for dependencies:
php-cli i386 5.1.6-12.el5 updates 2.2 M
php-common i386 5.1.6-12.el5 updates 139 k
Transaction Summary
=================================================
Install 4 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
【中略】
Installed: php.i386 0:5.1.6-12.el5 php-mbstring.i386 0:5.1.6-12.el5
Dependency Installed: php-cli.i386 0:5.1.6-12.el5 php-common.i386 0:5.1.6-12.el5
Complete!
②perl関係の調整
- Perlコマンドへ/usr/local/bin/perlでもアクセスできるようにする。つまり、/usr/local/bin/perlから/usr/bin/perlへリンクをはり、Perlのパスを確認する。
[root@kuraric5 www]# ln -s /usr/bin/perl /usr/local/bin/perl
[root@kuraric5 www]# whereis perl
perl: /usr/bin/perl /usr/local/bin/perl /usr/share/man/man1/perl.1.gz
- 以上で準備完了、コンテンツは現サーバからそのまま丸ごとコピーだ!
[root@kuraric5 www]# ls -l
合計 24
drwxr-xr-x 5 root root 4096 8月 5 19:52 cgi-bin
drwxr-xr-x 3 root root 4096 8月 5 06:17 error
drwxr-xr-x 16 root root 4096 8月 5 19:52 html
drwxr-xr-x 3 root root 4096 8月 10 15:37 icons
drwxr-xr-x 14 root root 4096 8月 5 06:18 manual
drwxr-xr-x 2 67 root 4096 8月 5 05:32 usage
**Webサーバーの本格起動 [#a5e31199]
①起動
[root@kuraric5 www]# /etc/rc.d/init.d/httpd start
httpd を起動中: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
[ OK ]
②常時起動に設定変更
[root@kuraric5 www]# chkconfig httpd on
[root@kuraric5 www]# chkconfig --list httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
**ファイアウオールの停止 [#md3182f8]
- HPにアクセスしてみたが、トップページが表示できない? サーバ宛のpingはOK、これは焦った(^^;) 設定上の致命的ミスかと思った。
[root@kuraric5 html]# ping 192.168.1.250
PING 192.168.1.250 (192.168.1.250) 56(84) bytes of data.
64 bytes from 192.168.1.250: icmp_seq=1 ttl=64 time=0.154 ms
64 bytes from 192.168.1.250: icmp_seq=2 ttl=64 time=0.070 ms
- なんと、Firewallが動作していた!! ルータ自体がFirewallになので、サーバ自体での機能は不要と考えている。ところが、インストール時の調整が甘かったせいか有効になってしまったようだ。
- iptablesの動作確認すると、確かに有効になってる!! あわてて、OFFにする。これで、無事にトップページが表示できた。
[root@kuraric5 html]# chkconfig --list iptables
iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@kuraric5 html]# chkconfig iptables off
[root@kuraric5 html]# chkconfig --list iptables
iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off
#navi(CentOS5で新サーバ構築)