Apacheサーバを立ち上げよう♪ |
![]() 2002/01/25 M. YAMADA |
本ドキュメントは 情報実験I のオマケ課題です. なにか楽しめて為になる作業をしてもらおうということで, ホームページ(HP)作りをしてもらうことにしました. ただしせっかくLinux のインストールを してもらったので, HPを公開するための土台であるサーバのインストールから 行ってもらいます. ドキュメント自体は急拠作成したため かなり不親切な点があると思いますが, 実際に自分で立ち上げたサーバで情報発信するまでの過程を 楽しんで頂ければ幸いです.
今日の課題は "Apache" というWebサーバプログラムをインストールし, 自分で立ち上げたWebサーバに自分のWebページを公開することです. これより
Apache は Web サーバプログラムであると先程触れましたが, もう少し具体的な話をします. Web サーバとは, みなさんがWebブラウザ(インターネットエクスプローラーやネットスケープ等) を使って "http://hogehoge.co.jp/ のコンテンツを見せてくれ"と言う要求を した時, hogehoge.co.jp と言う名前を持つコンピュータの中で このような要求を待って働いているプログラムのことをいいます. 世の中にはこのような("http"と云うプロトコルを話して情報を提供する) 働きのプログラムが多くあります. そのなかで Apache は約5割のシェアを占ており, 最も普及しているWebサーバプログラムといえます.
これまでに
の様なロゴを
一度は見掛けたことがある(??)かと思います. なぜ Apacehe が
広く普及したのかを簡単に述べ, インストール作業に移ります.
Apache の優れているを列挙すると,
|
Apt は
Debian GNU/Linuxの
パッケージ(:あるツールに関連した,ファイルの集まり)管理ツールです.
Debian が提供しているパッケージ数は約4000にも及びます.
あるパッケージは他のパッケージが無いとうまく動作しなかったり,
あるいは逆に共存できないパッケージがあったりします.
膨大なパッケージの中から自分が必要としている
ものを選び, 保守管理するのはなかなか大変なことです.
たとえばあるソフトウェアを含むパッケージをインストールしようと思うと,
どのパッケージにそのソフトウェアが含まれるのか,
関連するパッケージは何か, 邪魔になるパッケージは何かを調べ,
必要なパーケッジをダウンロードし,
正しい順番でインストールしなくてはなりません.
このように管理していたのでは大変ですから (といっても数年前まで実際このようにしていた...), Debian では他のディストリビューションと比較して独自の パッケージシステムを採用することで, 管理に掛かるコストを軽減させています. Debian で配布しているパッケージ(debパッケージと呼ぶ) にはそれ自身にいろいろな情報(依存関係など)が格納されています. Apt はこの情報を使って自動的にプログラムのインストールや アップデートをするためのツールなのです.
こむずかしい(??)はなしはともかく, 実際に Apache をインストールしてみましょう.
まず自分のPCにどんなパッケージが入っているか調べてみます.
ターミナルを立ち上げ以下のコマンドを入力して下さい.
$
dpkg -l
なにやら文字がながれていきました. こういう場合は下のようにして眺めてみて下さい.
"less" こまんどの使い方はマニュアル(
$
dpkg -l | less
Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed |/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad) ||/ 名前 バージョン 説明 +++-==============-==============-============================================ ii a2ps 4.13-2 GNU a2ps 'Anything to PostScript' converter ii a2ps-perl-ja 1.44-1 perl version of Miguel Santana's a2ps (suppo ii aalib-bin 1.2-25 sample programs using aalib ii aalib1 1.2-25 ascii art library ii aalib1-dev 1.2-25 ascii art library, development kit ii aboot 0.7-1 Linux bootloader for the SRM console ii adduser 3.11.1 Add users and groups to the system. ii ae 962-26 Anthony's Editor -- a tiny full-screen edito ii alien 6.54 Install Red Hat, Stampede, and Slackware Pac |
次に apache が含まれるパッケージを探してみましょう.
以下のコマンドは管理者(root)権限で実行してください.
ちなみにUNIXの世界でプロンプト(入力待ちキャラクタ)が"#"(シャープ記号)
は管理者権限であることを暗に意味しています.
#
apt-get update
Hit ftp://ftp.ep.sci.hokudai.ac.jp stable/main Packages Hit ftp://ftp.ep.sci.hokudai.ac.jp stable/main Release Hit ftp://ftp.ep.sci.hokudai.ac.jp stable/contrib Packages : : Ign ftp://ftp.ep.sci.hokudai.ac.jp potato-jp/contrib Release Hit ftp://ftp.ep.sci.hokudai.ac.jp potato-jp/non-free Sources Get:6 ftp://ftp.ep.sci.hokudai.ac.jp potato-jp/non-free Release Ign ftp://ftp.ep.sci.hokudai.ac.jp potato-jp/non-free Release Reading Package Lists... Building Dependency Tree... |
$
apt-cache search apache$
apt-cache show パッケージ名$
apt-cache depends パッケージ名
いよいよインストールです(ながかった...).
#
apt-get install apache
# apt-get install apache Reading Package Lists... Done Building Dependency Tree... Done The following extra packages will be installed: apache-common The following NEW packages will be installed: apache apache-common 0 packages upgraded, 2 newly installed, 0 to remove and 25 not upgraded. Need to get 1218kB of archives. After unpacking 3523kB will be used. Do you want to continue? [Y/n] << Y と押す Get:1 ftp://ftp.ep.sci.hokudai.ac.jp stable/main apache 1.3.9-14 [409kB] Get:2 ftp://ftp.ep.sci.hokudai.ac.jp stable/main apache-common 1.3.9-14 [809kB] Fetched 1218kB in 0s (2976kB/s) 未選択パッケージ apache-common を選択しています。 (データベースを読み込んでいます... 現在 45831 個のファイルとディレクトリがインストールされています。) (.../apache-common_1.3.9-14_alpha.deb から) apache-common を展開しています... 未選択パッケージ apache を選択しています。 (.../apache_1.3.9-14_alpha.deb から) apache を展開しています... apache-common (1.3.9-14) を設定しています ... apache (1.3.9-14) を設定しています ... Adding webmaster to /etc/aliases ... Initializing apache config for immediate operation. Installing new configuration file /etc/apache/httpd.conf ... Installing new configuration file /etc/apache/access.conf ... Installing new configuration file /etc/apache/srm.conf ... Installing new configuration file /etc/apache/cron.conf ... The ServerAdmin is set to webmaster@jspace.ep.sci.hokudai.ac.jp. The DocumentRoot is set to /var/www. Installing your new homepage in /var/www. Finding DSO mods.........................................found. # LoadModule vhost_alias_module /usr/lib/apache/1.3/mod_vhost_alias.so # LoadModule env_module /usr/lib/apache/1.3/mod_env.so LoadModule config_log_module /usr/lib/apache/1.3/mod_log_config.so : : # LoadModule pgsql_auth_module /usr/lib/apache/1.3/mod_auth_pgsql.so # LoadModule eaccess_module /usr/lib/apache/1.3/mod_eaccess.so # LoadModule roaming_module /usr/lib/apache/1.3/mod_roaming.so Pondering......................................... done. /usr/sbin/apachectl start: httpd started |
#
ps aux|grep apacheroot 11482 0.0 1.8 28312 2384 ? S 02:08 0:00 /usr/sbin/apache www-data 11484 0.0 1.9 28376 2504 ? S 02:08 0:00 /usr/sbin/apache www-data 11485 0.0 1.9 28376 2504 ? S 02:08 0:00 /usr/sbin/apache www-data 11486 0.0 1.8 28328 2368 ? S 02:08 0:00 /usr/sbin/apache www-data 11487 0.0 1.8 28328 2368 ? S 02:08 0:00 /usr/sbin/apache www-data 11488 0.0 1.8 28328 2368 ? S 02:08 0:00 /usr/sbin/apache www-data 11493 0.0 1.9 28328 2408 ? S 02:16 0:00 /usr/sbin/apache |
$ telnet localhost 80 <== 入力 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. GET / <== "GET /" と入力してエンターキーを押す |
今度はブラウザにhttp://192.168.0.***/と 自分のPCのIPアドレスを入力し, 普通に見てみましょう. Welcome to Your New Home in Cyberspaceとかいう画面がでてきましたね?
せっかくインストールしたのですが
アンインストールの方法も知らなくてはなりません.
#
apt-get remove apache
で, 指定したパッケージ(いまはApache)と
それに依存したパッケージをアンインストールします.
この場合設定ファイルはアンインストールされません.
もし設定ファイル類もすべてアンインストールしたい場合は
#
apt-get remove --purge apache
としてください(今日は --purge を行うこと).
それでは次のSource コンパイルによるインストールへ移りましょう!!
(そのまえに少し休憩しましょうか... )
Source (プログラム)というのは, あるソフトウェアの作るために C言語などのプログラム言語で記述された"設計書"のようなファイル(の一群)です. さきほど行ったパッケージのインストールではこのソースプログラムを コンピュータの種類に応じてそのコンピュータが理解できる状態に 翻訳(コンパイル)した結果だきたファイル(バイナリファイル)の一群を もらってきていました. しかしバイナリパッケージで配布されていないプログラムを 使いたい場合は, Source プログラムを手にいれ, 自分のコンピュータ上で 使えるようにコンパイルしなくてはなりません. よくある場合は最新のソフトウェアをつかいたいという時ですが, 大学の研究室で作成され, 公開されているシミュレーションプログラムなどは まずパッケージ化されていることはなく, 自分でコンパイルしなくてはなりません.
今日はApache の最新版をダウンロードしてインストールしてもらいます. あまりに手取り足取りではつまらない(しドキュメントを作るのが大変なので...) 大雑把なインストール手順を示します. 他に参考になりそうなものとして, Apache本家インストールドキュメント, 北大地球惑星専攻WWWサーバ構築ドキュメント などがありますのでそちらも参考にどうぞ.
Apache に限らずソースをコンパイルしてインストールする場合 大体以下のような決まった流れがあります.
$ mkdir tmp $ mv apache_1.3.23.tar.gz tmp/. $ cd tmp ~/tmp$ ls -l -rw-r--r-- 1 mym mym 2177983 Jan 25 04:28 apache_1.3.23.tar.gz |
$
tar zxvf apache_1.3.23.tar.gz$
zcat apache_1.3.23.tar.gz | tar xv~/tmp$ ls -l 合計 2138 drwxr-xr-x 8 mym mym 1024 Jan 25 04:53 apache_1.3.23/ -rw-r--r-- 1 mym mym 2177983 Jan 25 04:28 apache_1.3.23.tar.gz |
~tmp/$ cd apache_1.3.23/ ~tmp/apache_1.3.23/$ ls ABOUT_APACHE KEYS README WARNING-WIN.TXT config.layout icons/ Announcement LICENSE README-WIN.TXT cgi-bin/ configure* logs/ INSTALL Makefile.tmpl README.configure conf/ htdocs/ sr |
#
mkdir /usr/local/apache~tmp/apache_1.3.23$ ./configure --prefix=/usr/local/apache/ ~tmp/apache_1.3.23$ make |
~tmp/apache_1.3.23# make install : : : +--------------------------------------------------------+ | You now have successfully built and installed the | | Apache 1.3 HTTP server. To verify that Apache actually | | works correctly you now should first check the | | (initially created or preserved) configuration files | | | | /usr/local/apache/conf/httpd.conf | | | and then you should be able to immediately fire up | | Apache the first time by running: | | | | /usr/local/apache/bin/apachectl start | | | Thanks for using Apache. The Apache Group | | http://www.apache.org/ | +--------------------------------------------------------+ |
# /usr/local/apache/bin/apachectl start /usr/local/apache/bin/apachectl start: httpd started |
$ ps aux|grep httpd root 16385 0.0 1.4 9272 1832 ? S 05:51 0:00 /usr/local/apache/bin/httpd nobody 16386 0.0 1.4 9288 1816 ? S 05:51 0:00 /usr/local/apache/bin/httpd nobody 16387 0.0 1.4 9288 1816 ? S 05:51 0:00 /usr/local/apache/bin/httpd nobody 16388 0.0 1.4 9288 1816 ? S 05:51 0:00 /usr/local/apache/bin/httpd nobody 16389 0.0 1.4 9288 1816 ? S 05:51 0:00 /usr/local/apache/bin/httpd nobody 16390 0.0 1.4 9288 1816 ? S 05:51 0:00 /usr/local/apache/bin/httpd |
# /usr/local/apache/bin/apachectl stop /usr/local/apache/bin/apachectl stop: httpd stopped |
※ネットスケープで Apache 本家のドキュメントや ローカルのドキュメントが英語で表示されてしまう場合, 『編集』→『設定』→Navigator 横の三角を押し, 言語で日本語を指定すると良い.
最低限修正すべき項目は,
項目 | 元の値 | 修正した値 |
---|---|---|
Port | 8080 | 80 |
User | nobody | www-data |
Group | "#-1" | www-data |
# /usr/local/apache/bin/apachectl start /usr/local/apache/bin/apachectl start: httpd started |
自分のホームディレクトリにpublic_html というディレクトリを 作成し, そのしたにindex.htmlと言う名前の HTMLファイルを作成してください. 内容は自己紹介など好きなものを作ってみてください. またたのグループのサーバにアクセスして 作成したWebページを見せてもらいましょう.
HTML の書き方は以下の資料を参考にしてみて下さい.