httpd通常フォルダと個人フォルダの両方を公開する

個人用としてhttpdを使う時には「/var/www/html/」が公開フォルダになりますが、

友達にも使ってもらえるサーバーになればと思うので、個人ユーザを追加して

そのユーザのフォルダも公開フォルダとする方法です。


ServerAdmin 管理者メールアドレス <------------- エラー時に表示される

ServerName 1-east.net

#DocumentRoot "/var/www/html" <------------- 通常の公開フォルダを変更
DocumentRoot "/home/html"


#<Directory "/var/www/html"> <------------- 通常の公開フォルダを変更
<Directory "/home/html">

#Options Indexes FollowSymLinks
Options FollowSymLinks Includes ExecCGI <---- Symlink/SSI/CGI実行可能に変更

#AllowOverride None
AllowOverride FileInfo AuthConfig Limit <---- ファイル制御/認証/アクセス制御のみ可能に


#UserDir disable <------- ユーザディレクトリの有効化

#UserDir public_html <------- ユーザの公開フォルダをhtmlに変更
UserDir html
AliasMatch ^/ユーザ名(.*) /home/ユーザ名/html/$1
↑------- 特定のユーザの公開URLを「~」無しでアクセスできるように変更


↓-------- 以下ユーザフォルダ内でのアクセス設定 start
<Directory /home/*/html>
AllowOverride FileInfo AuthConfig Limit
Options MultiViews SymLinksIfOwnerMatch IncludesNoExec
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
<Directory /home/*/html>
AllowOverride FileInfo AuthConfig Limit
Options MultiViews SymLinksIfOwnerMatch IncludesNoExec ExecCGI
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
↑-------- 以下ユーザフォルダ内でのアクセス設定 End

DirectoryIndex index.html index.htm index.php index.shtml index.html.var
↑-------自分が使う拡張子を追加登録する


#ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" <--- CGIが動く場所を変更する
ScriptAlias /cgi-bin/ "/home/html/ /home/*/html/" <---- 通常公開フォルダと個人フォルダに設定

#<Directory "/var/www/cgi-bin"> <---- 通常公開フォルダと個人フォルダに設定
<Directory "/home/html/ /home/*/html/">
AllowOverride None
# Options None
Options FollowSymLinks Includes ExecCGI <----- Symlink/SSI/CGI実行可能
Order allow,deny
Allow from all
</Directory>

#AddDefaultCharset UTF-8 <------- 通常の文字コード設定 変な動きをするのでコメントに
#AddHandler cgi-script .cgi <------- CGIを実行できる拡張子を追加
AddHandler cgi-script .cgi .pl

これでhttpdの設定は終わったので、次回はvsftpdの設定をかえてFTPからアップロードする時に
個人ユーザは、公開用の個人ディレクトリ以外を見れないように設定していきたいと思います

カテゴリー: Linux パーマリンク