Webサーバーのユーザーディレクトリを利用する
Webサーバーは非常に多彩な機能を備えています。基本的な設定方法を確認しましょう。【連載コラム:Linuxを学ぼう(24)】
今回は、Webサーバーの設定方法の詳細を学ぶためにユーザーディレクトリ機能を有効にしてみます。Webサーバーは非常に多彩な機能を備えているため、必要となる機能ごとに設定が必要となります。基本的なWebサーバーの設定方法を確認しておきましょう。
目次
Webサーバーの設定ファイル
Apache Webサーバーの設定ファイルは、本体である/etc/httpd/conf/httpd.confと、各種機能ごとにファイルを分けた/etc/httpd/conf.dディレクトリ以下のファイルが組み合わされています。httpd.confにもかなり幅広い設定項目が含まれているので、どちらに設定が含まれているのか利用したい機能のマニュアルなどをよく確認しておく必要があります。
ユーザーディレクトリ機能の設定ファイル
ユーザーディレクトリ機能の設定ファイルは、/etc/httpd/conf.dディレクトリのuserdir.confファイルとなります。内容は以下の通りです。コメントなど不要な部分は省略しています。
# cat userdir.conf
<IfModule mod_userdir.c>
#UserDir disabled
UserDir public_html
</IfModule>
<Directory "/home/*/public_html">
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Require method GET POST OPTIONS
</Directory>
※この例は設定を変更した後のものです。
IfModuleタグ部分
HTMLのタグのように<>で囲われている範囲をタグと呼びます。IfModuleタグは、Apache Webサーバーが利用できるモジュールが存在すると、そのモジュールの扱いをどうするかを設定しています。
デフォルトでは、ユーザーディレクトリ機能(UserDir)は機能停止(disabled)になっており、利用できません。機能を有効にするためには、このdisabledの行を削除するかコメントアウトし、コメントアウトされている「UserDir public_html」の方を有効にします。上記例は変更後の設定ファイルとなっています。
Directoryタグ部分
Directoryタグは、該当するディレクトリに対してWebサーバーがどのように振る舞えるかを定義しています。必要に応じて設定を変更します。今回はデフォルトのままにしておきます。
Webサーバーへの設定変更の適用
設定を変更したら、Webサーバーをリロードして設定変更を適用します。
# systemctl reload httpd
ユーザーディレクトリの作成
ユーザーディレクトリ機能は、Webブラウザのコンテンツ指定で「~ユーザー名」と指定した場合、サーバーの/home/ユーザー名/public_htmlディレクトリ内のコンテンツを参照させる機能です。ホームディレクトリとpublic_htmlディレクトリはセキュリティの関係上、以下のようなパーミッションに設定する必要があります。
ホームディレクトリ | : | 711 |
public_html | : | 755 |
以下のように設定を行います。
$ mkdir public_html
$ chmod 755 public_html
$ chmod 711 ~
~は実行しているユーザーのホームディレクトリを表しています。
SELinuxの影響とアクセス許可
作成したpublic_htmlディレクトリは、SELlinuxが有効になっている環境ではそのままではWebサーバーからアクセスできません。以下のコマンドでアクセスを許可します。このコマンドは、public_htmlを作成した一般ユーザーで実行します。
$ chcon -R -t httpd_sys_content_t ~/public_html/
このアクセス許可を行わないと、アクセス権限がないため「403 Forbidden」のエラーでアクセスできません。
コンテンツの配置とアクセス
作成したpublic_htmlディレクトリ内に、適当なコンテンツを配置し、Webブラウザからアクセスしてみます。ここでは~/public_html/index.htmlファイルを作成しているとします。
http://サーバーアドレス/~ユーザー名
作成したコンテンツの内容が表示されたらユーザーディレクトリ機能の設定は完了です。
- 筆者紹介
宮原 徹 氏
Linux標準教科書、Linuxサーバー構築標準教科書などの監修者。LinuCレベル1/レベル2 Version10.0の改訂作業にも協力。また、幅広いOSSに関する情報提供の場として「オープンソースカンファレンス(OSC)」の企画運営も。
バックナンバー
第23回:WebサーバーでPHPを動かす
第22回:WEBサーバーにコンテンツを配置する
第21回:外部からWebサーバーにアクセスする
第20回:Webサーバーを動かす
第19回:Webサーバーをインストールする