この記事には広告を含む場合があります。
記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
ども。あいしんくいっと(@ithinkitnet)です。
Apacheでは基本的にDocumentRoot(ドキュメントルート)以下のコンテンツが公開されます。
でも、ドキュメントルート以外のディレクトリを公開したいこともあります。
Aliasディレクティブを使えばサクッと公開可能なのですが、どうも忘れがちで・・・。
と言うわけで、ドキュメントルート以外のディレクトリを公開する方法について書いておきたいと思います。
Apacheでドキュメントルート以外のディレクトリを公開する方法
Apacheのドキュメントルートはデフォルトだと/var/www/htmlが設定されています。
# DocumentRoot: The directory out of which you will serve your
DocumentRoot "/var/www/html"
ドキュメントルート以外を公開
Apacheのドキュメントルート以外を公開したい場合、AliasとDirectoryのディレクティブを組み合わせて使用することによって、サブディレクトリの公開がすることが出来ます。例えば、/home/hoge以下を公開したい場合の設定はこんな感じ。
/etc/httpd/conf/httpd.confに以下、追記。
Alias /hogehoge "/home/hoge"
<Directory "/home/hoge">
AllowOverride None
Require all granted
</Directory>
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ディレクティブで設定したディレクトリにアクセス出来ることを確認。
ブラウザで実際にアクセスして確認しても良いのですが、一時的にapacheユーザにシェルを持たせて権限チェックするのも便利です。
# su - --shell=/bin/bash apache
-bash-4.1$ id
uid=48(apache) gid=48(apache) groups=48(apache)
ithinkit
覚えておきましょう。
以上、あいしんくいっとでした(๑╹ω╹๑ )