ユーザーごとのウェブページを有効にする。
OSXのApacheで /~takuya_1st みたいなユーザーごとのページを有効にしておく
ディレクトリごとに管理するほうがDomainベースの name virtual host よりも圧倒的に管理が楽だとおもう。
WEB共有で昔は、クリックひとつで有効になったけど、これらは初期設定で使えなくなってしまった。Apacheのセキュリティバグがあった場合、また何らかのマルウェアがApacheWEB共有ONにし、ファイルをSitesにコピーしファイルを外部からアクセス可能にして持ち出すからだろうね。
OSX yosemite
Yosemiteから Apacheは2.4になって、若干設定が異なるので注意。
takuya@rena:~/Sites/sample$ httpd -v Server version: Apache/2.4.10 (Unix) Server built: Jan 8 2015 20:48:33
Apacheの有効化
Apacheの起動を有効にしておく。
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist
設定のロード
設定自体は簡単で mod_userdir をロードしてApacheを再起動するだけ。
166:LoadModule userdir_module libexec/apache2/mod_userdir.so 495:Include /private/etc/apache2/extra/httpd-userdir.conf
httpd-userdir.conf
httpd-userdir.conf で共有するディレクトリ名を指定する。とりあえず、昔通り ~/Sites/を共有する。
takuya@rena:/etc/apache2$ cat /private/etc/apache2/extra/httpd-userdir.conf
# Settings for user home directories
#
# Required module: mod_userdir
#
# UserDir: The name of the directory that is appended onto a user's home
# directory if a ~user request is received. Note that you must also set
# the default access control for these directories, as in the example below.
#
UserDir Sites
#UserDir public_html
#
# Users might not be in /Users/*/Sites, so use user-specific config files.
#
Include /private/etc/apache2/users/*.conf
<IfModule bonjour_module>
RegisterUserSite customized-users
</IfModule>
再起動
sudo apachectl start
メモ:昔設定したファイル
昔設定したファイルが残ってたので全部消した。
httpd.conf httpd.conf.bak httpd.conf.pre-update httpd.conf~previous
preとかbackup 系のファイルは消しちゃったらいいと思う。
なんか設定が反映されなくて誤作動するんだよね。理由はわからない気もする。httpd コマンドの実体httpd-wrapper もruby で動いているので、ruby をバージョン変えたりアレコレ触ってると誤作動の原因になる可能性もある。