1

自動更新機能を持つ WordPress フレームワークを作成しています。システムがフレームワークを更新すると、.zip ファイルがダウンロードされ (正常に動作し、temp フォルダーに保存されます)、その後、その zip ファイルをテーマ内の場所に抽出しようとします。解凍すると、ディレクトリを作成できないというエラーがスローされます (「mkdir_failed」)。

ターゲット フォルダの親には、ユーザー「bitnami」とグループ「bitnami」の権限「775」があります。

root@linux:/home/bitnami# ls -al /opt/bitnami/apps/wordpress/htdocs/wp-content/themes/nexus ... drwxrwxr-x 6 bitnami bitnami 4096 Oct 23 14:02 nexusframework ...

そして、「daemon」ユーザーを「bitnami」グループに入れようとしました。

usermod -a -G bitnami デーモン

私が見るように、これは確かに正しく割り当てられています:

root@linux:/home/bitnami# id daemon uid=1(デーモン) gid=1(デーモン) groups=1(デーモン),1000(bitnami)


そう; 「daemon」ユーザーが「bitnami」グループに属し、フォルダーのアクセス権が 775 の場合、「mkdir_failed」で失敗するのはなぜですか?

(注: 親フォルダーに「777」を割り当てると問題は解決しますが、セキュリティ上の理由から、これはオプションではありません)。

ありがとう!- ゲルトヤン


アップデート;

一般的に Linux についてさらに調査を行った後、Linux はユーザーごとに「プライベート」グループを自動的に作成することを読みました (つまり、bitnami ユーザーの bitnami グループなど)。問題の原因が、他のユーザーを同じグループに追加しようとしていた (そして明らかに成功した?) ことであるかどうかはわかりません。


アップデート;

問題をどのように解決したかについては、以下の回答を参照してください。

4

2 に答える 2

1

わかりました、すべてのコメントに感謝します。最終的に、調査を続行せず、別の方向に向かうことにしました。コンテナーのフォルダーに依存して "775" パーミッションを取得することは、フレームワークにとって賢明ではないためです (多くのクライアントは代わりに 755 を持っているため、これをグループはいいですが、最終的には私の問題を解決しません)。

代わりに、WordPress 自体がテーマをダウンロードして解凍する方法をさらに調査し、そのルートに従うことにしました。

私が取り組もうとしていた重要な問題は、解凍されたファイルを「デーモン」ユーザーが所有するのではなく、「ビットナミ」ユーザーが所有することでした。デーモンユーザーに「偽装」された理由は、コードに「直接」fs_methodを使用するように手動で指示したためです(表示されるように、WPはファイルシステムと対話するさまざまな方法を提供しますが、最も簡単なものは「直接」です。ここを参照)。ただし、「直接」の FS_METHOD を使用することが、この問題が発生する主な理由です。これは、Web サーバーの資格情報 (私の場合は「デーモン」ユーザー) を使用するためです。したがって、別のFS_METHODを使用することで、正しい「bitnami」ユーザーを使用してフォルダー内のファイルを解凍できることがわかります(コンテナーは所有者であり、権限を持っているため(775または755は関係ありません)、問題は解決しました)ファイルシステムに直接書き込む代わりに、PHP は FTP を使用することに注意してください (こちらを参照)。

于 2012-10-24T15:45:04.890 に答える
0

フォルダのグループをdaemonに変更すると動きますか?

chgrp -R デーモン /opt/bitnami/apps/wordpress/htdocs/wp-content/themes/nexus

于 2012-10-24T15:43:01.613 に答える