web-dev-qa-db-ja.com

Webサイトに/ homeフォルダーを使用する(Apache2.0およびsuPHPの下で)

SuPHPを使用する私の目標は、Webサイトが/homeフォルダーを指すようにし、ホームフォルダー内のすべてのユーザーが独自のindex.htmlページを持つようにすることです。現在、index.htmlフォルダに/homeページはありませんが、ログインページを配置するのに論理的な場所です。これが私が求めている構造です

home
├── index.html
├── user1
│   └── index.html
├── user2
│   └── index.html
├── user3
│   └── index.html
├── user4
│   └── index.html
├── user5
│   └── index.html
└── user6
    └── index.html

192.168.1.8に移動すると、/home/index.htmlをロードしたいと思います。 192.168.1.8/user1に移動すると、/home/user1/index.htmlをロードします。

現在、Apacheは、/homeまたはネストされたフォルダーのいずれかに対する権限がないと言っています。 /homeがrootに属しているからだと思いますか?これを再形成する方法に関する提案

1
puk

まず、以下はApacheの(仮想)ホストである必要があります。

<VirtualHost 192.168.1.8:80>

    DocumentRoot /home

</VirtualHost>

ページを提供するには、Apacheがアクセスしようとしているファイルに対する読み取り権限が必要です。試行していることを実現する最も簡単な方法は、rootとして実行することです。

# find /home -type d -exec chmod 755 {} \;

# find /home -type f -exec chmod 744 {} \;

これらは、すべてのホームディレクトリ内のすべてのファイルにグローバルな読み取り権限を付与します。個々のユーザーがすべてのファイルをユーザーに読み取られるとは限らないため、通常はこれに対して警告しますが、これらのファイルはWeb経由で読み取り可能であるため、ほとんど違いはありません。

パブリックファイルとプライベートファイルの両方を持つユーザーのオプションを提供する場合は、並列ディレクトリ/ home/wwwを作成することを検討してください。この中に、0755/0655権限を持つ各ユーザーのディレクトリを作成し、chownします。次に、プライベートファイルを/ home/userに保持しながら、全員に表示したいファイルだけを/ homw/www/userに配置できます。

1
erm410

これがまだあなたの計画に合うかどうかはわかりませんが、

これを実現する最も簡単な方法は、おそらくuserdir-ディレクティブを使用することです。また、各ユーザーのwebrootをホームディレクトリのサブディレクトリに配置することもできます。そのため、すべてのファイルをWebサーバーに公開する必要はありません。

ここでuserdirのドキュメントを確認してください: http://httpd.Apache.org/docs/2.0/mod/mod_userdir.html#userdir

あなたが置く予定のファイルを/homeのどこかに置きます。

3
Kvisle