Userdirを有効にする
apacheのUserDirの機能を使うとユーザーが自分のディレクトリをウェブで公開することができます。CentOS7でこの機能を有効にする手順を記します。
apacheの設定
1. UserDir disabled をコメントアウト
/etc/httpd/conf.d/userdir.conf 中にある UserDir disabled の行の先頭に#をいれて無効にする。
UserDir public_html を有効化
同じく /etc/httpd/conf.d/userdir.conf 中でコメントになっている UserDir public_html の先頭の#をとる。もし公開するディレクトリをpublic_htmlでないものにするのであれば、この値を変更すると同時に同じファイル内の<Directory “/home/*/public_html"> も合わせて変更する
Require all grantedを追加
同じく /etc/httpd/conf.d/userdir.conf 中の公開ディレクトリの設定にRequire all grantedを追加する。これは /etc/httpd/conf/httpd.conf 中でシステムのルートディレクトリに Require all denied が設定されていることに対応するためのものです。
/etc/httpd/conf.d/userdir.conf
修正後のuserdir.conf
<IfModule mod_userdir.c> UserDir public_html </IfModule> <Directory "/home/*/public_html"> AllowOverride FileInfo AuthConfig Limit Indexes Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Require all granted </Directory>
apacheを再起動します(systemctl restart httpd)。
public_htmlの設定
ホームディレクトリにpublic_htmlを作成します。/home/user/public_htmlのパーミッションを確認します。
$ ls -ld / dr-xr-xr-x. 19 root root 4096 8月 23 2021 / $ ls -ld /home drwxrwxrwx. 13 root root 214 4月 8 2020 /home $ ls -ld /home/user drwx-----x. 80 user user 8192 3月 29 17:40 /home/user $ ls -ld /home/user/public_html drwxrwxr-x. 11 user user 4096 3月 29 16:52 /home/user/public_html
/home/user のパーミッションは初期値が700なので701にする。public_htmlは作成したときに775なっているのでそのままでよい。
ブラウザーからアクセスする
http://example.com/~user/ にアクセスしてみる。
ディレクトリの中身が見えて困るときは、index.htmlを置く。