web-dev-qa-db-ja.com

10年後、Webサーバーを間違ってセットアップしましたか?

ストーリーの前:
2004年から2007年にかけてApacheを使用したドメインを持つ仮想サーバーがありました。私の父は所有者であり、私は彼の友人から少し学んでいました(彼はそのようなことをしていた)。 PuTTYを介してLinuxを使用する方法を学びました。そこでは、confixxと呼ばれるシステムを使用したと思います。そこには、htmlフォルダーを含む/ homeフォルダーに「web1」というLinuxユーザーアカウントがあり、すべてのWeb要素がそこにありました。

最近、私はnginxを使用していて、記事を読むと、「/ var/www /」および「www-data」ユーザーについて常に書いています。 www/web1 www/web2について書いている記事も見つけました。時々私は許可の問題さえ持っているのでそれは私にとって意味があります。たとえば、phpスクリプトを介してファイルをアップロードすると、ファイルはwww-dataに属しているため(web1にwww-dataグループがある場合でも)、ファイルを移動できません。 phpの設定をそのユーザー名に変更する必要がありました。

設定方法:
ほとんどの場合、vserverにはvserver1234.yourniceserver.comのようなクレイジードメインが付属しています。サブドメインまたは通常のドメインを作成し、ルートhtmlが

  • / home/web1/sites/nameofthedomain/html
  • / home/web1/sites/nameofthedomain/subdomain/name/html
  • / home/web2/htmlその特別な単一ドメイン

私は自分の書いたファイル共有システムとワードプレスのブログのために、ほとんどの時間を私のvserverを使って周りをテストしています。

だから問題は:

  • 私はこれらすべての年が間違っていましたか?
  • 「/ var/www」フォルダに移動する必要がありますか?
    • はいの場合、を使用してweb1ユーザーを作成したり、これらのフォルダーをrootの所有者にする必要がありますか? web1、web2などのすべてのユーザーがftpを使用できるためです。

編集:私はdebianを使用します。

2
MaZy

[〜#〜] fhs [〜#〜] に厳密に従うと、そこから/srv/www/example.comが最も適切です。最も人気がないにもかかわらず。

ただし、適切ではありますが、実用的ではないかもしれません。

CentOS/RHELまたはその他のFedoraベースのシステムを使用していて、SELinuxを有効にしておく場合は、既存のファイルコンテキストの場所と一致させるだけです/var/www/html/example.comが最も実用的です。

したがって、たとえばWordpressインスタンスを/var/www/html/example.comの場合、ファイルに正しいラベルが付けられるため、SELinuxを無効にしなくても正しく機能します。

RHEL 8システムでは、semanage fcontext -l | grep wp-利回り:

...
/var/www/html(/.*)?/wp-content(/.*)?               all files          system_u:object_r:httpd_sys_rw_content_t:s0 
...

したがって、標準のSELinuxは、どちらか一方に配置されたファイルの「期待」を持っています/var/www/html(サーバーごとに1つのサイト)または/var/www/html/example.com(サーバー上の複数のWebサイト)。

ただし、個人的な好みとして、/srv/www/example.comを使用して正しいラベルを追加します。 semanage fcontext -a ...

2

あなたの設定は明確に「間違っている」(「動作しない」のように)わけではありませんが、明らかに理想的とは言えません。 Webサーバーのファイルとデータを、基本的にユーザーのホームディレクトリに配置します。

WindowsでWebサイトのルートをC:\Users\Someone\wwwroot の代わりに C:\inetpub\wwwroot(または専用データディスクなどのより適切な場所)。

単一の小さなWebサイトに実用的な違いはありませんが、実際のWebサーバーでこのような設定を使用する人は誰もいません。

0
Massimo