ファイルの所有権について質問があります。
私は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