WEBサーバ化計画 Edit

  • 概要
    今回のテーマですが、LANDISKをWEBサーバ化して、インターネット上にホームページを
    公開することを目指します。
    ApacheはLANDISKに付属しますが、ここではdebianに含まれる物を使用することにしました。
    主な理由は……まぁ、個人的な趣味ですが、

    • debian環境とLANDISK環境を行き来しながら作業するのはなにかと面倒。
      また環境間の整合性を取るのが非常に大変なのでdebianに環境一本に統一したかった。

    • LANDISK付属のApacheは、コンフィグファイルが管理者の意図に反して、
      勝手にすりかわる場合がある。実際気が付つかず、管理画面が露出した状態になっていた。
      (汗;私の管理スキル不足)

    そういうことで、とにかくdebianのApacheを入れることにします。

WEBサーバ導入準備 Edit

  • 共有名『www』の作成
    外部公開用のホームページエリアを『www』下に作ることにします。
    LANDISKの管理者用メニューから、「高度な設定」→「共有設定」→「追加」を選んで共有名『www』を作成します。

    この『www』ですが、debian環境からのアクセスの利便性を考えて、/share/www/へマウントします。
    (ちなみにLANDISK環境からは、/mnt/hda3/share/www/に見えます。)

  • rootになる(おさらい)
    telnetでloginして、sudoして、rootになります。
    Linux 2.4.21 (landisk) (0)
    
    
    landisk login: landisk
    Password:
    No directory, logging in with HOME=/
    bash$
    bash$ sudo su
    Password:
    #
    
  • debian_startスクリプトの変更
    前述した/share/wwwのマウント処理と、LANDISK環境のapacheを停止する処理と
    debianのapacheを起動する処理をdebian_startスクリプトに追加します。
    「/mnt/hda3/debian_start」の内容
    #!/bin/sh
    root=/mnt/hda3/debian
    
    if [ ! -e $root/proc/cpuinfo ]; then
        $root/usr/sbin/chroot $root mount -t proc proc /proc
    fi
    
    if [ ! -e $root/share/disk ]; then
        mount --bind /mnt/hda3/share $root/share
    fi
    
    /etc/rc.d/init.d/S95httpd stop	                        ← LANDISK環境のapacheを停止
    sleep 1;
    $root/usr/sbin/chroot $root /usr/sbin/apachectl start   ← debianのapacheを起動
    
    $root/usr/sbin/chroot $root /bin/bash -l
    
  • debian_stopスクリプト
    debian_stopを作成し、chmod +x debian_stop しておきます。
    #!/bin/sh
    
    root=/mnt/hda3/debian
    
    PATH=$PATH:/usr/local/bin
    export PATH
    
    $root/usr/sbin/chroot $root /usr/sbin/apachectl stop
    sleep 1;
    
    $root/usr/sbin/chroot $root /usr/local/bin/vncserver -kill :1
    $root/usr/sbin/chroot $root /usr/local/bin/vncserver -kill :2
    $root/usr/sbin/chroot $root /usr/local/bin/vncserver -kill :3
    
    killall -HUP debian_start
    sleep 1;
    
    umount $root/proc
    umount $root/share
    
    本スクリプトはLANDISKを停止する時(リブート/シャットダウン/電源スイッチをOFFする時)に実行してください。
    debian_startでマウントしたprocや/shareをアンマウントせずにLANDISKを停止した場合、非常にまれですが、
    ファイルシステムが壊れる可能性があるそうです。
  • その他もろもろ
    shareディレクトリを作ってない場合。
    # mkdir /mnt/hda3/debian/share 
    
    /mnt/hda3/debian/etc/resolv.conf、hosts、hostnameがない場合はそれぞれ、
    # cp /etc/hosts        /mnt/hda3/debian/etc/
    # cp /etc/resolv.conf  /mnt/hda3/debian/etc/
    # hostname       >     /mnt/hda3/debian/etc/hostname
    
  • debian環境を起動
    # /mnt/hda3/debian_start
    Shutting down http: killall: Could not kill pid '455': No such process
    
    /mnt/hda3/debian/usr/sbin/chroot: cannot execute /usr/sbin/apachectl: No such f
    ile or directory
    landisk:/#
    

debian版Apacheの導入 Edit

  • インストール
    landisk:/# apt-get install apache
    
    たったこれだけ…。しかもインストールが終わると、自動的に起動します。
    (ブラウザから、"http://LANDISKのローカルIPアドレス/"をアクセスで確認できます。)

  • /etc/apache/httpd.conf (Apache設定ファイル)の編集
    /share/www を http://hostname/www/でアクセスするように設定しました。
    お好みに応じて変更してください。
    144行目付近
    MinSpareServers 2    ←気持ち少なめに
    MaxSpareServers 4    ← 同上
    StartServers 2       ← 同上
    
    369行目付近
    Alias /www/ "/share/www/"
    <Directory "/share/www">
        Options MultiViews FollowSymLinks ExecCGI     ←CGIが使えるように(邪道?)
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
    
    406行目付近
    <IfModule mod_dir.c>
        DirectoryIndex index.html index.htm index.shtml index.cgi index.php
    </IfModule>
    
    752行目付近、jaを先頭へ移動
        <IfModule mod_negotiation.c>
            LanguagePriority ja en da nl et fr de el it pl pt pt-br ltz ca es sv
        </IfModule>
    
    787行目付近、コメントを削除
        AddHandler cgi-script .cgi .sh .pl 
    
    815行目付近
    AddDefaultCharset off
    
  • Apacheの再起動
    httpd.confファイルの変更を反映するためにApacheを再起動します。
    再起動前に念のためhttpd.confに文法エラーがないかチェックします。
    
    landisk:/etc/apache# /usr/sbin/apachectl configtest
    [Fri Apr 23 23:07:03 2004] [alert] apache: Could not determine the server's
    fully qualified domain name, using 192.168.0.80 for ServerName
    Syntax OK
    
    landisk:/etc/apache# /usr/sbin/apachectl restart  ← 再起動  
    /usr/sbin/apachectl restart: httpd restarted
    
Counter: 3697, today: 1, yesterday: 0

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-06-13 (火) 20:02:26 (6534d)