apache
WordPressはユーザーとして実行されます。apache
developers
グループから- すべてのフォルダは
775
- すべてのファイルは
664
- すべてのフォルダとファイルが
developers
グループにあります。
apache
WordPressでプラグインをインストール/更新するには、なぜこれらのファイルが必要なのですか?
答え1
まず、root
Apacheサーバーを起動します。 Apacheはroot
起動時に権限を放棄し、制限されたユーザー権限を持ちますapache
。
したがって、ファイルをアップロードすると、ApacheはWordPressプラグインフォルダに書き込むことができず、プラグインのインストールが失敗します。この問題は2つの方法で解決できます。
- プラグインフォルダへのグループ書き込み権限を付与し、
apache
ユーザーをグループのメンバーにします。 - または、
apache
ユーザーがフォルダを所有するようにします。
umask
設定に注意してください。 Apache環境変数を設定する場所でこれを設定する必要があります。
"umask 002"
これはumask
、プラグインのインストール時に作成された新しいファイルとディレクトリに対する権限に影響します。
答え2
WordPressでプラグインをインストール/更新するには、Apacheにこれらのファイルが必要なのはなぜですか?
権限モデルが不都合なためです。
どのファイルにどの権限を設定するかを決定することは、コード作成とWebサーバー構成と同じくらいWebサイトの展開の重要な部分です。明らかに、ここのインストールは、コード更新がネットワーク経由で適用されるように慎重に設計されています。この問題には2つの一般的な解決策があります。誰もが書くことができるファイルとディレクトリを作成し、WebサーバーUIDが所有するファイル/ディレクトリを作成します。どちらもセキュリティに非常に有害です。
多数のアプリケーションで作業しているときにWebサーバーUIDが書き込むことができる指定された領域があることは避けられません。これらの領域はドキュメントルートの外側にある必要があり、これらのディレクトリ内のすべてのコードの実行は禁止されている必要があります。
あなたが持っている権限で、Apacheはすべてのユーザー/グループ/その他のすべてのファイル/ディレクトリを読み取り、ユーザーまたはグループとして書き込むことができます。したがって、ここにはいくつかの冗長性があるため、Apacheはファイルをここに書き込む必要はありません。しかし、これは問題ではありません。 Apacheがどのコード(または設定)ファイルにも書き込むことができることが問題です。
正しい問題に対する正しい解決策には少しの努力が必要です。
答え3
ファイルをアップロードして更新すると、Apacheは「apache」ユーザーとして実行され、ファイルを変更する権限が必要なためです。
おそらく、セキュリティ上の理由から、ApacheをすべてのWebルートの所有者ではなくプラグインディレクトリの所有者にする方が簡単です。
あなたは見ることができますここファイル権限に関する追加のアドバイス。