レンタルサーバーとかで、http://www.○○○.jp/~user/みたいなアドレスが割り当てられることが多いですが、
あんな感じで、ユーザーごとに独立したWebスペースを与えて、アドレスを上のように区別する方法は意外と簡単

今は、自分用に鯖立ててるけど、別に知り合いとかならスペース貸してもいいし、
その時のためのメモ♪


まぁ、やり方は簡単。だって、apache自体にそういう機能があるからねww


まずは、
# vim /etc/httpd/conf/httpd.conf
からapacheの設定ファイルを編集。

350行前後に
<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

</IfModule>


とあるので、

    UserDir disable

    #UserDir disable

または、特定のユーザーだけにしたい場合は、
    UserDir disable
    UserDir enable  
などとし、

    #UserDir public_html
のコメントアウトをはずす。



そして、その次の
#<Directory /home/*/public_html>
#    AllowOverride FileInfo AuthConfig Limit
#    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
#    <Limit GET POST OPTIONS>
#        Order allow,deny
#        Allow from all
#    </Limit>
#    <LimitExcept GET POST OPTIONS>
#        Order deny,allow
#        Deny from all
#    </LimitExcept>
#</Directory>
のコメントアウトを全てはずす。
AllowOverrideは、.htaccessを有効にするとかで、
Limitなんちゃらはその後の、GETとPOSTは許可し、それ以外を破棄するって意味(たぶん

それが出来たら、
# chmod 755 /home/ユーザ名
# chmod 755 /home/ユーザー名/public_html
でアクセス権限を変更し、(※ユーザ名のところは*でもよい)
SELinuxを有効にしている場合は、
$ chcon system_u:object_r:httpd_sys_content_t /home/ユーザー名/public_html -R
とする。

以上で設定終わり。



<参考サイト>
・home-mg.que.ne.jp
・うえちょこ@ぼろぐ [Linux]ApacheがPermission deniedを吐いてくる


コメントする

あわせて読みたいブログパーツ

iKnow

TweetClock

なかのひと