sed コマンドによる httpd-2.4.XX の httpd.conf の一括編集


=================================================================================

正規表現でエスケープした文字 ", ', ^, $, &, %, !, /, \, ., |, *, (, ) これらを文字
として使う時には、 \ を付加して使用する必要があります。
改行のある文字列は、行末に \n\( \n : 改行 \ : 継続 )を付加する必要があります。

※ 注意 ※ 

私のスキルの範囲で、行番号の指定無しで sed コマンドを構築してみました。
同じ文字列が多々あるので、置換範囲を指定して置換しています。
( /○○○/,/△△△/s/…… の様に置換範囲 文字列"○○○"から文字列"△△△"の様に指定して
  置換しています。)
CGI, SSI は、ドキュメントルートで使用できるように設定しています。
ドキュメントは、圧縮する様に設定しています。圧縮レベルは、1にしています。
「 不要なログの記録をさせない設定 」・「 転送データの圧縮設定 」をしていますので不要な時は
該当行を削除してください。
なお、アクセスログの収集・圧縮処理設定は、別モジュールとして作成実行時に組み込むようにして
います。
=================================================================================
sed 〜 /usr/local/apache2/conf/httpd.conf までをコピペします。
ただし、MMMMMM は、ユーザ・グループ名、NNNNNN は、サーバ名、XXXXXX@XXXXXX は、メールアド
レス、LLLLLL は、アクセスログ名、XXXXXX は、ドキュメントルート、HHHHHH は、別ドキュメン
トルートです。
使用する時には、テキストエディタで「すべて置換」をし、使用ください。

CentOS のバージョンでも変わりますので必ず確認して下さい。
( vi の編集モードで :set number を入力して行番号を表示させ確認します。 )
--------------------------------------------------------------------------------
必ず、バックアップを取ってから、コマンドを実行してください。

文字色の説明
   青 : 正規表現文字のエスケープ文字 \
   赤 : 正規表現文字
   茶 : 文字列追加の改行(\n)と継続(\)
--------------------------------------------------------------------------------
-i オプションは、ファイルを直接書き換える指定です。
※※ 行番号での指定は、先頭行以外無しにしています。※※

sed -i -e "1s/^#/# ***  httpd-2\.4\.XX Edited httpd\.conf ***/
/mod_include\.so/s/^#//
/mod_deflate\.so/s/^#//
/mod_cgid\.so/s/^#//
s/User daemon/User MMMMMM/g
s/Group daemon/Group MMMMMM/g
#
s/ServerAdmin you@example\.com/ServerAdmin XXXXXX@XXXXXX/g
s/#ServerName www\.example\.com:80/ServerName NNNNNN:80/g
#
#    201,204s/^/#/
/# <Directory> blocks below/,/# below/s/<Directory \/>/#<Directory \/>/g
/# <Directory> blocks below/,/# below/s/\    AllowOverride/#    AllowOverride/g
/# <Directory> blocks below/,/# below/s/\    Require/#    Require/g
/# <Directory> blocks below/,/# below/s/<\/Directory/#<\/Directory/g
#
#------------------------------------------------------------------
#   DocumentRoot の設定 ( ここは、コメントです。)
#------------------------------------------------------------------
s/DocumentRoot \"\/usr\/local\/apache2\/htdocs\"/DocumentRoot\
 \"\/var\/www\/html\/XXXXXX\"/g
s/<Directory \"\/usr\/local\/apache2\/htdocs\">/<Directory\
 \"\/var\/www\/html\/XXXXXX\">/g
#------------------------------------------------------------------
#   SSI, CGI の設定 ( ここは、コメントです。)
#------------------------------------------------------------------
/# for more information/,/# Controls who can/s/Options Indexes FollowSymLinks/Options\
 Includes FollowSymLinks ExecCGI/g
/# for more information/,/# Controls who can/s/AllowOverride None/AllowOverride All\n\
    Options -Indexes/g
/DirectoryIndex index\.html/s/$/ index\.cgi/
#
s/<Files \"\.ht\*\">/<Files \*\.html>/g
/<Files \*\.html>/,/<\/Files>\/html/s/Require all denied/ForceType text\/html\n\
\    SetOutputFilter INCLUDES/g
#
#------------------------------------------------------------------
#   ErrorLog の設定 ( ここは、コメントです。)
#------------------------------------------------------------------
s/ErrorLog \"logs\/error_log\"/#ErrorLog \"logs\/error_log\"\n\
ErrorLog \"| \/usr\/local\/apache2\/bin\/rotatelogs\
 \/usr\/local\/apache2\/logs\/LLLLLL_error_log_\%Y\%m\%d 86400 540\"/
#------------------------------------------------------------------
#   ログの取得条件の設定 ( ここは、コメントです。)
#------------------------------------------------------------------
s/CustomLog \"logs\/access_log\" common/#CustomLog \"logs\/access_log\" common\n\
#==========================================================================\n\
#       不要なログの記録をさせない設定\n\
#==========================================================================\n\
Include conf\/extra\/httpd-log\.conf/
#------------------------------------------------------------------
#   Alias が不要な場合は、削除して下さい。( ここは、コメントです。)
#------------------------------------------------------------------
s/# Alias \/webpath \/full\/filesystem\/path/Alias \/home\/ \"\/home\/HHHHHH\/www\/\"\n\
    # \.cgi \.pl を有効にする。ここに書込まないと無効になる。\n\
    <Directory \"\/home\/HHHHHH\/www\">\n\
        AllowOverride None\n\
        Options Includes FollowSymLinks ExecCGI\n\
        AddHandler cgi-script \.cgi \.pl\n\
        Require all granted\n\
    <\/Directory>/
#-------------------------------------------------------------------
/ScriptAlias \/cgi-bin/s/^/#/
#
#     351,355s/^/#/
/<Directory \"\/usr\/local\/apache2\/cgi-bin\">/,/<\/Directory>/s/^/#/
#
s/#AddHandler cgi-script \.cgi/AddHandler cgi-script \.cgi \.pl/g
s/#AddType text\/html \.shtml/AddType text\/html \.shtml \.html/g
s/#AddOutputFilter INCLUDES \.shtml/AddOutputFilter INCLUDES \.shtml \.html/g
#------------------------------------------------------------------
#   転送データの圧縮設定 ( ここは、コメントです。)
#------------------------------------------------------------------
\$a#---------------------------------------------------------------\n\
Include conf\/extra\/httpd-zgip\.conf/\n\
#\n\
#---------------------------------------------------\n\
# セキュリティ対策のため、最終行に追加しておきます。\n\
# サーバ情報\(バージョン\)の非表示\n\
ServerTokens Prod\n\
# サーバ署名\(バージョンとサーバ名\)のOFF\n\
ServerSignature Off" /usr/local/apache2/conf/httpd.conf

下記は、編集内容確認コマンドです。

cat -n /usr/local/apache2/conf/httpd.conf

---------------------------------------------------------------------------

不要なログの記録をさせない設定 conf ( Include conf/extra/httpd-log.conf ) と
転送データの圧縮設定 conf ( Include conf/extra/httpd-zgip.conf ) の作り方は、
[ httpd-2.4.41 httpd.conf の編集項目 ] の詳細 )内で紹介しています。