はじめに
ちょっと前に
さくらvpsの設定自分メモ - webサーバ(apache) - 入れて設定からの適当なドメインで適当なhtml表示してみる
で、yumでapacheをインストールしましたが、せっかくなのでソースからもインストールしておくメモ
ダウンロードURLはこのへんから好きなものを使います
インストール
======== ダウンロード&解凍 ======== # cd /usr/local/src/ # wget http://ftp.kddilabs.jp/infosystems/apache//httpd/httpd-2.2.26.tar.gz ※ 解凍 # tar -zxvf httpd-2.2.26.tar.gz ======== configure ======== ※ 移動してからconfigureで環境設定 # configureオプションについては↓で補足します # cd httpd-2.2.26 # ./configure --prefix=/usr/local/apache2 \ --enable-cache \ --enable-disk-cache \ --enable-mem-cache \ --enable-logio \ --enable-headers \ --enable-ssl \ --enable-rewrite \ --enable-so checking for chosen layout... Apache checking for working mkdir -p... yes checking build system type... x86_64-unknown-linux-gnu ・・・省略・・・ checking openssl/ssl.h presence... no checking for openssl/ssl.h... no no OpenSSL headers found checking for SSL-C version... checking sslc.h usability... no checking sslc.h presence... no checking for sslc.h... no no SSL-C headers found configure: error: ...No recognized SSL/TLS toolkit detected ※エラーなのでOpenSSLを追加する # sudo yum install openssl-devel # ./configure --prefix=/usr/local/apache2 \ --enable-cache \ --enable-disk-cache \ --enable-mem-cache \ --enable-logio \ --enable-headers \ --enable-ssl \ --enable-rewrite \ --enable-so ======== make & make install ======== ※ makeでコンパイル、インストールを行う # make # make install ======== 確認 ======== ※ /usr/sbin/httpdのほうが立ち上がってると立ち上がらない # ps aux | grep httpd root 1151 0.0 0.2 177872 4304 ? Ss Mar20 0:21 /usr/sbin/httpd apache 5065 0.0 0.1 177872 3220 ? S Mar23 0:00 /usr/sbin/httpd apache 5066 0.0 0.1 177872 3260 ? S Mar23 0:00 /usr/sbin/httpd apache 5067 0.0 0.1 177872 3260 ? S Mar23 0:00 /usr/sbin/httpd apache 5068 0.0 0.1 177872 3260 ? S Mar23 0:00 /usr/sbin/httpd apache 5069 0.0 0.1 177872 3260 ? S Mar23 0:00 /usr/sbin/httpd apache 5070 0.0 0.1 177872 3200 ? S Mar23 0:00 /usr/sbin/httpd apache 5071 0.0 0.1 177872 3244 ? S Mar23 0:00 /usr/sbin/httpd apache 5072 0.0 0.1 177872 3220 ? S Mar23 0:00 /usr/sbin/httpd apache 6682 0.0 0.1 177872 3196 ? S Mar24 0:00 /usr/sbin/httpd root 14448 0.0 0.0 107468 924 pts/0 S+ 04:05 0:00 grep httpd ※ エラーになる # /usr/local/apache2/bin/apachectl start (98)Address already in use: make_sock: could not bind to address [::]:80 (98)Address already in use: make_sock: could not bind to address 0.0.0.0:80 no listening sockets available, shutting down Unable to open logs ※ /usr/sbin/httpdのほう落としてから再度立ち上げる # apachectl stop # /usr/local/apache2/bin/apachectl start # ps aux | grep httpd root 14460 2.5 0.1 56676 2776 ? Ss 04:05 0:00 /usr/local/apache2/bin/httpd -k start daemon 14461 0.0 0.0 56676 1744 ? S 04:05 0:00 /usr/local/apache2/bin/httpd -k start daemon 14462 0.0 0.0 56676 1744 ? S 04:05 0:00 /usr/local/apache2/bin/httpd -k start daemon 14463 0.0 0.0 56676 1744 ? S 04:05 0:00 /usr/local/apache2/bin/httpd -k start daemon 14464 0.0 0.0 56676 1744 ? S 04:05 0:00 /usr/local/apache2/bin/httpd -k start daemon 14465 0.0 0.0 56676 1744 ? S 04:05 0:00 /usr/local/apache2/bin/httpd -k start root 14467 0.0 0.0 107468 928 pts/0 S+ 04:05 0:00 grep httpd
途中で「configure: error: ...No recognized SSL/TLS toolkit detected」となりましたが
こちらを参考にしてOpenSSLを追加してから再度実行したらうまく行きます。
ブラウザで確認
こちらも以前、
「お名前.comで取得したドメインをさくらVPSで使う的なメモ」
でドメインは取得して設定してあるので取得したドメインでアクセスしてみます
こんな感じで表示されればひとまずオッケー
以降はついでにconfigureオプションとmoduleについてメモっっておきます
configureオプションについて
指定の仕方
・組み込みたいmoduleを--enableオプションで指定する
・mod_logioを見込みたい場合、mod_を除いた「logio」を取って--enable-logioと指定する
今回追加したのmoduleの説明
オプション | 説明 |
--prefix=PREFIX | Apacheインストールフォルダのパスを指定 デフォルトは/usr/local/apache2 |
--enable-cache | ドキュメントキャッシュ機能を有効にする |
--enable-disk-cache | ディスクキャッシュに対応させる |
--enable-mem-cache | メモリキャッシュに対応させる |
--enable-logio | 実際の送信転送量、受信転送量を access.logへ記録する |
--enable-headers | httpヘッダーのコントロールを有効にする |
--enable-ssl | SSL/TLSのサポートを有効にする |
--enable-rewrite | アクセスURLの書き換えや環境変数に応じたリダイレクトを可能にする |
--enable-so | DSO(Dynamic Shared Objects)モジュールを有効にする staticリンクではなくダイナミックリンクにすることでhttpdのサイズを小さくできる |
moduleについて
静的モジュールと動的モジュールについてはこんな感じ
静的(static) | 動的(dynamic) | |
追加方法 | ソースからのインストール時に、 configureのオプションとして追加 |
DSO、apxsを用いて モジュールソースをインストールする httpd.confのLoadModuleディレクティブで指定する |
特徴 | ・Apache 本体にモジュールを組み込む方法 ・Apache が起動時に自動的に組み込まれる ・httpd.conf ファイルにLoadModuleを設定しない ・不要なモジュールを取り除くためにはリコンパイルが必要 |
・起動時に動的に組み込む方法 ・コンパイルされたモジュールは modules ディレクトリにインストールされる ・httpd.conf ファイルの LoadModuleディレクティブによる設定ができる ・再びコンパイルせずに自由に追加できる。 |
moduleの調べ方
※静的モジュールの確認方法 # apachectl -l Compiled in modules: core.c prefork.c http_core.c mod_so.c ※ 静的+動的モジュールの確認 # apachectl -M Loaded Modules: core_module (static) mpm_prefork_module (static) http_module (static) so_module (static) ・・・省略・・・ disk_cache_module (shared) cgi_module (shared) version_module (shared) Syntax OK ※ もしくはgrepなどでhttpd.confのLoadModuleディレクティブを確認 # grep -rn 'LoadModule' /etc/httpd/conf/httpd.conf 150:LoadModule auth_basic_module modules/mod_auth_basic.so 151:LoadModule auth_digest_module modules/mod_auth_digest.so ・・・省略・・・
参考サイト
proxyやsslのモジュールを使ってみる
→http://www.atmarkit.co.jp/ait/articles/1107/29/news121.html
Apache2.2のconfigureオプション
→http://solaris10.sakura.ne.jp/index.cgi?page=apache2.2-configure
Apache->インストール
→http://www.slogical.co.jp/tech/apache_install.html
Apacheに組込まれているモジュール確認
→http://d.hatena.ne.jp/jitsu102/20080524/1211608688
Apache に組み込む方法(静的と動的)
→http://wiki.minaco.net/index.php?Apache%2F%E9%9D%99%E7%9A%84%E5%8B%95%E7%9A%84