CentOS5で新サーバ構築/(2)WWWサーバの立上げ

Last-modified: 2008-07-21 (月) 11:46:39 (5777d)

WWWサーバの立上げ

WWWサーバ構築に必要な主要アプリとしては、この2つである。

  • HTTP:Apache
  • DB:MySQL

まず、HTTPサーバとしてパッケージインストールを行う。

httpdのインストール

  • 必要なアプリはひとつずつインストールしていくのが、今回のサーバ構築の基本方針である。
  • パッケージ名は注意が必要。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サーバの起動

  • とりあえず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ファイルの設定

  • 実は、現サーバからhtml等のコンテンツを移してトップページを表示させると、いきなり文字化けする。(実は、この後新サーバでは「文字コードトラブル」の嵐が吹き荒れるのだが、これはほんの序の口)

   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

コンテンツファイルの戻し

  • 話は少し前後するが、現サーバからコンテンツを移行する。方法としては、
    • NFS機能を利用:新サーバに現サーバをmountして、ファイルを直接コピーする
    • 圧縮ファイル化:現サーバのファイルをtar.gz保存、新サーバで解凍展開する
       (サーバ間は、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/
    (以下略)

追加パッケージのインストール

  • 掲示板はCGIだが、phpも動いているので、連携のためいくつかのphpパッケージが必要。
    ①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サーバーの本格起動

①起動

[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

ファイアウオールの停止

  • 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

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS   リンク元