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

httpd-2.4.52 httpd.conf の編集項目



ErrorLog・CustomLog 書込みフォーマットは、あなたの仕様に合わせてください。
/var/www/html/www.smiyasaka.com は、私の場合の DocumentRoot です。

編集コマンド 指定行へのジャンプは、:[行番号]
       最終行へのジャンプは、[Shift]g
       先頭行へのジャンプは、1[Shift]g


vi /usr/local/apache2/conf/httpd.conf

行番号の追加コマンド ---> :set number

行番号は httpd のバージョンによって多少の誤差がありますので注意してください。

101行目あたり SSI を利用するための

LoadModule include_module modules/mod_include.so のコメントを外す

105行目あたり # が無いか確認する(圧縮モジュールの組込み)

LoadModule deflate_module modules/mod_deflate.so のコメントを外す

146行目あたり ここ忘れると SSI 動かない

LoadModule cgid_module modules/mod_cgid.so のコメントを外す

166行目あたり ○○○○は、ユーザー名
ここのユーザー名と DocumentRoot 内のファイルの所有者を合わせてください。
User daemon
Group daemon
↓ ↓
User ○○○○
Group ○○○○

188行目あたり ○○○○@○○○○は、貴方または、管理者のメールアドレス

#ServerAdmin you@example.com
ServerAdmin ○○○○@○○○○

197行目あたり ○○○○は、サーバ構築時のホスト名

#ServerName www.example.com:80
ServerName ○○○○:80

204~207行目あたり コメントアウト

#<<Directory />
#   AllowOverride none
#   Require all denied
#</Directory>

221行目あたり

あなたの環境でのドキュメントルートを設定する。
下記は、私のサーバ機でのドキュメントルートです。

#DocumentRoot "/usr/local/apache2/htdocs"
<Directory "/usr/local/apache2/htdocs">
   ↓    ↓    ↓
DocumentRoot "/var/www/html/www.smiyasaka.com"    <---- configtest の時、
<Directory "/var/www/html/www.smiyasaka.com">    
   /var/www/html/www.smiyasaka.com のディレクトリが無いと Syntax error になります。
   DocumentRoot を必ず作成してください。

235行目あたり IndexesをIncludesに書換える。
-Indexesディレクトリを直接リクエストされインデックスが存在しない時に ファイルの一覧を作成させない。

   Includes : SSI の利用を許可する。
   ExecCGI : CGI の利用を許可する。
   -Indexes : インデックス表示を無効にする。
   ( MultiViews : 多言語対応のホームページでない時には不要です。)

Options Indexes FollowSymLinks
   ↓    ↓    ↓
Options Includes FollowSymLinks ExecCGI
Options -Indexes

242行目あたり .htaccessの有効化
私の場合、ホームページアクセス時のエラー表示で使用しています。

#AllowOverride None
   ↓    ↓    ↓
AllowOverride All

254行目あたり インデックスファイルを設定 index.cgi を追加する。

<IfModule dir_module>
DirectoryIndex index.html index.cgi
</IfModule>

262行目あたり

ForceType text/html : HTML文書の拡張子 .htm .html をMIMEタイプの拡張子 text/html として扱われます。
SetOutputFilter INCLUDES : SSI処理のための mod_include モジュールで提供される INCLUDES フィルタを 出力フィルタとして挿入、拡張子 .html で SSI を有効にします。

<Files ".ht*">
Require all denied
</Files>
   ↓    ↓    ↓
<Files *.html>
ForceType text/html
SetOutputFilter INCLUDES
</Files>

273行目あたり

#ErrorLog logs/error_log
   ↓    ↓    ↓
ErrorLog "| /usr/local/apache2/bin/rotatelogs \
/usr/local/apache2/logs/www.smiyasaka.com_elog_%Y%m%d 86400 540"

302行目あたり コメントアウトして追加する

# CustomLog logs/access_log common

Include conf/extra/httpd-log.conf
<---- 下記ログの設定を httpd-log.conf として作成する。

〇 httpd-log.conf の作成手順

空のファイル作成

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

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

ここは、別ドキュメントルートが必要な場合に記述してください。

323行目行目あたり
   # Alias /webpath /full/filesystem/path
   ↓    ↓    ↓
   Alias "/home" "/home/miyasaka/www"
   # /home/○○○○ でのアクセスは、/home/miyasaka/wwww/○○○○ へ移行させる処理 CGI, SSI も有効にする。
   # ここに書込まないと無効になる。
   <Directory "/home/miyasaka/www">
    AllowOverride None
    Options Includes FollowSymLinks ExecCGI
    AddHandler cgi-script .cgi .pl
    Require all granted
   </Directory>

338行目あたり コメントアウト DocumentRoot 内で CGI 使用可能している為

# ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"

354~358行目あたり コメントアウト

#<Directory "/usr/local/apache2/cgi-bin">
#    AllowOverride None
#    Options None
#    Require all granted
#</Directory>

402行目あたり # を取り .pl を追加する

# To use CGI scripts outside of ScriptAliased directories:
# (You will also need to add "ExecCGI" to the "Options" directive.)
#
AddHandler cgi-script .cgi .pl

413~414行目あたり # を取り .htmlの追加 ssiの実行ファイルを.html .shtml をOKにする

  AddType text/html .shtml .html
  AddOutputFilter INCLUDES .shtml .html
</IfModule>


最終行507行目あたりに追加する

Include conf/extra/httpd-zgip.conf  
<---- 下記圧縮の設定を httpd-zgip.conf として作成する。

#--------------------------------------------------
# セキュリティ対策のため、最終行に追加しておきます。
# サーバ情報(バージョン)の非表示
ServerTokens Prod
# サーバ署名(バージョンとサーバ名)のOFF
ServerSignature Off

〇 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>