*WEBサーバ化計画 [#e4322af1]
-''概要''~
今回のテーマですが、LANDISKをWEBサーバ化して、インターネット上にホームページを~
公開することを目指します。~
ApacheはLANDISKに付属しますが、ここではdebianに含まれる物を使用することにしました。~
主な理由は……まぁ、個人的な趣味ですが、~
~
--debian環境とLANDISK環境を行き来しながら作業するのはなにかと面倒。~
また環境間の整合性を取るのが非常に大変なのでdebianに環境一本に統一したかった。~
~
--LANDISK付属のApacheは、コンフィグファイルが管理者の意図に反して、~
勝手にすりかわる場合がある。実際気が付つかず、管理画面が露出した状態になっていた。~
(汗;私の管理スキル不足)~
~
-
そういうことで、とにかくdebianのApacheを入れることにします。~
*''WEBサーバ導入準備'' [#t00e649b]
-''共有名『www』の作成''~
外部公開用のホームページエリアを『www』下に作ることにします。~
LANDISKの管理者用メニューから、「高度な設定」→「共有設定」→「追加」を選んで共有名『www』を作成します。~
~
この『www』ですが、debian環境からのアクセスの利便性を考えて、/share/www/へマウントします。~
(ちなみにLANDISK環境からは、/mnt/hda3/share/www/に見えます。)~
~
-''rootになる(おさらい)''~
telnetでloginして、sudoして、rootになります。~
#pre{{
Linux 2.4.21 (landisk) (0)
landisk login: &color(blue){landisk};
Password:
No directory, logging in with HOME=/
bash$
bash$ &color(blue){sudo su};
Password:
#
}}
-''debian_startスクリプトの変更''~
前述した/share/wwwのマウント処理と、LANDISK環境のapacheを停止する処理と~
debianのapacheを起動する処理をdebian_startスクリプトに追加します。~
「/mnt/hda3/debian_start」の内容~
#pre{{
#!/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
&color(red){/etc/rc.d/init.d/S95httpd stop ← LANDISK環境のapacheを停止};
&color(red){sleep 1;};
&color(red){$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 しておきます。~
#pre{{
#!/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
}}
&color(red){本スクリプトはLANDISKを停止する時(リブート/シャットダウン/電源スイッチをOFFする時)に実行してください。&br;debian_startでマウントしたprocや/shareをアンマウントせずにLANDISKを停止した場合、非常にまれですが、&br;ファイルシステムが壊れる可能性があるそうです。};
-''その他もろもろ''
#pre{{
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環境を起動''
#pre{{
# /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の導入 [#y8b85edc]
-''インストール''
#pre{{
landisk:/# apt-get install apache
}}
たったこれだけ…。しかもインストールが終わると、自動的に起動します。~
(ブラウザから、"http://LANDISKのローカルIPアドレス/"をアクセスで確認できます。)~
~
-''/etc/apache/httpd.conf (Apache設定ファイル)の編集''~
/share/www を http://hostname/www/でアクセスするように設定しました。~
お好みに応じて変更してください。~
#pre{{
&color(orange){144行目付近};
MinSpareServers &color(red){2}; &color(orange){←気持ち少なめに};
MaxSpareServers &color(red){4}; &color(orange){← 同上};
StartServers &color(red){2}; &color(orange){← 同上};
&color(orange){369行目付近};
&color(red){Alias /www/ "/share/www/"};
&color(red){<Directory "/share/www">};
&color(red){ Options MultiViews FollowSymLinks ExecCGI}; &color(orange){←CGIが使えるように(邪道?)};
&color(red){ AllowOverride All};
&color(red){ Order allow,deny};
&color(red){ Allow from all};
&color(red){</Directory>};
&color(orange){406行目付近};
<IfModule mod_dir.c>
DirectoryIndex index.html index.htm index.shtml index.cgi &color(red){index.php};
</IfModule>
&color(orange){752行目付近、};&color(red){ja};&color(orange){を先頭へ移動};
<IfModule mod_negotiation.c>
LanguagePriority &color(red){ja}; en da nl et fr de el it pl pt pt-br ltz ca es sv
</IfModule>
&color(orange){787行目付近、コメントを削除};
&color(red){AddHandler cgi-script .cgi .sh .pl};
&color(orange){815行目付近};
AddDefaultCharset &color(red){off};
}}
-''Apacheの再起動''~
httpd.confファイルの変更を反映するためにApacheを再起動します。
#pre{{
再起動前に念のため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