このWebサイト ひつじ帳 は、管理者がWEB関連の技術をまとめた備忘録サイトです。 Linux,CentOS,PHP,MySQL,Blogger,JavaScript,CSS について記録しています。

CentOS-5/Apache/httpd.conf 設定

[ CentOS/Apache ] [ CentOS/Apache/インストール ] [ CentOS/Apache/起動設定 ]

Apache 設定ファイル(httpd.conf)編集

httpd.conf のバックアップ


[root@linux ~]# cd /etc/httpd/conf ←■ ディレクトリ移動
[root@linux conf]# cp -a httpd.conf httpd.conf.org ←■ httpd.conf バックアップ
[root@linux conf]# vi httpd.conf

/etc/httpd/conf/httpd.conf 編集


[root@linux ~]# vi /etc/httpd/conf/httpd.conf
[root@linux ~]#

設定ファイルの詳細
httpd.conf.txt

VirtualHost 設定(複数ドメイン使用の場合)

VirtualHost専用のインクルードファイルを作成します。

[root@linux ~]# vi /etc/httpd/conf.d/virtualhost.conf ←■ インクルードファイルを新規作成
###########################
#----  Virtual Hosts  ----#
###########################

# デフォルトのドキュメントルート
<VirtualHost _default_:80>
 SuexecUserGroup apache apache
 DocumentRoot /home/apache/public_html
</VirtualHost>

# ドメイン毎のVirtualHost設定
<VirtualHost *:80>
 SuexecUserGroup User Group ←■ suexec 有効にする場合
 DocumentRoot /home/example/public_html ←■ ドキュメントルート指定
 ServerName example.jp ←■ ドメイン名指定
 ServerAlias *.example.jp ←■ 別のホスト名へのリクエストに対して全く同じ内容を提供
 Options FollowSymLinks ExecCGI ←■ オプション指定
</VirtualHost>


##### SSL ##### ←■ SSL(https)でアクセスする場合(SSLの設定が出来ている事)
# ドメイン毎のVirtualHost設定
<VirtualHost *:443>
 SuexecUserGroup User Group ←■ suexec 有効にする場合
 DocumentRoot /home/example/public_html ←■ ドキュメントルート指定
 ServerName example.jp ←■ ドメイン名指定
 ServerAlias *.example.jp ←■ 別のホスト名へのリクエストに対して全く同じ内容を提供
 Options FollowSymLinks ExecCGI ←■ オプション指定
</VirtualHost>

管理サイト用等に使用


# admin
<VirtualHost *:80>
 DocumentRoot /home/admin/public_html
 ServerName admin.example.jp

 # https forward # ←■ httpでアクセスした場合、httpsへ転送する
 <IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{SERVER_PORT} !^443$
  RewriteRule ^/(.*)$ https://%{HTTP_HOST}/$1 [L,R]
 </IfModule>
</VirtualHost>

# admin SSL
<VirtualHost *:443>
 SuexecUserGroup admin admin
 DocumentRoot /home/admin/public_html
 ServerName admin.example.jp
 Options FollowSymLinks ExecCGI
</VirtualHost>

ログを残す場合


<VirtualHost *:80>
 SetEnvIf Request_URI "\.(gif|jpg|png|swf)$" image nolog ←■ 画像に環境変数を設定
 SetEnvIf Request_URI "\.(css|js)$" link nolog ←■ CSS JSに環境変数を設定
 CustomLog "|/usr/sbin/rotatelogs /home/example/log/access_%Y%m%d.log 604800 540" combined env=!nolog
 CustomLog "|/usr/sbin/rotatelogs /home/example/log/image_%Y%m%d.log 604800 540" combined env=image
 CustomLog "|/usr/sbin/rotatelogs /home/example/log/link_%Y%m%d.log 604800 540" combined env=link
 ErrorLog "|/usr/sbin/rotatelogs /home/example/log/error_%Y%m%d.log 604800 540"
</VirtualHost>

mod_rewrite 設定例

動的URLを静的URLに書き換えることが可能です。

<VirtualHost *:80>
 RewriteEngine on
 RewriteCond %{HTTP_HOST} [^.]+\.sv0\.example\.jp$
 RewriteRule ^(.+) %{HTTP_HOST}$1 [C]
 RewriteRule ([^.]+)\.sv0\.example\.jp/(.*) /home/$1/public_html/$2
</VirtualHost>

Server status, server info 設定


LoadModule status_module modules/mod_status.so ←■ モジュールが読み込まれていない場合は追記
LoadModule info_module modules/mod_info.so ←■ モジュールが読み込まれていない場合は追記
<Location /server-status>
 SetHandler server-status
 Order deny,allow
 Deny from all
 Allow from 192.168.1.200/24
</Location>

<Location /server-info>
 SetHandler server-info
 Order deny,allow
 Deny from all
 Allow from 192.168.1.200/24
</Location>

バーチャルホストの動的設定

sub.example.jp → /home/example.jp/public_html/sub.example.jp を参照する
public_html内にサブドメインと同じディレクトリを作成する

<VirtualHost *:80>
 SuexecUserGroup example example
 DocumentRoot /home/example.jp/public_html
 ServerName example.jp
 ServerAlias *.example.jp
 <Directory "/home/example.jp/public_html">
  Options MultiViews -Indexes FollowSymLinks Includes ExecCGI
 </Directory>

 ※ 動的バーチャルホストの設定
 UseCanonicalName off
 VirtualDocumentRoot /home/example.jp/public_html/%0
</VirtualHost>

※ Apache 起動 → CentOS/Apache/起動設定

0 件のコメント:

人気記事

アーカイブ

このブログを検索