www.smiyasaka.com は、 2022 年 11月から Oracle LInux 8.X にOSを変更しました。

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

〇 httpd-log.conf の作成手順

1. 空のファイル作成

touch /usr/local/apache2/conf/extra/httpd-log.conf

2. ログ設定条件の作成

vi /usr/local/apache2/conf/extra/httpd-log.conf

下記を貼り付け(コピペ)ます。
------------------------------------------------------------

<IfModule log_config_module>
#
#--------------------------------------------------------------------------
#    不要なログの記録をさせない設定
#--------------------------------------------------------------------------
#
#    拡張子による制限
SetEnvIf Request_URI ".(gif)|(jpg)|(jpeg)|(png)|(bmp)|(ico)|(css)|(swf)$" no-logfile
#
#内部からのアクセスをログに記録しない対策
# IPアドレスによる制限 ローカル
SetEnvIf Remote_Addr "192.168.0." no-logfile

# サーチエンジンのログは取らない。
SetEnvIf User-Agent "Gigabot" no-logfile
SetEnvIf User-Agent "Googlebot" no-logfile
SetEnvIf User-Agent "MJ12bot" no-logfile
SetEnvIf User-Agent "msnbot" no-logfile
SetEnvIf User-Agent "psbot" no-logfile
SetEnvIf User-Agent "TurnitinBot" no-logfile
SetEnvIf User-Agent "Yahoo! Slurp" no-logfile
SetEnvIf User-Agent "Zealbot" no-logfile

# ワームによる制限のログは取らない。
SetEnvIf Request_URI "default\.ida" no-logfile
SetEnvIf Request_URI "null\.ida" no-logfile
SetEnvIf Request_URI "NULL\.IDA" no-logfile
SetEnvIf Request_URI "cmd\.exe" no-logfile
SetEnvIf Request_URI "root\.exe" no-logfile
SetEnvIf Request_URI "Admin\.dll" no-logfile
SetEnvIf Request_URI "^/_mem_bin/" no-logfile
SetEnvIf Request_URI "^/_vti_bin/" no-logfile
SetEnvIf Request_URI "^/c/" no-logfile
SetEnvIf Request_URI "^/d/" no-logfile
SetEnvIf Request_URI "^/msadc/" no-logfile
SetEnvIf Request_URI "^/scripts/" no-logfile

# CGIディレクトリ
SetEnvIf Request_URI "^/cgi-bin/" no-logfile

# 巡回ロボットがアクセスする robots.txt
SetEnvIf Request_URI "robots\.txt" no-logfile

#
# 長いURLへの対処
#
SetEnvIf Request_Method "(GET)|(POST)|(PUT)|(DELETE)|(HEAD)" logfile
SetEnvIf Request_Method "(OPTIONS)" no-logfile
#
# ログファイルは、www.smiyasaka.com_alog_( 年月日 )のファイル名で保存されます
#
CustomLog "| /usr/local/apache2/bin/rotatelogs \
/usr/local/apache2/logs/www.smiyasaka.com_alog_%Y%m%d 86400 540"\
combined env=!no-logfile
</IfModule>

〇 httpd-zgip.conf の作成手順

空のファイル作成

touch /usr/local/apache2/conf/extra/httpd-zgip.conf

vi /usr/local/apache2/conf/extra/httpd-zgip.conf

下記を貼り付け(コピペ)ます。
------------------------------------------------------------
<IfModule mod_deflate.c>
    #---------------------------------------------------------------
    # 転送データの圧縮設定(画像以外全て圧縮する)
    #     実際の圧縮率は、1 も 3 も大差ありません
    #---------------------------------------------------------------
    # 圧縮レベル 1 に設定
     DeflateCompressionLevel 1
    #
     # 全てを圧縮する設定
     SetOutputFilter DEFLATE
     #
     # gzip圧縮に対応していない古いブラウザを除外
     # Netscape 4.x has some problems...
    # 送信先ブラウザがNetscape 4.xの場合はtext/htmlのみ圧縮
     BrowserMatch ^Mozilla/4 gzip-only-text/html
     # Netscape 4.06-4.08 have some more problems
    # 送信先ブラウザがNetscape 4.06-4.08の場合は圧縮しない
     BrowserMatch ^Mozilla/4\.0[678] no-gzip
     # MSIE masquerades as Netscape, but it is fine
    # 送信先ブラウザがMSIEの場合は全て圧縮する
     BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
     #
     # 画像以外全て圧縮する
     # Don't compress images
     SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
     #
     # Make sure proxies don't deliver the wrong content
    # プロキシサーバーが圧縮未対応ブラウザへ圧縮ファイルを送信しないようにする
     Header append Vary User-Agent env=!dont-vary
    # html や css, js, javescript などは個別指定
     AddOutputFilterByType DEFLATE text/plain
     AddOutputFilterByType DEFLATE text/html
     AddOutputFilterByType DEFLATE text/xml
     AddOutputFilterByType DEFLATE text/css
     AddOutputFilterByType DEFLATE text/js
     AddOutputFilterByType DEFLATE text/javascript
     AddOutputFilterByType DEFLATE application/xhtml+xml
     AddOutputFilterByType DEFLATE application/xml
     AddOutputFilterByType DEFLATE application/rss+xml
     AddOutputFilterByType DEFLATE application/atom_xml
     AddOutputFilterByType DEFLATE application/js
     AddOutputFilterByType DEFLATE application/javascript
     AddOutputFilterByType DEFLATE application/x-javascript
     AddOutputFilterByType DEFLATE application/x-httpd-php
    #
     DeflateFilterNote Input instream
     DeflateFilterNote Output outstream
     DeflateFilterNote Ratio ratio
     # 圧縮率の確認用ログ設定
     # 不要になったら、# で無効にしておく事。
     # Deflateが有効になっているか確認するログの出力
     #
     LogFormat '"%r" %{outstream}n/%{instream}n\
     (%{ratio}n%%) %{User-agent}i' deflate
     CustomLog "logs/deflate_log" deflate
</IfModule>


^