はじめての自宅サーバ構築 - Fedora/CentOS -
Last Update 2017/02/18
[ 更新履歴 ] [ サイト マップ ] [ 質問掲示板 ] [ 雑談掲示板 ] [ リンク ]
トップ >> ちょっと便利なTIPS集 >> Webサーバ(Apache) >> ユーザホームページを公開するには?(その2:"~"チルダなし)

■ TIPS集『Webサーバ(Apache)』

 ユーザホームページを公開するには?(その2:"~"チルダなし)

『ユーザホームページを公開するには?(その1:"~"チルダ付き):http://kajuhome.com/tips/tips_03_002.shtml』では、
「http://・・・/~xxx」でアクセスする方法ですが、ここでは「http://・・・/xxx」の様に"~"チルダなしでアクセスする方法を紹介します。

一般ユーザのホームディレクトリ配下「public_html」を公開します

apacheの設定ファイル「/etc/httpd/conf/httpd.conf」の以下の行を追加・修正します。

# vi /etc/httpd/conf/httpd.conf
<IfModule mod_userdir.c>
  #
  # UserDir is disabled by default since it can confirm the presence
  # of a username on the system (depending on home directory
  # permissions).
  #
  コメントアウトする
  #UserDir disable

  #
  # To enable requests to /~user/ to serve the user's public_html
  # directory, remove the "UserDir disable" line above, and uncomment
  # the following line instead:
  #
  #UserDir public_html
  公開するユーザのパス
  AliasMatch ^/([^/]+)/(.*) /home/$1/public_html/$2
</IfModule>

ユーザパスの「public_html」をapacheでアクセスできる様にする
以下は「.htaccess」を有効、SSI・CGI実行の許可に設定
<Directory /home/*/public_html>
  AllowOverride All
  Options Includes ExecCGI FollowSymLinks
  Order allow,deny
  Allow from all
</Directory>


修正した後は、apacheを再起動してください。
# /etc/rc.d/init.d/httpd reload

※:起動時のメッセージで以下が出力される場合があります。
 [warn] The Alias directive in /etc/httpd/conf/httpd.conf at line xxx will probably never match because 
 it overlaps an earlier AliasMatch.

これは、apache設定ファイル内の「Alias」が今回追加した「AliasMatch」より後方に定義されている為、効力(設定有効)に欠けると言う意味です。

対処するには、UserDir関連のディレクティブ部分を設定ファイルの最終行に移動する事によって可能です。
分かりやすくする為、コメント部を含め以下の範囲を移動する事をお勧めします。

縺薙%縺九i
#
# UserDir: The name of the directory that is appended onto a user's home
# directory if a ~user request is received.
#
# The path to the end user account 'public_html' directory must be
# accessible to the webserver userid. This usually means that ~userid
# must have permissions of 711, ~userid/public_html must have permissions
# of 755, and documents contained therein must be world-readable.
# Otherwise, the client will only receive a "403 Forbidden" message.
#
# See also: http://httpd.apache.org/docs/misc/FAQ.html#forbidden
#
<IfModule mod_userdir.c>
     :
     :
     :
</IfModule>
<Directory /home/*/public_html>
  AllowOverride All
  Options Includes ExecCGI FollowSymLinks
  Order allow,deny
  Allow from all
</Directory>
ここまで


「一般ユーザのホームディレクトリに「public_html」を作成します。
例)一般ユーザ名「linux」のホームページを公開する場合。
 ※:一般ユーザであることに注意して下さい。(カレントパスも「/home/linux」です)
「public_html」パスを作成
$ mkdir public_html
パーミッション「other」が読み取れる様にする
$ chmod 701 /home/linux
実行権を付与する
$ chmod 755 /home/linux/public_html


作成した「public_html」に適当なHTMLを作成し「http://・・・・/linux/」("~"チルダなし)でアクセス出来るようになります。

■ コンテンツ関連情報

ページ先頭へ


Copyright(©)2004-2017 First home server construction. All Right Reserved.