インストールオプション
・ --prefix=/usr/local/httpd
apache をインストール先を指定
・ --enable-so
モジュールを有効化
・ --enable-headers
HTTP リクエスト/応答ヘッダの追加・置換・削除が可能となります。
・ --enable-dav
WebDAV を有効化します。http/https 経由でファイル・フォルダを共有することができます。
・ --enable-deflate
mod_deflate を有効にします。データを送信する前に圧縮してデータ転送の効率化を図ります。
・ --enable-rewrite
リクエストされた URL の動的書き換えを行うモジュール。=shared としてコンパイルすることで、DSO モジュールとして読み込み
・ --with-ssl=/usr/local/openssl
SSLを有効化します。ソースインストールしたOpenSSL のパスを指定
・ --with-suexec-caller=apache
suexec によって CGI などのスクリプトを第三者に不正に実行されないようにします。(ユーザーサイト、VirtualHost 利用時)
ここでは httpdの実行ユーザ(「apache」)がユーザの代わりにスクリプトを実行しますので「apache」を指定
・ --with-suexec-docroot=/home
suexecが適用されるディレクトリを指定します。ユーザーディレクトリの格納されている /home を指定、/home 以下にある実行可能なスクリプトが suexec の影響を受ける
・ --with-suexec-logfile=/var/log/httpd/suexec_log
suexec のログを出力するパスの指定です。access_log 等と同じ場所を指定
・--enable-mods-shared
http://tt4cs.blogspot.jp/2013/01/how-to-enable-dso-for-apache-2.4.html
・apache + wevdav + svn やるには
Apacheをソースからインストールしていた場合、【DAVを有効にしているか(–enable-davオプション)】【Berkeley DBを有効にしているか(–with-berkeley-dbオプション)】の2点を行っていないと、次のsubversionコンパイルでエラーになります。
http://www.playstudy.net/wiki/server/subversion-install.html
"--with-berkeley-db"
\
# <- これと
"--enable-dav"
\
# <- これがあればOK
・apacheとtomcatをmod_proxy_ajpで連携するには
--enable-proxy-ajp
--enable-proxy
confに
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
SetEnvIf Request_URI "\.(gif)|(jpg)|(png)quot; object-is-image
と指定し、
CustomLog /var/log/httpd/access_log common env=!object-is-image
と指定することにより、画像取得ログを省略することができます。
エラー画面に、Apacheのバージョン情報などを表示しないようにするセキュリティ設定
ServerSignature On
↓
ServerSignature Off
デフォルトでFullとかなってるからProductOnlyに変更し極力第三者に情報を渡さないようにし
セキュリティ設定
ServerTokens Full
↓
ServerTokens ProductOnly
変更前確認
[root@buront java]# wget -S http://localhost
--2014-04-09 13:07:07-- http://localhost/
localhost をDNSに問いあわせています... ::1, 127.0.0.1
localhost|::1|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています...
HTTP/1.1 200 OK
Date: Wed, 09 Apr 2014 04:07:07 GMT
Server: Apache/2.0.55 (Unix) mod_jk/1.2.21 ←コイツ
Connection: close
Content-Type: text/html;charset=ISO-8859-1
以下略
変更後確認
[root@buront java]# wget -S http://localhost
--2014-04-09 13:08:21-- http://localhost/
localhost をDNSに問いあわせています... ::1, 127.0.0.1
localhost|::1|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています...
HTTP/1.1 200 OK
Date: Wed, 09 Apr 2014 04:08:21 GMT
Server: Apache ←コイツ
Connection: close
Content-Type: text/html;charset=ISO-8859-1
・apache2.0系
LoadModule php5_module c:/php/php5apache2.dll
・apache2.2系
LoadModule php5_module c:/php/php5apache2_2.dll
2 拡張子を登録設定する
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
3 php.iniファイルの配置場所を指定する
PHPIniDir "c:/php"
4 動作確認
ドキュメントルートにinfo.phpというファイルを作成し下記内容を記述
<?php
phpinfo();
?>
ブラウザにてhttp://localhost/info.phpにアクセスし、
phpの各種設定情報が画面表示されることを確認する。
■■apache2.4メモ
#NameVirtualHost *:80
#NameVirtualHost *:443
<VirtualHost *:80>
#xxxxx.ne.jp
Include /var/www/xxxx/xxx/xxxx
</VirtualHost>
Mutex default ssl-cache
☆参考
目的別Apacheの設定
http://www5.plala.or.jp/vaio0630/apache/apache_case.htm#A13
apache 2.4系 SSL自己証明書の導入方法
http://www.checksite.jp/apache-ssl-self-certificate/
--enable-proxy-ajp
--enable-proxy
confに
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
設定ファイル名
httpd.conf設定ファイルの配置場所
・srcコードから/usr/local/配下にapache2をインストールした場合の設定ファイル場所
/usr/local/apache2/conf/
・yumでapache2をインストールした場合の設定ファイル場所
/etc/httpd/conf/httpd.conf
・apt-getでapache2をインストールした場合の設定ファイル場所
/etc/apache2/
/usr/local/apache2/bin/httpd -t
文法に誤りがなければ
Syntax OK
誤りがある場合
Syntax error on line 2 of /usr/local/apache2.4.7/conf/httpd.conf: ~~エラー内容~~
など表示される
Sytax OKでも起動できないことはよくあるのでその際にでたメッセージをよく読むこと
/usr/local/apache2/conf/
・yumでapache2をインストールした場合の設定ファイル場所
/etc/httpd/conf/httpd.conf
・apt-getでapache2をインストールした場合の設定ファイル場所
/etc/apache2/
設定反映タイミング
apache起動/再起動時設定ファイルの文法チェック
binディレクトリにあるhttpd に -t を指定して実行/usr/local/apache2/bin/httpd -t
文法に誤りがなければ
Syntax OK
誤りがある場合
Syntax error on line 2 of /usr/local/apache2.4.7/conf/httpd.conf: ~~エラー内容~~
など表示される
Sytax OKでも起動できないことはよくあるのでその際にでたメッセージをよく読むこと
アクセスログ
1、LogFormat でログの出力内容を決め、
2、CustomLog で出力先を指定する。
・LogFormat ログの出力内容設定 -----------------------------------
LogFormat (ログの書式) (出力形式の設定名)
使用例 momoselog という名前のフォーマットと commonという名前のフォーマットを設定
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" momoselog
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%h %l %u %t \"%r\" %>s %b" common
-------------------------------------------------------------------
・CustomLog アクセスログ出力先設定 ----------------------------------
LogFormatにより設定した出力形式の設定名
使用例
CustomLog "logs/access_log" common
上記はlogsディレクトリにaccess.logという名前のファイルにLogFormatで設定したcommon書式設定でログを出力する (上記記述のログファイルの場所は「ServerRoot」からの相対位置となります)
ローテートさせる使用例
CustomLog "|/usr/local/apache2.4.7/bin/rotatelogs /usr/local/apache2.4.7/logs/access_log_%Y%m%d 86400 540" momoselog
上記は /usr/local/apache2.4.7/bin/rotatelogs を利用し、/usr/local/apache2.4.7/logsにaccess_log_20140207のような日付を情報を付与したファイルにLogFormatで設定したmomoselogという書式設定でログを出力する(上記のように絶対パスもいけます)
・画像取得ログは出力しないようにしたい
Apacheのログは気がつかない内に肥大化する。
・画像取得ログは出力しないようにしたい
Apacheのログは気がつかない内に肥大化する。
特に画像へのアクセスログは取得してもあまり意味がないので
LogFormatを指定している行の下あたりに
SetEnvIf Request_URI "\.(gif)|(jpg)|(png)quot; object-is-image
と指定し、
CustomLog /var/log/httpd/access_log common env=!object-is-image
と指定することにより、画像取得ログを省略することができます。
HostnameLookups
ApacheのログはデフォルトではIPベースで出力される、ホスト名で出力させる場合には
HostnameLookups On
と指定する。ただしDNSの逆引きが行われるため、大幅にサーバーのパフォーマンスがダウンするため
まずOnにすることはない。
ServerSignature
Apacheのフッター情報を表示/非表示エラー画面に、Apacheのバージョン情報などを表示しないようにするセキュリティ設定
ServerSignature On
↓
ServerSignature Off
ServerTokens
クライアントに返信するサーバ応答ヘッダに含める情報を制御デフォルトでFullとかなってるからProductOnlyに変更し極力第三者に情報を渡さないようにし
セキュリティ設定
ServerTokens Full
↓
ServerTokens ProductOnly
変更前確認
[root@buront java]# wget -S http://localhost
--2014-04-09 13:07:07-- http://localhost/
localhost をDNSに問いあわせています... ::1, 127.0.0.1
localhost|::1|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています...
HTTP/1.1 200 OK
Date: Wed, 09 Apr 2014 04:07:07 GMT
Server: Apache/2.0.55 (Unix) mod_jk/1.2.21 ←コイツ
Connection: close
Content-Type: text/html;charset=ISO-8859-1
以下略
変更後確認
[root@buront java]# wget -S http://localhost
--2014-04-09 13:08:21-- http://localhost/
localhost をDNSに問いあわせています... ::1, 127.0.0.1
localhost|::1|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています...
HTTP/1.1 200 OK
Date: Wed, 09 Apr 2014 04:08:21 GMT
Server: Apache ←コイツ
Connection: close
Content-Type: text/html;charset=ISO-8859-1
ApacheのServer MPMなど設定情報を確認する
[Apacheのインストールディレクトリ]/bin/apachectl -V
下記のように表示される
[root@xxx-xxx-xxxx src]# /etc/httpd/bin/apachectl -V
Server version: Apache/2.4.9 (Unix)
Server built: May 2 2014 14:44:38
Server's Module Magic Number: 20120211:31
Server loaded: APR 1.5.1, APR-UTIL 1.5.3
Compiled using: APR 1.5.1, APR-UTIL 1.5.3
Architecture: 64-bit
Server MPM: prefork
threaded: no
forked: yes (variable process count)
Server compiled with....
-D APR_HAS_SENDFILE
~~以下省略~~
phpを使用するための設定
1 phpのmoduleを読み込ませる設定をする・apache2.0系
LoadModule php5_module c:/php/php5apache2.dll
・apache2.2系
LoadModule php5_module c:/php/php5apache2_2.dll
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
3 php.iniファイルの配置場所を指定する
PHPIniDir "c:/php"
4 動作確認
ドキュメントルートにinfo.phpというファイルを作成し下記内容を記述
<?php
phpinfo();
?>
ブラウザにてhttp://localhost/info.phpにアクセスし、
phpの各種設定情報が画面表示されることを確認する。
■■apache2.4メモ
Apache2.4.xをpreforkで使えるようにする
2.4からはevent MPMデフォルトになった。
preforkを使うようにconfigureに --with-mpm=prefork を追加し
再インストールApache2.4.x NameVirtualHostが廃止
2.2のconfこぴったら怒られた
[root@xxx-xxxx-xxxx www]# /etc/init.d/httpd start
Starting httpd: AH00548: NameVirtualHost has no effect and will be removed in t he next release /etc/httpd/conf/extra/httpd.conf:5
下記をコメントアウト
NameVirtualHost *:80
NameVirtualHost *:443
NameVirtualHost *:443
してそのまま<VirtualHost ~>やっちゃっておk
#NameVirtualHost *:443
<VirtualHost *:80>
#xxxxx.ne.jp
Include /var/www/xxxx/xxx/xxxx
</VirtualHost>
Apache2.4.x SSLMutexが廃止
versionアップ対応を頼まれてやってたらSSLMutexが下記のように弾かれた
Invalid command 'SSLMutex', perhaps misspelled or defined by a module not included in the server configuration
下記のように修正し対応
#SSLMutex defaultMutex default ssl-cache
☆参考
目的別Apacheの設定
http://www5.plala.or.jp/vaio0630/apache/apache_case.htm#A13
apache 2.4系 SSL自己証明書の導入方法
http://www.checksite.jp/apache-ssl-self-certificate/
0 件のコメント:
コメントを投稿