Apache-1.3.29 のインストール (環境:RedHat Linux 7.2)
Apacheとは代表的なWWWサーバ(Webサーバ)です。ここではホントの基本機能の実装しか説明していませんが、Apacheは様々なオプション機能がありますので、必要に応じてその説明もしたいと思います。
1. 最新版ソースの入手
※なぜプレインストール版のApacheを使わないのか?
Webサーバ(TCP port 80)は俗に80番攻撃と呼ばれ狙われるので
既知のApacheの脆弱性対策が施されている最新版を使わないと
乗っ取られる危険性があるからです。
〜 余談 〜 ※但しインターネットに公開しない場合、即ち自宅や会社のLANの中でだけ 使用するのなら、プレインストールの旧版を使っても構わない。 RedHat-7.2 の場合には、以下のバージョンが初期状態で入っていた。 Apache/1.3.12 mod_ssl/2.6.6 OpenSSL/0.9.5a mod_perl/1.24 プレインストール版(RPM パッケージ)の場合、以下のDirectory PATH が ソース版とは異なるが、設定自体は共通なので困らないと思う。 設定ファイル /etc/httpd/conf/httpd.conf 実行ファイル /usr/sbin/httpd 公開ディレクトリ /var/www/html/ |
〜 更に余談 〜 FreeBSDの場合も、RPM同様にパッケージからインストール出来ます。 /stand/sysinstall >Configure >Packages >FTP >Japan ftp.jp.freebsd.org >Packages selection >www (Web Utilities) >apache_1.3.19_1 >Packages Targets apache_1.3.19_1 /usr/ports/www/apache13 インストールは自動的に完了! |
さて、気を取り直して最新版のソース入手ですが、、、
ソース版の場合には、PATH は以下のようになります。
設定ファイル /usr/local/apache/conf/httpd.conf
実行ファイル /usr/local/apache/bin/httpd
公開ディレクトリ /usr/local/apache/htdocs/
ソース入手先:
http://www.apache.jp/dist/httpd/
apache_1.3.29.tar.gz をダウンロード
端末のPCにブラウザでダウンロードしたものを
FTPでWebサーバにアップしても良いし、
直接サーバにダウンロードしても良い。
/usr/local/src/ に配置
※ここでは端末PCからFTPでアップすることにした。
FFFTPの入手先と使用方法についてはこちらを参照。
※通常FTPでのアップはユーザーのホームディレクトリしか許可されない。
よってここではいったんホームディレクトリにアップして、移動した。
# mv /home/user1/apache_1.3.29.tar.gz /usr/local/src/
2. 解凍とインストール
※ダウンロードしたソースは圧縮されているので、まず解凍します。
# cd /usr/local/src/
# ls
apache_1.3.29.tar.gz
# gunzip -d apache_1.3.29.tar.gz
# tar -xvf apache_1.3.29.tar
# cd apache_1.3.29
apache_1.3.29 ディレクトリ内を見ると...
# ls
ABOUT_APACHE INSTALL README WARNING-WIN.TXT config.layout icons
Announcement LICENSE README-WIN.TXT cgi-bin configure logs
Announcement.de Makefile.tmpl README.configure conf htdocs src
# more INSATLL
INSTALL を読むと...下記の記述がある。
Installing the Apache 1.3 HTTP server with APACI
================================================
1. Overview for the impatient
--------------------------
$ ./configure --prefix=PREFIX
$ make
$ make install
$ PREFIX/bin/apachectl start
NOTE: PREFIX is not the string "PREFIX". Instead use the Unix
filesystem path under which Apache should be installed. For
instance use "/usr/local/apache" for PREFIX above.
まずこのサーバの環境に合わせてMakefileを生成する。
# ./configure
Configuring for Apache, Version 1.3.29
+ Warning: Configuring Apache with default settings.
+ This is probably not what you really want.
+ Please read the README.configure and INSTALL files
+ first or at least run './configure --help' for
+ a compact summary of available options.
+ using installation path layout: Apache (config.layout)
Creating Makefile
Creating Configuration.apaci in src
(中略)
先程は無かった Makefile が生成されています。
いよいよコンパイルします。処理結果は make.log に標準出力して保存します。
# make >& make.log
※ >& とは前のコマンドの結果をファイルに出力しろ、という命令です。
終わったらログを見ます。
# cat make.log
特にエラーが出ていなければOK。(エラーの対処はここでは割愛します)
最後にインストールします。
# make install >& makeinst.log
終わったらログをみます。
# cat makeinst.log
特にエラーは無く、最後にこう書かれています。
+--------------------------------------------------------+
| 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/ |
+--------------------------------------------------------+
よってApacheのインストールは成功しました。
なお、Apacheに関する詳細は以下の公式サイトをご覧下さい。
http://www.apache.jp/
3. 基本設定 (httpd.conf)
Apacheの設定は httpd.conf で行います。コメントが長いですが、
基本設定で必要な部分は多くありません。
(細かい設定をするとなると奥が深いですが...)
# cd /usr/local/apache/conf/
# ls
# vi httpd.conf
※ vi はテキストファイルの編集に使うエディタです。
行頭の番号はファイル内の行番号です。行番号を表示させるには、
vi で「:set nu」と入力して下さい。
また目指す行(例:52行目)に移動したい時は、vi で
「52G」と入力して下さい。
各行の # 以下は筆者のコメントです。
以下の行はdefaultで良いでしょう。
--------------------------------------------------------
# apache全体の配置を意味する
63 ServerRoot "/usr/local/apache"
# ログはここに溜まる
80 PidFile /usr/local/apache/logs/httpd.pid
# 重要:非公開サーバなどは別のポート番号に。
236 Port 80
# 重要:必ず低権限ユーザーで。(rootは不可)
250 User nobody
# 重要:必ず低権限グループで。
251 Group nobody
# 重要:コンテンツ(.html)はこの下に配置(公開される)
285 DocumentRoot "/usr/local/apache/htdocs"
# ユーザーに与える公開ディレクトリ
339 <IfModule mod_userdir.c>
340 UserDir public_html
341 </IfModule>
# アクセス制御用ファイル名指定
372 AccessFileName .htaccess
# CGIはここに配置
575 ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/"
以下の行は変更が必要です。既存の行はコメントアウトして(行頭に#を入れます)
すぐ下に追記します。
---------------------------------------------------------
# Webサイト管理者の連絡先
258 #ServerAdmin root@susanoo.takahara.local
259 ServerAdmin admin@hogehoge.ne.jp
# WebサイトのFQDN
277 #ServerName www.example.com
278 ServerName www.hogehoge.ne.jp
# トップページのファイル名を指定(ここでは index.htm を追記した)
365 DirectoryIndex index.html index.htm
# コメントアウトを外す(CGIを使う予定のある場合のみ)
786 AddHandler cgi-script .cgi
これ以外の行はオプション機能なので、必要に応じて設定して下さい。
基本的にはデフォルトのままで大丈夫です。
4. Apache の起動と停止
起動方法:
# /usr/local/apache/bin/apachectl start
/usr/local/apache/bin/apachectl start: httpd started
起動確認:
# ps -ef | grep httpd
root 8032 1 0 04:30 ? 00:00:00 /usr/local/apache/bin/httpd
nobody 8033 8032 0 04:30 ? 00:00:00 /usr/local/apache/bin/httpd
nobody 8034 8032 0 04:30 ? 00:00:00 /usr/local/apache/bin/httpd
nobody 8035 8032 0 04:30 ? 00:00:00 /usr/local/apache/bin/httpd
nobody 8036 8032 0 04:30 ? 00:00:00 /usr/local/apache/bin/httpd
nobody 8037 8032 0 04:30 ? 00:00:00 /usr/local/apache/bin/httpd
※rootで1個。nobodyで5個のプロセスが起動していれば正常。
nobodyは子プロセスで数は指定可能。
では早速ブラウザで閲覧してみましょう。
まずはLANの中から見ますので、プライベートアドレスでアクセスします。
http://192.168.1.5/ とアドレスを入力します。
Apacheの初期ページが表示されれば正常です。
あとは /usr/local/apache/htdocs/index.html のindex.htmlファイルを
自分の作ったコンテンツと差し替えましょう。
停止方法:
# /usr/local/apache/bin/apachectl stop
/usr/local/apache/bin/apachectl stop: httpd stopped
停止確認:
# ps -ef | grep httpd
root 8047 1060 0 04:34 pts/0 00:00:00 grep httpd
先のプロセスが起動していないのが判ります。
5. プレインストール版の削除
さて、無事にソースから最新版がインストールされたので
プレインストール版は不要になりました。パッケージを削除しましょう。
まずRPM(パッケージ)の情報を確認します。
# rpm -q apache
apache-1.3.12-25
# rpm -qi apache-1.3.12-25
Name : apache Relocations: (not relocateable)
Version : 1.3.12 Vendor: Red Hat, Inc.
Release : 25 Build Date: Thu 24 Aug 2000 04:45:27 AM JST
Install date: Wed 22 Oct 2003 11:31:05 PM JST Build Host: porky.devel.redhat.com
Group : System Environment/Daemons Source RPM: apache-1.3.12-25.src.rpm
Size : 1179253 License: Freely distributable and usable
Packager : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
Summary : The most widely used Web server on the Internet.
Description :
Apache is a powerful, full-featured, efficient and freely-available
Web server. Apache is also the most popular Web server on the
Internet.
Install the apache package if you need a Web server.
次に依存関係を調べます。
# rpm -qs apache-1.3.12-25
normal /etc/httpd/conf
normal /etc/httpd/conf/access.conf
normal /etc/httpd/conf/httpd.conf
(以下略)
# rpm -q --whatrequires apache-1.3.12-25
no package requires apache-1.3.12-25
ではアンインストールします。(オプション -e を実行)
# rpm -e apache-1.3.12-25
error: removing these packages would break dependencies:
apache = 1.3.12-25 is needed by mod_ssl-2.6.6-25
webserver is needed by mod_perl-1.24-4
依存関係があるのでエラーが出ました。
-nodeps オプションで強制削除も出来るようですが、ここでは mod_ssl と mod_perl
は
後日ソースから最新版を入れることとし、パッケージは削除することとします。
# rpm -e mod_ssl-2.6.6-25
cannot remove /etc/httpd/conf/ssl.key - directory not empty
cannot remove /etc/httpd/conf/ssl.crt - directory not empty
# rpm -e mod_perl-1.24-4
# rpm -e apache-1.3.12-25
cannot remove /var/www/html - directory not empty
cannot remove /var/www/cgi-bin - directory not empty
cannot remove /var/www - directory not empty
cannot remove /var/log/httpd - directory not empty
cannot remove /etc/httpd/conf - directory not empty
※空でないディレクトリは警告が出ているが、ファイルは後で直接削除します。
※ちなみにインストールする時は以下のように実行します。
# rpm -ivh XXXXXXXX.rpm
※アップグレードする時は以下のように実行します。
# rpm -Uvh XXXXXXXX.rpm