svnおよびWebサーバーファイルの所有権

svnおよびWebサーバーファイルの所有権

ファイルの所有権について質問があります。

私はdrupalウェブサイトを持っていて、ユーザーがPHPを使ってファイルをアップロードできるようにするには、「www-data」が「files」フォルダを所有する必要があります。

しかし、今svnを使用しており、これが機能するためには、Ubuntuユーザーはすべてのフォルダとファイルを所有する必要があります。

ファイルには775の権限があるため、ユーザーとグループの両方にファイルへのフルアクセス権があります。

私のUbuntuユーザーをwww-dataグループに追加しましたが、まだ機能していません。理由はわかりません。グループを私のUbuntuユーザーグループに変更しようとしましたが、まだ機能しません。

また、Ubuntuユーザーを所有者に設定し、www-dataをグループに設定しようとしましたが、この場合、WebサーバーのPHPスクリプトはファイルをフォルダにアップロードすることはできません(このグループは完全な権限を持っているため再び奇妙です)。

ベストアンサー1

すべての種類のWeb開発には、通常、開発と本番環境に異なるアプローチが必要な理由がいくつかあります。開発のためにホームディレクトリにWebサイトのローカルコピーを置くことは便利ですが、本番環境に変更を適用する前に、一部の作業が完全に機能しなくても問題ありません。

Drupal権限スキームをユーザーアカウント権限スキームに関連付けようとしないでください。プロダクション Drupal エントリを/var/www/htmlどこにでも配置し、Apache/PHP/Drupal を幸せにするためのすべての権限を持っています。独自の開発ツリーを作成してください。

サイトの新機能を完了するたびに、ある種の同期ツールを使用して開発から本番への変更をプッシュし、その過程で新しい権限を取得します。

個人的に私はrsyncこれを使います。トンネリングが簡単rsyncなため、本番サーバーがインターネットにまたがることができるという利点がありますssh。通常、独自の LAN ではなくサーバー上で Web サイトをホストするのに十分な理由があるため、これは Web 開発の重要な機能です。私のウェブサイトには次のコマンドを使用します。

rsync -lprtvD -e ssh --delete \
        --exclude \*.swp \
        --exclude .svn \
        --exclude GNUmakefile \
        ./ [email protected]:/var/www/html

wwwこのコマンドは、ユーザーがファイルを所有できるようにし、www.mysite.com開発権限スキームを本番環境から分離します。

代わりにSVNを使いたいと思います。大丈夫です。開発マシンと本番マシンの両方がSVNサーバーを表示できるようにするだけです。 rsyncと同様に、sshセキュリティ上の理由からここでSVNプロトコルをトンネリングしようとしています。変更を本番環境に適用する必要がある場合は、SVNにチェックインしてから本番ボックスからチェックアウトします。実際には、Webサーバーツリー全体に散在しているサブディレクトリを避けるよりsvn exportも使用することをお勧めします。 rsyncメソッドはルールを介してこの状況を防ぎます。svn checkout.svn--exclude

おすすめ記事