本記事対象者
Apacheでドキュメントルート以外のディレクトリを公開する方法について知りたい方
ども。あいしんくいっと(@ithinkitnet)です。
Apacheでは基本的にDocumentRoot(ドキュメントルート)以下のコンテンツが公開されます。
でも、ドキュメントルート以外のディレクトリを公開したいこともあります。
Aliasディレクティブを使えばサクッと公開可能なのですが、どうも忘れがちで・・・。
と言うわけで、ドキュメントルート以外のディレクトリを公開する方法について書いておきたいと思います。
Apacheでドキュメントルート以外のディレクトリを公開する方法
Apacheのドキュメントルートはデフォルトだと/var/www/htmlが設定されています。
/etc/httpd/conf/httpd.conf
# DocumentRoot: The directory out of which you will serve your
DocumentRoot "/var/www/html"
ドキュメントルート以外を公開
Apacheのドキュメントルート以外を公開したい場合、AliasとDirectoryのディレクティブを組み合わせて使用することによって、サブディレクトリの公開がすることが出来ます。例えば、/home/hoge以下を公開したい場合の設定はこんな感じ。
/etc/httpd/conf/httpd.confに以下、追記。
/etc/httpd/conf/httpd.conf
Alias /hogehoge "/home/hoge"
<Directory "/home/hoge">
AllowOverride None
Require all granted
</Directory>
Apache再起動
Apache再起動
# systemctl reload httpd
※ 「restart」でも可能
ディレクトリ所有者、所有グループの変更
Apacheでアクセス出来るよう、Aliasで設定したディレクトリの所有権を変更。
所有者、所有グループ権限変更
# chown hoge.apache /home/hoge
# ls -ld /home/hoge
drwxr-xr-x 2 hoge apache 101 12月 22 22:25 /home/hoge
注意
ディレクトリ、コンテンツの所有者をapacheユーザに変更しておかないと「Forbidden」となり、アクセス不可となるので注意。
Aliasディレクティブで設定したディレクトリにアクセス出来ることを確認。
Point
ブラウザで実際にアクセスして確認しても良いのですが、一時的にapacheユーザにシェルを持たせて権限チェックするのも便利です。
一時的にapacheユーザでコマンド実行
# su - --shell=/bin/bash apache
-bash-4.1$ id
uid=48(apache) gid=48(apache) groups=48(apache)
ithinkit
Apacheのドキュメントルート以外を公開したい場合、AliasとDirectoryディレクティブを組み合わせて使う。
覚えておきましょう。
覚えておきましょう。
以上、あいしんくいっとでした(๑╹ω╹๑ )