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





TOPへ