Ver.6.2.2でもダメ
WordPress 6.1.3から6.2.2に更新してもWarnningを吐いてしまう.その後,WordPressは起動しなくなってしまった.
Warnningはフォルダーの権限(パーミッション)設定にあるとのメッセージです.このメッセージが170余り続きます.どうやら173行面のfilesystem関連のようです.
Warning: chmod(): Operation not permitted in /volume1/web/myblog/wp-admin/includes/class-wp-filesystem-direct.php on line 173
以下に示したサイト*1の内容を参考に修正してから,もう一度WordPressの更新を行おうと考えている.今日(7/9)はここまで.
*1, WordPressのパーミッション設定決定版
(d/f) rwx rwx rwx
https://qiita.com/hirai-11/items/f4d81f27886b623c5ef0
r: read, w: write, x: execute
備忘記録
WordPressの更新プログラムの適用には,個人ユーザーで割り当てるのではないため,以下の設定は更新プログラムの適用には,基本的に関係がない.ただし,この設定の目的は,セキュリティを高めることである.
– そもそものパーミッション設定値は
ググった結果,一般的な値は以下の通り.環境によっても違った最適な値があると考えられるので,現状はこれで設定しても良いがが,最適値を知るには調査を継続して,塾講が必要である.それが専門家の一歩.
パーミッション(permission; 権限)は,(所有者-グループ-その他)の並びでそれぞれ十進数では,一桁の0~7の数字で構成されている.差更に0~7は二進数では,三桁(rwx)で表される.r: read, w: write, x: executeの意味.r, wおよび xは,0または1であり,1の場合に権限がある.
具体的な数値の意味としては,7は,フルアクセスであり,6の意味はread & writeとなる.
以上の意味から,基本的に7, 5, 1は,めったに設定されない.
- .htaccess : 606 or 604
- 606の左から6は所有者(owner),0はグループ(group),6はその他のユーザー
- wp-config.php : 400
- ディレクトリ : 705
- その他ファイル : 604
NASでの作業 (コマンド編)
パーミッション設定作業は,DSMではできない(?)か,当初は理解不足だったのでsshでログインしてコマンド操作で実施したが,それでもWordPressのUpdateはできなかった.おそらく,トップの「web」フォルダーを含めた設定が必要ではないかと考えられた.sshでのコマンドについて備忘記録をここに残しておく.
<備忘記録>
- Login: ssh “<NAS IP Address>” -p “<port>”
- Command : sudo chmod 604 .htaccess
- command : sudo chmod 400 wp-config.php
- Command : sudo find . -type d -print|xargs|sudo chmod 705
- Comamnd : sudo find . -type f -print|xargs|sudo chmod 604
NASでの作業(DMS編)
そもそも,パーミッションの(所有者-グループ-その他)についてFileStationからプロパティを開いて,そのパーミッションにおけるパラメータとの対応がよくわからない.パーミッションの「所有者」とは? 「グループ」とは?
例えば,そのパーミッション設定には,User or Groupとい設定項目がある.これは,(所有者-グループ-その他ユーザー)におけるどのことを示しているのか不明だ.User or Groupで「http」を指定したパーミッションは,いったい(所有者-グループ-その他)のどれにあたるのか?
所有者/グループの見極めの答えは,こうだ.
- httpが所有者か,グループか,その他ユーザーかは,コントロールパネルのユーザー設定で判断できる.httpは,グループにあるので,httpはグループと判断できる.
- 同様に,httpsはグループである.
以下のSynologyサイトにパーミッションの設定方法が記載されている.sshは,セキュリティ的にあまり使いたくないので,DMSのFileStationでパーミッションの設定ができるように,設定方法を調査した.
トップの「web」フォルダーのパーミッションの設定は以下の通り,readまたはread & writeに設定する.
- webのプロパティー(properties)から
- Permission Editorを開く
- User or Groupを「http」に
- Inherit (継承) from を「<none>」のまま
- Typeを「Allow」に
- Apply toを「All」に
- Read,またはReadとWriteにチェック.
以上の結果,機能しなくなっていたSiteGuard(以下に説明した)のCAPTCHAが表示できるようになった.
How should I set access permissions to folders used for hosting websites?
https://kb.synology.com/en-ca/DSM/tutorial/What_should_I_set_permissions_to_folders_for_websites
Read設定では機能しないプラグイン
SiteGuardというWordPressへのログイン制限が可能となるプラグインでは,ReadとWriteの設定になっていないとCAPTCHAが表示されない.