如果在AWS Lightsail上的WordPress(bitnami)上遇到 “failed to open stream: Permission denied” 的错误情况
发生在什么样的环境里
-
- AWS-LightsailでWordPress(bitnami)を使っていた
-
- テストサーバーで構築していたWPのファイル一式を、本番環境(AWS-Lightsail)へ移行した(ファイル一式をFTPクライアント経由で上書きアップロード)
WordPress の更新をした際に、下記のエラーが表示された(更新が出来なかった)
警告:复制(/opt/bitnami/wordpress/wp-content/languages/ja-******.json)失败,无法打开流:权限被拒绝,在/opt/bitnami/wordpress/wp-admin/includes/class-wp-filesystem-direct.php的第309行。
警告:chmod():无法执行操作,在/opt/bitnami/wordpress/wp-admin/includes/class-wp-filesystem-direct.php的第173行。
解决方法:重新设置权限。
-
- bitnamiは、各ファイル・各ディレクトリのパーミッションを厳格に定めているようです
- 参考サイト:bitnami:Understand WordPress Filesystem Permissions(WordPressのファイルシステムパーミッションの理解)
文件和目录的所有者是用户bitnami和组daemon。
目录的默认权限设置为775。
文件的默认权限设置为664。
wp-config.php文件的权限设置为640。
确认目录位置
-
- 2021年12月現在、bitnamiのWordPressは、ディレクトリが2箇所に分かれて配置されています。
-
- WordPress本体部は/opt/bitnami/wordpress/にあります。
- ユーザーが触りそうなファイルなどは/bitnami/wordpress/にあります。
修改权限
- 今回は、ファイルwp-config.phpおよびディレクトリwp-contentのパーミッションの一括変更を記します。
$ cd /bitnami # ディレクトリ[bitnami]へ移動
$ sudo chown -R bitnami:daemon wordpress # ディレクトリ[wordpress]以下の所有者:グループを一括変更
$ sudo find wordpress -type d -exec chmod 775 {} \; # ディレクトリ[wordpress]以下のディレクトリのパーミッションを775へ一括変更
$ sudo find wordpress -type f -exec chmod 664 {} \; # ディレクトリ[wordpress]以下のファイルのパーミッションを664へ一括変更
$ sudo chmod 640 wordpress/wp-config.php # ファイル[wp-config.php]のパーミッションを640へ変更
我已经解决了这个问题(现在可以无错误地更新WordPress了)。
调查:为什么会发生这种局面
-
- ディレクトリwp-content/plugins以下、あるプラグインの一部ディレクトリのパーミッションが755になっておりました。
-
- テスト環境においてのプラグインのインストールの仕方がまずかったのか、それとも本番環境へのアップロードの仕方が悪かったのか…
- パーミッション問題とか所有者問題とか…引っかかると面倒ですよね…
如果能對某人有所幫助,我會感到幸福。