web-dev-qa-db-ja.com

Ubuntuでpublic_HTMLフォルダーを作成するにはどうすればよいですか?

簡単な質問ですが、何らかの理由でGoogleで正確な答えを見つけることができませんでした。

SlicehostにUbuntuを新しくインストールし、静的なHTMLファイルを含む単純なWebサイトのホームディレクトリにパブリックディレクトリを作成したいと考えています。どうすればいいですか? mkdir public_htmlを入力して権限を設定するだけの問題ですか、それともよりクリーンな方法がありますか? (過去に、public_htmlディレクトリにファイルをコピーするたびに、そのアクセス許可を手動で設定する必要があるという問題があったことを覚えています。これは非常にイライラします。)

25
RexE

Apacheが既にインストールされていると仮定して、次の手順を実行します。

Sudo a2enmod userdir
Sudo service Apache2 reload

最初のコマンドは、ユーザーディレクトリのApache modを有効にします。 2番目は、Apache構成を再ロードして、新しい構成を使用して開始します。

Apache2をインストールするには:

Sudo apt-get install Apache2

もちろん、public_htmlフォルダーのアクセス許可でwww-dataユーザーがそこにあるファイルを見ることができることを確認する必要もあります。通常、755はうまく機能します。これをする:

mkdir ~/public_html
chmod -R 755 ~/public_html

これは再帰的に(-R)public_htmlを通過し、パーミッションを755(所有者rwx、およびグループと他のr-x、r-xの両方)に設定します。

33
rz.

他の答えはmod_userdirで正しい軌道に乗っていますが、それを使用するとWebサイトにベースURL http://www.yourdomain.com/~username/が与えられます-たとえば、ファイル/home/username/public_html/index.htmlhttp://www.yourdomain.com/~username/index.htmlとしてアクセスできます。たとえば、http://www.yourdomain.com/index.htmlのように、ドメインルートでファイルにアクセスできるようにするには、ディレクティブを配置する必要があります。

DocumentRoot /home/username/public_html

apache構成ファイル内。

ところで、この種の質問はSlicehostフォーラムにより適しています。

10
David Z

Apacheでは mod_userdir を使用する必要があります。そうでない場合は、/var/www/またはどこからでもシンボリックリンクを設定する必要があります。

アクセス許可の問題は、Apacheにファイルへの読み取りアクセス権がないためです。 www-data(またはユーザーが何であれ、ディストリビューション固有)への読み取りアクセスを許可する必要があります。

2
strager