最近Linuxに切り替えて直接LEMPを設定しようとしましたが、ほとんど管理していましたが、今は解決できない権限の問題が発生しました。ローカルWordPressサイトではファイルをアップロードできません。
私の設定
- php-fpmは私のユーザーとして実行されます。
- nginxはnginxユーザーとして実行されます。
- サイトは/home//Websites/example.comに保存されます。
これは地域開発にのみ当てはまります。
/home/my-user drwxr-xr-x
/home/my-user/ウェブサイト drwxrwxr-x
/home/my-user/Websites/example.com drwxrwxr-x
/home/my-user/Wbsites/example.com /wp-contentdrwxrwxr-x
すべてmy-user:my-userが所有しています。
アップロード以外はサイトが機能しています。
編集する:問題はSELinuxで発生したようです。アップロードの問題を解決するために何を有効にすべきかはまだわかりません。
答え1
この問題はファイルシステムの権限とは関係ありませんが、selinuxがアップロードフォルダへの書き込みアクセスをブロックしているようです。
まず selinux を許可モードに設定します。これを行うには、rootとして実行してください。
setenforce 0
次に、次のreturnを実行して、コマンドが正しく適用されていることを確認してくださいPermissive
。
getenforce
これで、ローカルアップロードフォルダにファイルをアップロードできるようになりました。完了したら、selinuxログでエラーを確認してください。ログファイルは/var/log/audit/audit.logにあります。
アップロードしたフォルダのセキュリティコンテキストが正しくない可能性があります。次の出力を確認してください。
ls --context
アップロードフォルダに正しいセキュリティコンテキストがあることを確認する必要があります。このフォルダには、httpd_sys_rw_content_t
Webサーバーがディレクトリに書き込むことを可能にするコンテキストが必要です。
答え2
アップロードディレクトリを777に設定し、ファイルをアップロードしてみてください。これにより、どのユーザーがファイルを作成しているかを確認できます。
この内容が表示されたら、ディレクトリをそのユーザーに変更し、適切な権限を設定できます。
私のLAMPシステムでは、WordPressツリー全体はwww-data:www-dataの所有です。
設定が完了したら、WordPressプラグインを更新/インストールすることもできます。