手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 22.04 Apache Userdir 有効化 – ユーザー公開ディレクトリの古典的な使い方

Ubuntu 22.04 で Apache の Userdir を有効化し、ユーザーごとの public_html を公開する手順です。Userdir は現在の主流構成というより、ユーザー単位の公開ディレクトリを扱う古典的な設定として位置づけます。

現在の Web サーバー運用では、VirtualHost と DocumentRoot を明示してサイト単位で公開する構成が一般的です。Userdir は学習用途、検証用途、ユーザーごとの簡易公開など、限定的な場面で使うものとして扱う方が安全です。

関連する記事
この記事で確認すること
  • Apache Userdir の位置づけ
  • userdir モジュールの有効化
  • public_html の作成と権限
  • 現在の運用で使う場合の注意点
参考
書籍
参考書籍

Advanced Ubuntu Administration and Management Best Practices

Ubuntu Server の運用項目を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。

Amazon で見る

このリンクは Amazon アソシエイトリンクです。

Userdir の位置づけ

項目考え方
URLhttp://example.com/~user/ のような形式で公開する
公開元各ユーザーのホームディレクトリ配下の public_html
用途学習、検証、限定的なユーザー公開
注意点ホームディレクトリ権限と情報公開範囲に注意する

前提

Apache がインストール済みであることを前提にします。VirtualHost と DocumentRoot を使う通常の構成は、Apache 基本構築の記事で確認します。

Userdir を有効化する

Apache の userdir モジュールを有効化し、設定を反映します。

sudo a2enmod userdir
sudo systemctl restart apache2.service
systemctl status apache2.service --no-pager

公開ディレクトリを作成する

対象ユーザーのホームディレクトリに public_html を作成します。Apache がホームディレクトリをたどれるように、ホームディレクトリには実行権限が必要です。

chmod 711 ~
mkdir -p ~/public_html
chmod 755 ~/public_html

確認用 HTML を配置する

public_html に確認用ファイルを配置します。

tee ~/public_html/index.html >/dev/null <<'EOF'
<!doctype html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>Apache Userdir Test</title>
</head>
<body>
Apache Userdir is enabled.
</body>
</html>
EOF
chmod 644 ~/public_html/index.html

ブラウザまたは curl で確認する

ユーザー名を URL の ~user 部分に入れて確認します。

curl -I http://example.com/~myadmin/
curl http://example.com/~myadmin/

設定ファイルを確認する

userdir モジュールの設定は /etc/apache2/mods-enabled/userdir.conf で確認できます。必要に応じて公開対象や禁止対象を調整します。

apache2ctl -M | grep userdir
cat /etc/apache2/mods-enabled/userdir.conf

セキュリティ上の注意

  • ユーザーのホームディレクトリ配下を Web 公開する構成であることを意識する
  • 公開対象は public_html に限定し、不要なファイルを置かない
  • ホームディレクトリの権限を広げすぎない
  • 公開するサーバーでは、VirtualHost と DocumentRoot を明示する構成を優先する
  • 検証が終わったら userdir を無効化する

Userdir を無効化する

不要になった場合は userdir モジュールを無効化して Apache を再起動します。

sudo a2dismod userdir
sudo systemctl restart apache2.service
apache2ctl -M | grep userdir || true

現在の運用での扱い

Userdir は Apache の基本機能として残っていますが、現在の本番運用では、サイト単位に VirtualHost と DocumentRoot を定義する方が管理しやすいです。Userdir は、ユーザーごとの簡易公開や学習用途に限定して使うのが現実的です。

まとめ

Ubuntu 22.04 で Apache Userdir を有効化すると、各ユーザーの ~/public_html/~user/ の形式で公開できます。設定自体は簡単ですが、ホームディレクトリ配下を Web から参照可能にするため、公開範囲と権限の確認が重要です。

本番サイトでは VirtualHost と DocumentRoot を明示する構成を優先し、Userdir は限定的な用途に留めます。検証が終わったら a2dismod userdir で無効化します。

関連する記事
Ubuntu 22.04 Apache Userdir 有効化 – ユーザー公開ディレクトリの古典的な使い方

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る