#norelated
* Apacheのインストール〜Debian,RedHat系〜 [#ye0a3b96]

** 経緯 [#i227b54f]
- インストールする度に、結局調べたりしていて、何かに残さないと意味がないため。なので自分のノウハウというよりも、単なるログであって、参考にしたリンク集でもある。ことに今回、DebianとCentOSで1.3系から2.2系へ移行した記念でもある。

** 準備 [#qadc5178]
- SSLを使わなければ不要
-- Debian
---そのままconfigureすると
 No recognized SSL/TLS toolkit detected
とでるので先にSSLをいれる
 apt-get update
 apt-get install openssl libssl-dev
-- RedHat系
---RPMで先にapacheが入っているか確認
 rpm -qa | grep apache
入ってたら消してから入れる。
 yum -y install openssl-devel


** ソースの入手 [#c7ef36f9]
- 最新のソースを入手する。wgetのPオプションで取得先ディレクトリを指定する。シンボリックリンクにすることでバージョンアップを容易にする。
 wget -P /usr/local/src http://ftp.riken.jp/net/apache/httpd/httpd-2.2.8.tar.gz
 cd /usr/local/src/
 tar xzvf httpd-2.2.8.tar.gz
 ln -sfn /usr/local/httpd-2.2.8 /usr/local/httpd

** コンパイル [#z39a0864]
 cd httpd-2.2.8
 
CGI・SSI・SSL・DAVなし
 ./configure --prefix=/usr/local/httpd \
 --enable-so \
 --disable-cgi \
 --disable-include \
 --disable-dav \
 --disable-ssl \
 --enable-encoding \
 --enable-rewrite=shared \
 --enable-proxy=shared \
 --with-mpm=prefork

SSLあり
 --enable-ssl=shared \

DAVあり
 --enable-encoding \
 --enable-dav=shared \
 --enable-dav_fs=shared \


--prefix:お決まり。インストール先の指定
--enable-so:DSOを有効。自分にとってはほぼ必須
--enable-ssl:SSLを有効に。必要があれば。
--enable-rewrite:URLの書き換えを有効に。
--enable-proxy:プロキシサーバを有効に。
--enable-encoding:なんだっけ;昔からONにしているで(危険)
--enable-dav:Web-DAVを有効に。
--enable-dav_fs:Web-DAV
--with-mpm=prefork:Apacheをあらかじめforkしておく、というApache伝統の動作に。workerにするとスレッド動作になり速いが、PHPがスレッドセーフじゃないらしく安全のためpreforkに。
--with-expat=builtin:64bit環境ではつけないとダメかも。http://d.hatena.ne.jp/defiant/参照。

- =sharedにするとDSOで組み込まれる。つまり動的。

あとは、
 make 
 make install

** 設定 [#v4c6615d]
-/usr/local/httpd/conf/httpd.conf
--ServerRoot
--User httpd,Group httpd
 ログインできない&ホームディレクトリのないhttpd:httpdユーザの作成
 groupadd httpd
 useradd -g httpd -d /var/empty/httpd -s /sbin/nologin httpd

--ServerAdmin
--ServerName
--DocumentRoot
--/ディレクティブを安全に
 <Directory />
    Options None
    AllowOverride None
    Order deny,allow
    Deny from all
 </Directory>
--ソースを置くディレクティブを適切に
 <Directory "/hoge/huga">
    Options -Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
 </Directory>
--"htdocs"ディレクティブをコメントアウト
--"cgi-bin"ディレクティブをコメントアウト
--必要ならエイリアスを使って(<IfModule alias_module>内)
 Alias /dest /src

-/usr/local/httpd/conf/extra/httpd-default.conf
-- KeepAlive On
-- ServerTokens Prod
-- ServerSignature Off
-- HostnameLookups Off
--- IPからの逆引きを行うか。重い処理なのでOFF。その分ログはさびしいかも?

-/usr/local/httpd/conf/extra/httpd-mpm.conf
Apacheの動作モデルにあったものを設定。
今回はworkerなので<IfModule mpm_worker_module>ディレクティブを修正

** 起動とか [#r6111d3c]
- 設定のチェック
 /usr/local/httpd/bin/apachectl configtest
- 安全な再起動
 /usr/local/httpd/bin/apachectl graceful
- 安全な停止
 /usr/local/httpd/bin/apachectl graceful-stop

-自動起動スクリプト
--Debian
 install -o root -g root -m 755 /usr/local/httpd/bin/apachectl /etc/init.d/apache
 update-rc.d apache defaults 85 15
 /etc/init.d/apache start
パッケージで入れてたら
 /etc/init.d/httpd start


--RedHat系
ソース内のスクリプトを修正する。
修正するのは、パスとかchkconfigのランレベルとか。
 cp /usr/local/src/httpd-2.2.8/build/rpm/httpd.init /etc/rc.d/init.d/httpd 
 chmod 755 /etc/rc.d/init.d/httpd
 /sbin/chkconfig --add httpd
 /sbin/chkconfig --level 2345 httpd on
 /sbin/chkconfig --list httpd
 /etc/rc.d/init.d/httpd restart

** 困ったこと [#f6a33b51]
-MIMEの設定、パーミッションの設定が正しいのになぜか画像が表示できない
--http://bayani.jp/manual2.2/faq/error.html を参照。
 EnableSendfile Off
をhttpd.confに追加

** パッケージで入れる [#u3acf1ef]
- yumなら
 yum install httpd
aptなら
 apt-get install apache2 apache2-mpm-worker apache2.2-common apache2-utils
-- phpを入れる場合、preforkで動作するので「apache2-mpm-worker」は不要

*** 起動 [#fc8a259b]
 /etc/init.d/apache2 start
or
 /etc/init.d/httpd start

*** 設定 [#v3f000b8]
- 少なくともdebianのapacheの場合、httpd.confではなくapache2.confに設定を書く模様

** 参考 [#j93349d6]
- 公式サイトのソース http://www.apache.org/dist/httpd/
- 公式Apache2.2 http://httpd.apache.org/docs/2.2/ja/install.html
- 主にコンパイルオプション http://itbtech.itboost.co.jp/inst/inst_31.php
- @IT Apache2.2 http://www.atmarkit.co.jp/flinux/special/apache22/apache01.html
- @IT Apache2.0 http://www.atmarkit.co.jp/flinux/rensai/apache2_01/apache01c.html
- 自宅サーバー Fedora Core Apache2.2 http://honana.com/apache_22
- 自宅サーバー Debian http://debianj.com/apache_20_install
- 公式のディレクティブのマニュアル http://httpd.apache.org/docs/2.2/ja/howto/htaccess.html
- Apache2.xインストール http://oku.edu.mie-u.ac.jp/~okumura/linux/?Apache%202
- Apache少しこった設定 http://yosemite.una-g.to/apache/conf.html
- エラーへの対処集 http://blog.development-network.net/ung/2006/11/post_60.html

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS